forked from InsightSoftwareConsortium/ITK-Wasm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjs_package.py
More file actions
8 lines (6 loc) · 283 KB
/
js_package.py
File metadata and controls
8 lines (6 loc) · 283 KB
1
2
3
4
5
6
7
8
# Generated file. To retain edits, remove this comment.
from itkwasm.pyodide import JsPackageConfig, JsPackage
from ._version import __version__
default_js_module = """data:text/javascript;base64,dmFyIGxyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY3I9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlscihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHVyPSI3LjYuMiIsZWU9dXI7dmFyIGZyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sYj1mcjt2YXIgcHI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9cHI7ZnVuY3Rpb24gZHIoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGIuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGIuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGIuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgYi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIE89ZHI7dmFyIG1yPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sdmU9bXI7dmFyIHRlPWNsYXNze2RpbWVuc2lvbjtjb21wb25lbnRUeXBlO3BpeGVsVHlwZTtjb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PWIuVUludDgscj12ZS5TY2FsYXIsaT0xKXt0aGlzLmRpbWVuc2lvbj1lLHRoaXMuY29tcG9uZW50VHlwZT10LHRoaXMucGl4ZWxUeXBlPXIsdGhpcy5jb21wb25lbnRzPWl9fSxaZT10ZTtmdW5jdGlvbiBocihBLGUsdCxyLGkpe0Fbcit0KmVdPWl9dmFyIFZlPWhyO3ZhciByZT1jbGFzc3tpbWFnZVR5cGU7bmFtZT0iSW1hZ2UiO29yaWdpbjtzcGFjaW5nO2RpcmVjdGlvbjtzaXplO21ldGFkYXRhO2RhdGE7Y29uc3RydWN0b3IoZT1uZXcgWmUpe3RoaXMuaW1hZ2VUeXBlPWU7bGV0IHQ9ZS5kaW1lbnNpb247dGhpcy5vcmlnaW49bmV3IEFycmF5KHQpLHRoaXMub3JpZ2luLmZpbGwoMCksdGhpcy5zcGFjaW5nPW5ldyBBcnJheSh0KSx0aGlzLnNwYWNpbmcuZmlsbCgxKSx0aGlzLmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KHQqdCksdGhpcy5kaXJlY3Rpb24uZmlsbCgwKTtmb3IobGV0IHI9MDtyPHQ7cisrKVZlKHRoaXMuZGlyZWN0aW9uLHQscixyLDEpO3RoaXMuc2l6ZT1uZXcgQXJyYXkodCksdGhpcy5zaXplLmZpbGwoMCksdGhpcy5tZXRhZGF0YT1uZXcgTWFwLHRoaXMuZGF0YT1udWxsfX0sWGU9cmU7ZnVuY3Rpb24geXIoQSl7aWYoQS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiQXQgbGVhc3Qgb25lIGltYWdlcyBpcyByZXF1aXJlZC4iKTtsZXQgZT1BWzBdO2lmKGUuZGF0YT09PW51bGwpdGhyb3cgRXJyb3IoIkltYWdlIGRhdGEgaXMgbnVsbC4iKTtsZXQgdD1uZXcgWGUoZS5pbWFnZVR5cGUpO3Qub3JpZ2luPUFycmF5LmZyb20oZS5vcmlnaW4pLHQuc3BhY2luZz1BcnJheS5mcm9tKGUuc3BhY2luZyk7bGV0IHI9dC5pbWFnZVR5cGUuZGltZW5zaW9uO3QuZGlyZWN0aW9uPWUuZGlyZWN0aW9uLnNsaWNlKCk7bGV0IGk9ci0xO3Quc2l6ZT1BcnJheS5mcm9tKGUuc2l6ZSk7bGV0IEk9QS5yZWR1Y2UoKG4sZyk9Pm4rZy5zaXplW2ldLDApO3Quc2l6ZVtpXT1JO2xldCBvPXQuc2l6ZS5yZWR1Y2UoKG4sZyk9Pm4qZywxKSp0LmltYWdlVHlwZS5jb21wb25lbnRzLGE9ZS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgYShvKTtsZXQgRT10LmltYWdlVHlwZS5jb21wb25lbnRzO2ZvcihsZXQgbj0wO248dC5zaXplLmxlbmd0aC0xO24rKylFKj10LnNpemVbbl07bGV0IHM9MDtpZih0LmRhdGEhPW51bGwpZm9yKGxldCBuPTA7bjxBLmxlbmd0aDtuKyspdC5kYXRhLnNldChBW25dLmRhdGEsRSpzKSxzKz1BW25dLnNpemVbaV07ZWxzZSB0aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSByZXN1bHQgaW1hZ2UgZGF0YS4iKTtyZXR1cm4gdH12YXIgaWU9eXI7dmFyIEllPWNsYXNze2Zjbjt3b3JrZXJRdWV1ZTtydW5JbmZvO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5mY249dCx0aGlzLndvcmtlclF1ZXVlPW5ldyBBcnJheShlKSx0aGlzLndvcmtlclF1ZXVlLmZpbGwobnVsbCksdGhpcy5ydW5JbmZvPVtdfXJ1blRhc2tzKGUsdD1udWxsKXtsZXQgcj17dGFza1F1ZXVlOltdLHJlc3VsdHM6W10sYWRkaW5nVGFza3M6ITEscG9zdHBvbmVkOiExLHJ1bm5pbmdXb3JrZXJzOjAsaW5kZXg6MCxjb21wbGV0ZWRUYXNrczowLHByb2dyZXNzQ2FsbGJhY2s6dCxjYW5jZWxlZDohMX07cmV0dXJuIHRoaXMucnVuSW5mby5wdXNoKHIpLHIuaW5kZXg9dGhpcy5ydW5JbmZvLmxlbmd0aC0xLHtwcm9taXNlOm5ldyBQcm9taXNlKChpLEkpPT57ci5yZXNvbHZlPWksci5yZWplY3Q9SSxyLnJlc3VsdHM9bmV3IEFycmF5KGUubGVuZ3RoKSxyLmNvbXBsZXRlZFRhc2tzPTAsci5hZGRpbmdUYXNrcz0hMCxlLmZvckVhY2goKG8sYSk9Pnt0aGlzLmFkZFRhc2soci5pbmRleCxhLG8pfSksci5hZGRpbmdUYXNrcz0hMX0pLHJ1bklkOnIuaW5kZXh9fXRlcm1pbmF0ZVdvcmtlcnMoKXtmb3IobGV0IGU9MDtlPHRoaXMud29ya2VyUXVldWUubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy53b3JrZXJRdWV1ZVtlXTt0Py50ZXJtaW5hdGUoKSx0aGlzLndvcmtlclF1ZXVlW2VdPW51bGx9fWNhbmNlbChlKXtsZXQgdD10aGlzLnJ1bkluZm9bZV07dCE9bnVsbCYmKHQuY2FuY2VsZWQ9ITApfWFkZFRhc2soZSx0LHIpe2xldCBpPXRoaXMucnVuSW5mb1tlXTtpZihpPy5jYW5jZWxlZD09PSEwKXtpLnJlamVjdCgiUmVtYWluaW5nIHRhc2tzIGNhbmNlbGVkIiksdGhpcy5jbGVhclRhc2soaS5pbmRleCk7cmV0dXJufWlmKHRoaXMud29ya2VyUXVldWUubGVuZ3RoPjApe2xldCBJPXRoaXMud29ya2VyUXVldWUucG9wKCk7aS5ydW5uaW5nV29ya2VycysrLHJbci5sZW5ndGgtMV0ud2ViV29ya2VyPUksdGhpcy5mY24oLi4ucikudGhlbigoe3dlYldvcmtlcjpvLC4uLmF9KT0+e2lmKHRoaXMud29ya2VyUXVldWUucHVzaChvKSx0aGlzLnJ1bkluZm9bZV0hPT1udWxsKXtpZihpLnJ1bm5pbmdXb3JrZXJzLS0saS5yZXN1bHRzW3RdPWEsaS5jb21wbGV0ZWRUYXNrcysrLGkucHJvZ3Jlc3NDYWxsYmFjayE9bnVsbCYmaS5wcm9ncmVzc0NhbGxiYWNrKGkuY29tcGxldGVkVGFza3MsaS5yZXN1bHRzLmxlbmd0aCksaS50YXNrUXVldWUubGVuZ3RoPjApe2xldCBFPWkudGFza1F1ZXVlLnNoaWZ0KCk7dGhpcy5hZGRUYXNrKGUsRVswXSxFWzFdKX1lbHNlIGlmKCFpLmFkZGluZ1Rhc2tzJiZpLnJ1bm5pbmdXb3JrZXJzPT09MCl7bGV0IEU9aS5yZXN1bHRzO2kucmVzb2x2ZShFKSx0aGlzLmNsZWFyVGFzayhpLmluZGV4KX19fSkuY2F0Y2gobz0+e2kucmVqZWN0KG8pLHRoaXMuY2xlYXJUYXNrKGkuaW5kZXgpfSl9ZWxzZSBpLnJ1bm5pbmdXb3JrZXJzIT09MHx8aS5wb3N0cG9uZWQ/aS50YXNrUXVldWUucHVzaChbdCxyXSk6KGkucG9zdHBvbmVkPSEwLHNldFRpbWVvdXQoKCk9PntpLnBvc3Rwb25lZD0hMSx0aGlzLmFkZFRhc2soaS5pbmRleCx0LHIpfSw1MCkpfWNsZWFyVGFzayhlKXt0aGlzLnJ1bkluZm9bZV0ucmVzdWx0cz1bXSx0aGlzLnJ1bkluZm9bZV0udGFza1F1ZXVlPVtdLHRoaXMucnVuSW5mb1tlXS5wcm9ncmVzc0NhbGxiYWNrPW51bGwsdGhpcy5ydW5JbmZvW2VdLmNhbmNlbGVkPW51bGwsdGhpcy5ydW5JbmZvW2VdLnJlamVjdD0oKT0+e30sdGhpcy5ydW5JbmZvW2VdLnJlc29sdmU9KCk9Pnt9fX0sb2U9SWU7dmFyIERyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxmPURyO3ZhciBfZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSx3cj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxhZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksbmU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSwkZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixTcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZBW19lXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBldChBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksc2UoQSl9fSxGcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sQXQ9bmV3IE1hcChbWyJwcm94eSIsU3JdLFsidGhyb3ciLEZyXV0pO2Z1bmN0aW9uIFJyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBldChBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIoaSl7aWYoIWl8fCFpLmRhdGEpcmV0dXJuO2lmKCFScih0LGkub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtpLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpJLHR5cGU6byxwYXRoOmF9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGkuZGF0YSksRT0oaS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxzO3RyeXtsZXQgbj1hLnNsaWNlKDAsLTEpLnJlZHVjZSgodSxDKT0+dVtDXSxBKSxnPWEucmVkdWNlKCh1LEMpPT51W0NdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6cz1nO2JyZWFrO2Nhc2UiU0VUIjpuW2Euc2xpY2UoLTEpWzBdXT16KGkuZGF0YS52YWx1ZSkscz0hMDticmVhaztjYXNlIkFQUExZIjpzPWcuYXBwbHkobixFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCB1PW5ldyBnKC4uLkUpO3M9YnIodSl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTp1LHBvcnQyOkN9PW5ldyBNZXNzYWdlQ2hhbm5lbDtldChBLEMpLHM9QmUodSxbdV0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6cz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG4pe3M9e3ZhbHVlOm4sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUocykuY2F0Y2gobj0+KHt2YWx1ZTpuLFtVQV06MH0pKS50aGVuKG49PntsZXRbZyx1XT1iQShuKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6SX0pLHUpLG89PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLHR0KGUpLG5lIGluIEEmJnR5cGVvZiBBW25lXT09ImZ1bmN0aW9uIiYmQVtuZV0oKSl9KS5jYXRjaChuPT57bGV0W2csdV09YkEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtpZDpJfSksdSl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBrcihBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiB0dChBKXtrcihBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIHNlKEEsZSl7cmV0dXJuIGdlKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHJ0KEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9Pnt0dChBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZydChBKX0pO2Z1bmN0aW9uIFVyKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIE5yKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIGdlKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IHI9ITEsaT1uZXcgUHJveHkodCx7Z2V0KEksbyl7aWYoa0Eociksbz09PWFlKXJldHVybigpPT57TnIoaSkscnQoQSkscj0hMH07aWYobz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5pfTtsZXQgYT1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIGEudGhlbi5iaW5kKGEpfXJldHVybiBnZShBLFsuLi5lLG9dKX0sc2V0KEksbyxhKXtrQShyKTtsZXRbRSxzXT1iQShhKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLG9dLm1hcChuPT5uLnRvU3RyaW5nKCkpLHZhbHVlOkV9LHMpLnRoZW4oeil9LGFwcGx5KEksbyxhKXtrQShyKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT13cilyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBnZShBLGUuc2xpY2UoMCwtMSkpO2xldFtzLG5dPXplKGEpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChnPT5nLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpzfSxuKS50aGVuKHopfSxjb25zdHJ1Y3QoSSxvKXtrQShyKTtsZXRbYSxFXT16ZShvKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKHM9PnMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LEUpLnRoZW4oeil9fSk7cmV0dXJuIFVyKGksQSksaX1mdW5jdGlvbiBHcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiB6ZShBKXtsZXQgZT1BLm1hcChiQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLEdyKGUubWFwKHQ9PnRbMV0pKV19dmFyIGl0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEJlKEEsZSl7cmV0dXJuIGl0LnNldChBLGUpLEF9ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W19lXTohMH0pfWZ1bmN0aW9uIGJBKEEpe2ZvcihsZXRbZSx0XW9mIEF0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixpXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxpXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0saXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBBdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uocj0+e2xldCBpPUxyKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PWl8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLHIoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDppfSxlKSx0KX0pfWZ1bmN0aW9uIExyKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBCQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkpyfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpRZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzpudH09U3ltYm9sLE1BPShBPT5lPT57bGV0IHQ9SnIuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEg9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9Pk1BKGUpPT09QSksSEE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1IQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJkwoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIGd0PUgoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gTXIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZndChBLmJ1ZmZlciksZX12YXIgSHI9SEEoInN0cmluZyIpLEw9SEEoImZ1bmN0aW9uIiksYXQ9SEEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWXI9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9UWUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEobnQgaW4gQSkmJiEoSkEgaW4gQSl9LFRyPUE9PntpZighUUEoQSl8fENBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LE9yPUgoIkRhdGUiKSx4cj1IKCJGaWxlIikscXI9SCgiQmxvYiIpLFByPUgoIkZpbGVMaXN0IiksS3I9QT0+UUEoQSkmJkwoQS5waXBlKSxXcj1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TChBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJkwoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sanI9SCgiVVJMU2VhcmNoUGFyYW1zIiksW3ZyLFpyLFZyLFhyXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChIKSx6cj1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixpO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3Iocj0wLGk9QS5sZW5ndGg7cjxpO3IrKyllLmNhbGwobnVsbCxBW3JdLHIsQSk7ZWxzZXtpZihDQShBKSlyZXR1cm47bGV0IEk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPUkubGVuZ3RoLGE7Zm9yKHI9MDtyPG87cisrKWE9SVtyXSxlLmNhbGwobnVsbCxBW2FdLGEsQSl9fWZ1bmN0aW9uIHN0KEEsZSl7aWYoQ0EoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxpO2Zvcig7ci0tID4wOylpZihpPXRbcl0sZT09PWkudG9Mb3dlckNhc2UoKSlyZXR1cm4gaTtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLEJ0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gQ2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PUJ0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LHI9KGksSSk9PntsZXQgbz1BJiZzdCh0LEkpfHxJO0xBKHRbb10pJiZMQShpKT90W29dPUNlKHRbb10saSk6TEEoaSk/dFtvXT1DZSh7fSxpKTp0QShpKT90W29dPWkuc2xpY2UoKTooIWV8fCFlQShpKSkmJih0W29dPWkpfTtmb3IobGV0IGk9MCxJPWFyZ3VtZW50cy5sZW5ndGg7aTxJO2krKylhcmd1bWVudHNbaV0mJkVBKGFyZ3VtZW50c1tpXSxyKTtyZXR1cm4gdH12YXIgX3I9KEEsZSx0LHthbGxPd25LZXlzOnJ9PXt9KT0+KEVBKGUsKGksSSk9Pnt0JiZMKGkpP0FbSV09QkEoaSx0KTpBW0ldPWl9LHthbGxPd25LZXlzOnJ9KSxBKSwkcj1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEFpPShBLGUsdCxyKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsciksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LGVpPShBLGUsdCxyKT0+e2xldCBpLEksbyxhPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3IoaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxJPWkubGVuZ3RoO0ktLSA+MDspbz1pW0ldLCghcnx8cihvLEEsZSkpJiYhYVtvXSYmKGVbb109QVtvXSxhW29dPSEwKTtBPXQhPT0hMSYmUWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LHRpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgcj1BLmluZGV4T2YoZSx0KTtyZXR1cm4gciE9PS0xJiZyPT09dH0scmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFhdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0saWk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJlFlKFVpbnQ4QXJyYXkpKSxJaT0oQSxlKT0+e2xldCByPShBJiZBW0pBXSkuY2FsbChBKSxpO2Zvcig7KGk9ci5uZXh0KCkpJiYhaS5kb25lOyl7bGV0IEk9aS52YWx1ZTtlLmNhbGwoQSxJWzBdLElbMV0pfX0sb2k9KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sbmk9SCgiSFRNTEZvcm1FbGVtZW50IiksZ2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLGkpe3JldHVybiByLnRvVXBwZXJDYXNlKCkraX0pLG90PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxhaT1IKCJSZWdFeHAiKSxDdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307RUEodCwoaSxJKT0+e2xldCBvOyhvPWUoaSxJLEEpKSE9PSExJiYocltJXT1vfHxpKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LHNpPUE9PntDdChBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LEJpPShBLGUpPT57bGV0IHQ9e30scj1pPT57aS5mb3JFYWNoKEk9Pnt0W0ldPSEwfSl9O3JldHVybiB0QShBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxDaT0oKT0+e30sUWk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gRWkoQSl7cmV0dXJuISEoQSYmTChBLmFwcGVuZCkmJkFbbnRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBsaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShyLGkpPT57aWYoUUEocikpe2lmKGUuaW5kZXhPZihyKT49MClyZXR1cm47aWYoQ0EocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlW2ldPXI7bGV0IEk9dEEocik/W106e307cmV0dXJuIEVBKHIsKG8sYSk9PntsZXQgRT10KG8saSsxKTshZUEoRSkmJihJW2FdPUUpfSksZVtpXT12b2lkIDAsSX19cmV0dXJuIHJ9O3JldHVybiB0KEEsMCl9LGNpPUgoIkFzeW5jRnVuY3Rpb24iKSx1aT1BPT5BJiYoUUEoQSl8fEwoQSkpJiZMKEEudGhlbikmJkwoQS5jYXRjaCksUXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6aSxkYXRhOkl9KT0+e2k9PT1fJiZJPT09dCYmci5sZW5ndGgmJnIuc2hpZnQoKSgpfSwhMSksaT0+e3IucHVzaChpKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTChfLnBvc3RNZXNzYWdlKSksZmk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8UXQscGk9QT0+QSE9bnVsbCYmTChBW0pBXSksQj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOmd0LGlzQnVmZmVyOkNBLGlzRm9ybURhdGE6V3IsaXNBcnJheUJ1ZmZlclZpZXc6TXIsaXNTdHJpbmc6SHIsaXNOdW1iZXI6YXQsaXNCb29sZWFuOllyLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpUcixpc1JlYWRhYmxlU3RyZWFtOnZyLGlzUmVxdWVzdDpacixpc1Jlc3BvbnNlOlZyLGlzSGVhZGVyczpYcixpc1VuZGVmaW5lZDplQSxpc0RhdGU6T3IsaXNGaWxlOnhyLGlzQmxvYjpxcixpc1JlZ0V4cDphaSxpc0Z1bmN0aW9uOkwsaXNTdHJlYW06S3IsaXNVUkxTZWFyY2hQYXJhbXM6anIsaXNUeXBlZEFycmF5OmlpLGlzRmlsZUxpc3Q6UHIsZm9yRWFjaDpFQSxtZXJnZTpDZSxleHRlbmQ6X3IsdHJpbTp6cixzdHJpcEJPTTokcixpbmhlcml0czpBaSx0b0ZsYXRPYmplY3Q6ZWksa2luZE9mOk1BLGtpbmRPZlRlc3Q6SCxlbmRzV2l0aDp0aSx0b0FycmF5OnJpLGZvckVhY2hFbnRyeTpJaSxtYXRjaEFsbDpvaSxpc0hUTUxGb3JtOm5pLGhhc093blByb3BlcnR5Om90LGhhc093blByb3A6b3QscmVkdWNlRGVzY3JpcHRvcnM6Q3QsZnJlZXplTWV0aG9kczpzaSx0b09iamVjdFNldDpCaSx0b0NhbWVsQ2FzZTpnaSxub29wOkNpLHRvRmluaXRlTnVtYmVyOlFpLGZpbmRLZXk6c3QsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpCdCxpc1NwZWNDb21wbGlhbnRGb3JtOkVpLHRvSlNPTk9iamVjdDpsaSxpc0FzeW5jRm46Y2ksaXNUaGVuYWJsZTp1aSxzZXRJbW1lZGlhdGU6UXQsYXNhcDpmaSxpc0l0ZXJhYmxlOnBpfTtmdW5jdGlvbiByQShBLGUsdCxyLGkpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksciYmKHRoaXMucmVxdWVzdD1yKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzP2kuc3RhdHVzOm51bGwpfUIuaW5oZXJpdHMockEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpCLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgRXQ9ckEucHJvdG90eXBlLGx0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2x0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJBLGx0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7ckEuZnJvbT0oQSxlLHQscixpLEkpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShFdCk7Qi50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxzPT5zIT09ImlzQXhpb3NFcnJvciIpO2xldCBhPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIHJBLmNhbGwobyxhLEUsdCxyLGkpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixJJiZPYmplY3QuYXNzaWduKG8sSSksb307dmFyIGQ9ckE7dmFyIFlBPW51bGw7ZnVuY3Rpb24gRWUoQSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChBKXx8Qi5pc0FycmF5KEEpfWZ1bmN0aW9uIHV0KEEpe3JldHVybiBCLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGN0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24oaSxJKXtyZXR1cm4gaT11dChpKSwhdCYmST8iWyIraSsiXSI6aX0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gZGkoQSl7cmV0dXJuIEIuaXNBcnJheShBKSYmIUEuc29tZShFZSl9dmFyIG1pPUIudG9GbGF0T2JqZWN0KEIse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBoaShBLGUsdCl7aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoWUF8fEZvcm1EYXRhKSx0PUIudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihsLGMpe3JldHVybiFCLmlzVW5kZWZpbmVkKGNbbF0pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLGk9dC52aXNpdG9yfHxuLEk9dC5kb3RzLG89dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmQi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFCLmlzRnVuY3Rpb24oaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBzKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKEIuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoQi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmQi5pc0Jsb2IoUSkpdGhyb3cgbmV3IGQoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEIuaXNBcnJheUJ1ZmZlcihRKXx8Qi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG4oUSxsLGMpe2xldCBwPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoQi5lbmRzV2l0aChsLCJ7fSIpKWw9cj9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKEIuaXNBcnJheShRKSYmZGkoUSl8fChCLmlzRmlsZUxpc3QoUSl8fEIuZW5kc1dpdGgobCwiW10iKSkmJihwPUIudG9BcnJheShRKSkpcmV0dXJuIGw9dXQobCkscC5mb3JFYWNoKGZ1bmN0aW9uKGgsTil7IShCLmlzVW5kZWZpbmVkKGgpfHxoPT09bnVsbCkmJmUuYXBwZW5kKG89PT0hMD9jdChbbF0sTixJKTpvPT09bnVsbD9sOmwrIltdIixzKGgpKX0pLCExfXJldHVybiBFZShRKT8hMDooZS5hcHBlbmQoY3QoYyxsLEkpLHMoUSkpLCExKX1sZXQgZz1bXSx1PU9iamVjdC5hc3NpZ24obWkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOnMsaXNWaXNpdGFibGU6RWV9KTtmdW5jdGlvbiBDKFEsbCl7aWYoIUIuaXNVbmRlZmluZWQoUSkpe2lmKGcuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7Zy5wdXNoKFEpLEIuZm9yRWFjaChRLGZ1bmN0aW9uKHAsbSl7KCEoQi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZpLmNhbGwoZSxwLEIuaXNTdHJpbmcobSk/bS50cmltKCk6bSxsLHUpKT09PSEwJiZDKHAsbD9sLmNvbmNhdChtKTpbbV0pfSksZy5wb3AoKX19aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBDKEEpLGV9dmFyIGo9aGk7ZnVuY3Rpb24gZnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KX1mdW5jdGlvbiBwdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBkdD1wdC5wcm90b3R5cGU7ZHQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O2R0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsZnQpfTpmdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KGlbMF0pKyI9Iit0KGlbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgVEE9cHQ7ZnVuY3Rpb24geWkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCByPXQmJnQuZW5jb2RlfHx5aTtCLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBpPXQmJnQuc2VyaWFsaXplLEk7aWYoaT9JPWkoZSx0KTpJPUIuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBUQShlLHQpLnRvU3RyaW5nKHIpLEkpe2xldCBvPUEuaW5kZXhPZigiIyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStJfXJldHVybiBBfXZhciBsZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7Qi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJmUocil9KX19LGNlPWxlO3ZhciBPQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIG10PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpUQTt2YXIgaHQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciB5dD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBEdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczptdCxGb3JtRGF0YTpodCxCbG9iOnl0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHBlPXt9O2NyKHBlLHtoYXNCcm93c2VyRW52OigpPT5mZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PkRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+d2ksbmF2aWdhdG9yOigpPT51ZSxvcmlnaW46KCk9PlNpfSk7dmFyIGZlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLHVlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxEaT1mZSYmKCF1ZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZih1ZS5wcm9kdWN0KTwwKSx3aT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsU2k9ZmUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIFM9ey4uLnBlLC4uLkR0fTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiBqKEEsbmV3IFMuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxyLGksSSl7cmV0dXJuIFMuaXNOb2RlJiZCLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6SS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBGaShBKXtyZXR1cm4gQi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIFJpKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixpPXQubGVuZ3RoLEk7Zm9yKHI9MDtyPGk7cisrKUk9dFtyXSxlW0ldPUFbSV07cmV0dXJuIGV9ZnVuY3Rpb24ga2koQSl7ZnVuY3Rpb24gZSh0LHIsaSxJKXtsZXQgbz10W0krK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBhPU51bWJlci5pc0Zpbml0ZSgrbyksRT1JPj10Lmxlbmd0aDtyZXR1cm4gbz0hbyYmQi5pc0FycmF5KGkpP2kubGVuZ3RoOm8sRT8oQi5oYXNPd25Qcm9wKGksbyk/aVtvXT1baVtvXSxyXTppW29dPXIsIWEpOigoIWlbb118fCFCLmlzT2JqZWN0KGlbb10pKSYmKGlbb109W10pLGUodCxyLGlbb10sSSkmJkIuaXNBcnJheShpW29dKSYmKGlbb109UmkoaVtvXSkpLCFhKX1pZihCLmlzRm9ybURhdGEoQSkmJkIuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gQi5mb3JFYWNoRW50cnkoQSwocixpKT0+e2UoRmkociksaSx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgeEE9a2k7ZnVuY3Rpb24gVWkoQSxlLHQpe2lmKEIuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxCLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIG1lPXt0cmFuc2l0aW9uYWw6T0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixpPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9Qi5pc09iamVjdChlKTtpZihJJiZCLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksQi5pc0Zvcm1EYXRhKGUpKXJldHVybiBpP0pTT04uc3RyaW5naWZ5KHhBKGUpKTplO2lmKEIuaXNBcnJheUJ1ZmZlcihlKXx8Qi5pc0J1ZmZlcihlKXx8Qi5pc1N0cmVhbShlKXx8Qi5pc0ZpbGUoZSl8fEIuaXNCbG9iKGUpfHxCLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IGE7aWYoSSl7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChhPUIuaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGooYT97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBJfHxpPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksVWkoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fG1lLnRyYW5zaXRpb25hbCxyPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsaT10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihCLmlzUmVzcG9uc2UoZSl8fEIuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZCLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxpKSl7bGV0IG89ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmaTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goYSl7aWYobyl0aHJvdyBhLm5hbWU9PT0iU3ludGF4RXJyb3IiP2QuZnJvbShhLGQuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6YX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlMuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOlMuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57bWUuaGVhZGVyc1tBXT17fX0pO3ZhciBpQT1tZTt2YXIgTmk9Qi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx3dD1BPT57bGV0IGU9e30sdCxyLGk7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2k9by5pbmRleE9mKCI6IiksdD1vLnN1YnN0cmluZygwLGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9by5zdWJzdHJpbmcoaSsxKS50cmltKCksISghdHx8ZVt0XSYmTmlbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChyKTplW3RdPVtyXTplW3RdPWVbdF0/ZVt0XSsiLCAiK3I6cil9KSxlfTt2YXIgU3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHFBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpCLmlzQXJyYXkoQSk/QS5tYXAocUEpOlN0cmluZyhBKX1mdW5jdGlvbiBHaShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgYmk9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQscixpKXtpZihCLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYoaSYmKGU9dCksISFCLmlzU3RyaW5nKGUpKXtpZihCLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihCLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIExpKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIEppKEEsZSl7bGV0IHQ9Qi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse3ZhbHVlOmZ1bmN0aW9uKGksSSxvKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxpLEksbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIElBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IGk9dGhpcztmdW5jdGlvbiBJKGEsRSxzKXtsZXQgbj1jQShFKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9Qi5maW5kS2V5KGksbik7KCFnfHxpW2ddPT09dm9pZCAwfHxzPT09ITB8fHM9PT12b2lkIDAmJmlbZ10hPT0hMSkmJihpW2d8fEVdPXFBKGEpKX1sZXQgbz0oYSxFKT0+Qi5mb3JFYWNoKGEsKHMsbik9PkkocyxuLEUpKTtpZihCLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8oZSx0KTtlbHNlIGlmKEIuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWJpKGUpKW8od3QoZSksdCk7ZWxzZSBpZihCLmlzT2JqZWN0KGUpJiZCLmlzSXRlcmFibGUoZSkpe2xldCBhPXt9LEUscztmb3IobGV0IG4gb2YgZSl7aWYoIUIuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7YVtzPW5bMF1dPShFPWFbc10pP0IuaXNBcnJheShFKT9bLi4uRSxuWzFdXTpbRSxuWzFdXTpuWzFdfW8oYSx0KX1lbHNlIGUhPW51bGwmJkkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IGk9dGhpc1tyXTtpZighdClyZXR1cm4gaTtpZih0PT09ITApcmV0dXJuIEdpKGkpO2lmKEIuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsaSxyKTtpZihCLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMoaSk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsaT0hMTtmdW5jdGlvbiBJKG8pe2lmKG89Y0Eobyksbyl7bGV0IGE9Qi5maW5kS2V5KHIsbyk7YSYmKCF0fHxoZShyLHJbYV0sYSx0KSkmJihkZWxldGUgclthXSxpPSEwKX19cmV0dXJuIEIuaXNBcnJheShlKT9lLmZvckVhY2goSSk6SShlKSxpfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsaT0hMTtmb3IoO3ItLTspe2xldCBJPXRbcl07KCFlfHxoZSh0aGlzLHRoaXNbSV0sSSxlLCEwKSkmJihkZWxldGUgdGhpc1tJXSxpPSEwKX1yZXR1cm4gaX1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBCLmZvckVhY2godGhpcywoaSxJKT0+e2xldCBvPUIuZmluZEtleShyLEkpO2lmKG8pe3Rbb109cUEoaSksZGVsZXRlIHRbSV07cmV0dXJufWxldCBhPWU/TGkoSSk6U3RyaW5nKEkpLnRyaW0oKTthIT09SSYmZGVsZXRlIHRbSV0sdFthXT1xQShpKSxyW2FdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEIuZm9yRWFjaCh0aGlzLChyLGkpPT57ciE9bnVsbCYmciE9PSExJiYodFtpXT1lJiZCLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2goaT0+ci5zZXQoaSkpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW1N0XT10aGlzW1N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLGk9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gSShvKXtsZXQgYT1jQShvKTtyW2FdfHwoSmkoaSxvKSxyW2FdPSEwKX1yZXR1cm4gQi5pc0FycmF5KGUpP2UuZm9yRWFjaChJKTpJKGUpLHRoaXN9fTtJQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7Qi5yZWR1Y2VEZXNjcmlwdG9ycyhJQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KHIpe3RoaXNbdF09cn19fSk7Qi5mcmVlemVNZXRob2RzKElBKTt2YXIgVT1JQTtmdW5jdGlvbiB1QShBLGUpe2xldCB0PXRoaXN8fGlBLHI9ZXx8dCxpPVUuZnJvbShyLmhlYWRlcnMpLEk9ci5kYXRhO3JldHVybiBCLmZvckVhY2goQSxmdW5jdGlvbihhKXtJPWEuY2FsbCh0LEksaS5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxpLm5vcm1hbGl6ZSgpLEl9ZnVuY3Rpb24gZkEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBGdChBLGUsdCl7ZC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixkLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9Qi5pbmhlcml0cyhGdCxkLHtfX0NBTkNFTF9fOiEwfSk7dmFyIHg9RnQ7ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCByPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IXJ8fHIodC5zdGF0dXMpP0EodCk6ZShuZXcgZCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtkLkVSUl9CQURfUkVRVUVTVCxkLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHllKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBNaShBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLGk9MCxJPTAsbztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBzPURhdGUubm93KCksbj1yW0ldO298fChvPXMpLHRbaV09RSxyW2ldPXM7bGV0IGc9SSx1PTA7Zm9yKDtnIT09aTspdSs9dFtnKytdLGc9ZyVBO2lmKGk9KGkrMSklQSxpPT09SSYmKEk9KEkrMSklQSkscy1vPGUpcmV0dXJuO2xldCBDPW4mJnMtbjtyZXR1cm4gQz9NYXRoLnJvdW5kKHUqMWUzL0MpOnZvaWQgMH19dmFyIFJ0PU1pO2Z1bmN0aW9uIEhpKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLGksSSxvPShzLG49RGF0ZS5ub3coKSk9Pnt0PW4saT1udWxsLEkmJihjbGVhclRpbWVvdXQoSSksST1udWxsKSxBKC4uLnMpfTtyZXR1cm5bKC4uLnMpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1yP28ocyxuKTooaT1zLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsbyhpKX0sci1nKSkpfSwoKT0+aSYmbyhpKV19dmFyIGt0PUhpO3ZhciBvQT0oQSxlLHQ9Myk9PntsZXQgcj0wLGk9UnQoNTAsMjUwKTtyZXR1cm4ga3QoST0+e2xldCBvPUkubG9hZGVkLGE9SS5sZW5ndGhDb21wdXRhYmxlP0kudG90YWw6dm9pZCAwLEU9by1yLHM9aShFKSxuPW88PWE7cj1vO2xldCBnPXtsb2FkZWQ6byx0b3RhbDphLHByb2dyZXNzOmE/by9hOnZvaWQgMCxieXRlczpFLHJhdGU6c3x8dm9pZCAwLGVzdGltYXRlZDpzJiZhJiZuPyhhLW8pL3M6dm9pZCAwLGV2ZW50OkksbGVuZ3RoQ29tcHV0YWJsZTphIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltyPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6cn0pLGVbMV1dfSx3ZT1BPT4oLi4uZSk9PkIuYXNhcCgoKT0+QSguLi5lKSk7dmFyIFV0PVMuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LFMub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoUy5vcmlnaW4pLFMubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KFMubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgTnQ9Uy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LHIsaSxJKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtCLmlzTnVtYmVyKHQpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxCLmlzU3RyaW5nKHIpJiZvLnB1c2goInBhdGg9IityKSxCLmlzU3RyaW5nKGkpJiZvLnB1c2goImRvbWFpbj0iK2kpLEk9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gU2UoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCByPSFTZShlKTtyZXR1cm4gQSYmKHJ8fHQ9PSExKT9GZShBLGUpOmV9dmFyIEd0PUE9PkEgaW5zdGFuY2VvZiBVP3suLi5BfTpBO2Z1bmN0aW9uIFkoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIHIocyxuLGcsdSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChzKSYmQi5pc1BsYWluT2JqZWN0KG4pP0IubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6dX0scyxuKTpCLmlzUGxhaW5PYmplY3Qobik/Qi5tZXJnZSh7fSxuKTpCLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gaShzLG4sZyx1KXtpZihCLmlzVW5kZWZpbmVkKG4pKXtpZighQi5pc1VuZGVmaW5lZChzKSlyZXR1cm4gcih2b2lkIDAscyxnLHUpfWVsc2UgcmV0dXJuIHIocyxuLGcsdSl9ZnVuY3Rpb24gSShzLG4pe2lmKCFCLmlzVW5kZWZpbmVkKG4pKXJldHVybiByKHZvaWQgMCxuKX1mdW5jdGlvbiBvKHMsbil7aWYoQi5pc1VuZGVmaW5lZChuKSl7aWYoIUIuaXNVbmRlZmluZWQocykpcmV0dXJuIHIodm9pZCAwLHMpfWVsc2UgcmV0dXJuIHIodm9pZCAwLG4pfWZ1bmN0aW9uIGEocyxuLGcpe2lmKGcgaW4gZSlyZXR1cm4gcihzLG4pO2lmKGcgaW4gQSlyZXR1cm4gcih2b2lkIDAscyl9bGV0IEU9e3VybDpJLG1ldGhvZDpJLGRhdGE6SSxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6YSxoZWFkZXJzOihzLG4sZyk9PmkoR3QocyksR3QobiksZywhMCl9O3JldHVybiBCLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPUVbbl18fGksdT1nKEFbbl0sZVtuXSxuKTtCLmlzVW5kZWZpbmVkKHUpJiZnIT09YXx8KHRbbl09dSl9KSx0fXZhciBQQT1BPT57bGV0IGU9WSh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46cix4c3JmSGVhZGVyTmFtZTppLHhzcmZDb29raWVOYW1lOkksaGVhZGVyczpvLGF1dGg6YX09ZTtpZihlLmhlYWRlcnM9bz1VLmZyb20obyksZS51cmw9bEEoZEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksYSYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGEudXNlcm5hbWV8fCIiKSsiOiIrKGEucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGEucGFzc3dvcmQpKToiIikpKSxCLmlzRm9ybURhdGEodCkpe2lmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxTLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihCLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCkscz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW24sZ10pPT57cy5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZvLnNldChuLGcpfSl9fWlmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYociYmQi5pc0Z1bmN0aW9uKHIpJiYocj1yKGUpKSxyfHxyIT09ITEmJlV0KGUudXJsKSkpe2xldCBFPWkmJkkmJk50LnJlYWQoSSk7RSYmby5zZXQoaSxFKX1yZXR1cm4gZX07dmFyIFlpPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsYnQ9WWkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBpPVBBKEEpLEk9aS5kYXRhLG89VS5mcm9tKGkuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTphLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6c309aSxuLGcsdSxDLFE7ZnVuY3Rpb24gbCgpe0MmJkMoKSxRJiZRKCksaS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxpLnNpZ25hbCYmaS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oaS5tZXRob2QudG9VcHBlckNhc2UoKSxpLnVybCwhMCksYy50aW1lb3V0PWkudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWMpcmV0dXJuO2xldCBoPVUuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLE09e2RhdGE6IWF8fGE9PT0idGV4dCJ8fGE9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczpoLGNvbmZpZzpBLHJlcXVlc3Q6Y307cEEoZnVuY3Rpb24oSil7dChKKSxsKCl9LGZ1bmN0aW9uKEope3IoSiksbCgpfSxNKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPXA6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYocihuZXcgZCgiUmVxdWVzdCBhYm9ydGVkIixkLkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IE09TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgZChNLGQuRVJSX05FVFdPUkssQSxjKTtaLmV2ZW50PU58fG51bGwscihaKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49aS50aW1lb3V0PyJ0aW1lb3V0IG9mICIraS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLE09aS50cmFuc2l0aW9uYWx8fE9BO2kudGltZW91dEVycm9yTWVzc2FnZSYmKE49aS50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBkKE4sTS5jbGFyaWZ5VGltZW91dEVycm9yP2QuRVRJTUVET1VUOmQuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sST09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZCLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihOLE0pe2Muc2V0UmVxdWVzdEhlYWRlcihNLE4pfSksQi5pc1VuZGVmaW5lZChpLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIWkud2l0aENyZWRlbnRpYWxzKSxhJiZhIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9aS5yZXNwb25zZVR5cGUpLHMmJihbdSxRXT1vQShzLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIix1KSksRSYmYy51cGxvYWQmJihbZyxDXT1vQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChpLmNhbmNlbFRva2VufHxpLnNpZ25hbCkmJihuPWg9PntjJiYocighaHx8aC50eXBlP25ldyB4KG51bGwsQSxjKTpoKSxjLmFib3J0KCksYz1udWxsKX0saS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksaS5zaWduYWwmJihpLnNpZ25hbC5hYm9ydGVkP24oKTppLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgbT15ZShpLnVybCk7aWYobSYmUy5wcm90b2NvbHMuaW5kZXhPZihtKT09PS0xKXtyKG5ldyBkKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK20rIjoiLGQuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKEl8fG51bGwpfSl9O3ZhciBUaT0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXIsaSxJPWZ1bmN0aW9uKHMpe2lmKCFpKXtpPSEwLGEoKTtsZXQgbj1zIGluc3RhbmNlb2YgRXJyb3I/czp0aGlzLnJlYXNvbjtyLmFib3J0KG4gaW5zdGFuY2VvZiBkP246bmV3IHgobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxvPWUmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsSShuZXcgZChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxkLkVUSU1FRE9VVCkpfSxlKSxhPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKHM9PntzLnVuc3Vic2NyaWJlP3MudW5zdWJzY3JpYmUoSSk6cy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSSl9KSxBPW51bGwpfTtBLmZvckVhY2gocz0+cy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSSkpO2xldHtzaWduYWw6RX09cjtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+Qi5hc2FwKGEpLEV9fSxMdD1UaTt2YXIgT2k9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsaTtmb3IoO3I8dDspaT1yK2UseWllbGQgQS5zbGljZShyLGkpLHI9aX0seGk9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHFpKEEpKXlpZWxkKk9pKHQsZSl9LHFpPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sUmU9KEEsZSx0LHIpPT57bGV0IGk9eGkoQSxlKSxJPTAsbyxhPUU9PntvfHwobz0hMCxyJiZyKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6cyx2YWx1ZTpufT1hd2FpdCBpLm5leHQoKTtpZihzKXthKCksRS5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IHU9SSs9Zzt0KHUpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2gocyl7dGhyb3cgYShzKSxzfX0sY2FuY2VsKEUpe3JldHVybiBhKEUpLGkucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBKdD02NCoxMDI0LHtpc0Z1bmN0aW9uOktBfT1CLFR0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEIuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06TXQsVGV4dEVuY29kZXI6SHR9PUIuZ2xvYmFsLFl0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFBpPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09T2JqZWN0LmFzc2lnbih7fSxUdCxBKSxpPUtBKGUpLEk9S0EodCksbz1LQShyKTtpZighaSlyZXR1cm4hMTtsZXQgYT1pJiZLQShNdCksRT1pJiYodHlwZW9mIEh0PT0iZnVuY3Rpb24iPyhRPT5sPT5RLmVuY29kZShsKSkobmV3IEh0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSkscz1JJiZhJiZZdCgoKT0+e2xldCBRPSExLGw9bmV3IHQoUy5vcmlnaW4se2JvZHk6bmV3IE10LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFsfSksbj1vJiZhJiZZdCgoKT0+Qi5pc1JlYWRhYmxlU3RyZWFtKG5ldyByKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihRPT5RLmJvZHkpfTtpJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFnW1FdJiYoZ1tRXT0obCxjKT0+e2xldCBwPWwmJmxbUV07aWYocClyZXR1cm4gcC5jYWxsKGwpO3Rocm93IG5ldyBkKGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCxkLkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IHU9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoQi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihCLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KFMub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhRKXx8Qi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksQi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQz1hc3luYyhRLGwpPT57bGV0IGM9Qi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P3UobCl9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpsLG1ldGhvZDpjLGRhdGE6cCxzaWduYWw6bSxjYW5jZWxUb2tlbjpoLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6TSxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOkosaGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6cWV9PVBBKFEpO0o9Sj8oSisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPUx0KFttLGgmJmgudG9BYm9ydFNpZ25hbCgpXSxOKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksUGU7dHJ5e2lmKFomJnMmJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKFBlPWF3YWl0IEMoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQobCx7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYoQi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1EZShQZSxvQSh3ZShaKSkpO3A9UmUoVy5ib2R5LEp0LEFlLFJBKX19Qi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgVD1JJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsS2U9ey4uLnFlLHNpZ25hbDpGQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6VD9TQTp2b2lkIDB9O3NBPUkmJm5ldyB0KGwsS2UpO2xldCBLPWF3YWl0KEk/ZShzQSxxZSk6ZShsLEtlKSksV2U9biYmKEo9PT0ic3RyZWFtInx8Sj09PSJyZXNwb25zZSIpO2lmKG4mJihNfHxXZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGplPT57V1tqZV09S1tqZV19KTtsZXQgJD1CLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TSYmRGUoJCxvQSh3ZShNKSwhMCkpfHxbXTtLPW5ldyByKFJlKEsuYm9keSxKdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfUo9Snx8InRleHQiO2xldCBFcj1hd2FpdCBnW0IuZmluZEtleShnLEopfHwidGV4dCJdKEssUSk7cmV0dXJuIVdlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntwQShXLCQse2RhdGE6RXIsaGVhZGVyczpVLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goVCl7dGhyb3cgViYmVigpLFQmJlQubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KFQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgZCgiTmV0d29yayBFcnJvciIsZC5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6VC5jYXVzZXx8VH0pOmQuZnJvbShULFQmJlQuY29kZSxRLHNBKX19fSxLaT1uZXcgTWFwLGtlPUE9PntsZXQgZT1CLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LFR0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpyLFJlc3BvbnNlOml9PWUsST1bcixpLHRdLG89SS5sZW5ndGgsYT1vLEUscyxuPUtpO2Zvcig7YS0tOylFPUlbYV0scz1uLmdldChFKSxzPT09dm9pZCAwJiZuLnNldChFLHM9YT9uZXcgTWFwOlBpKGUpKSxuPXM7cmV0dXJuIHN9LGhnPWtlKCk7dmFyIFVlPXtodHRwOllBLHhocjpidCxmZXRjaDp7Z2V0OmtlfX07Qi5mb3JFYWNoKFVlLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIE90PUE9PmAtICR7QX1gLGppPUE9PkIuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9Qi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxyLGksST17fTtmb3IobGV0IG89MDtvPHQ7bysrKXtyPUFbb107bGV0IGE7aWYoaT1yLCFqaShyKSYmKGk9VWVbKGE9U3RyaW5nKHIpKS50b0xvd2VyQ2FzZSgpXSxpPT09dm9pZCAwKSl0aHJvdyBuZXcgZChgVW5rbm93biBhZGFwdGVyICcke2F9J2ApO2lmKGkmJihCLmlzRnVuY3Rpb24oaSl8fChpPWkuZ2V0KGUpKSkpYnJlYWs7SVthfHwiIyIrb109aX1pZighaSl7bGV0IG89T2JqZWN0LmVudHJpZXMoSSkubWFwKChbRSxzXSk9PmBhZGFwdGVyICR7RX0gYCsocz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGE9dD9vLmxlbmd0aD4xP2BzaW5jZSA6CmArby5tYXAoT3QpLmpvaW4oYApgKToiICIrT3Qob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgZCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2EsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBpfSxhZGFwdGVyczpVZX07ZnVuY3Rpb24gTmUoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHgobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gTmUoQSksQS5oZWFkZXJzPVUuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT11QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fGlBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gTmUoQSksci5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1VLmZyb20oci5oZWFkZXJzKSxyfSxmdW5jdGlvbihyKXtyZXR1cm4gZkEocil8fChOZShBKSxyJiZyLnJlc3BvbnNlJiYoci5yZXNwb25zZS5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIucmVzcG9uc2UpLHIucmVzcG9uc2UuaGVhZGVycz1VLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHIpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgeHQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBpKEksbyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK0krIiciK28rKHI/Ii4gIityOiIiKX1yZXR1cm4oSSxvLGEpPT57aWYoZT09PSExKXRocm93IG5ldyBkKGkobywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZC5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiF4dFtvXSYmKHh0W29dPSEwLGNvbnNvbGUud2FybihpKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKEksbyxhKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIHZpKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IGQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLGQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCByPU9iamVjdC5rZXlzKEEpLGk9ci5sZW5ndGg7Zm9yKDtpLS0gPjA7KXtsZXQgST1yW2ldLG89ZVtJXTtpZihvKXtsZXQgYT1BW0ldLEU9YT09PXZvaWQgMHx8byhhLEksQSk7aWYoRSE9PSEwKXRocm93IG5ldyBkKCJvcHRpb24gIitJKyIgbXVzdCBiZSAiK0UsZC5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBkKCJVbmtub3duIG9wdGlvbiAiK0ksZC5FUlJfQkFEX09QVElPTil9fXZhciBtQT17YXNzZXJ0T3B0aW9uczp2aSx2YWxpZGF0b3JzOlpBfTt2YXIgcT1tQS52YWxpZGF0b3JzLG5BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGNlLHJlc3BvbnNlOm5ldyBjZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IGk9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoaSk6aT1uZXcgRXJyb3I7bGV0IEk9aS5zdGFjaz9pLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e3Iuc3RhY2s/SSYmIVN0cmluZyhyLnN0YWNrKS5lbmRzV2l0aChJLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKHIuc3RhY2srPWAKYCtJKTpyLnN0YWNrPUl9Y2F0Y2h7fX10aHJvdyByfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9WSh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6cixwYXJhbXNTZXJpYWxpemVyOmksaGVhZGVyczpJfT10O3IhPT12b2lkIDAmJm1BLmFzc2VydE9wdGlvbnMocix7c2lsZW50SlNPTlBhcnNpbmc6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpxLnRyYW5zaXRpb25hbChxLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKX0sITEpLGkhPW51bGwmJihCLmlzRnVuY3Rpb24oaSk/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6aX06bUEuYXNzZXJ0T3B0aW9ucyhpLHtlbmNvZGU6cS5mdW5jdGlvbixzZXJpYWxpemU6cS5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksbUEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOnEuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOnEuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPUkmJkIubWVyZ2UoSS5jb21tb24sSVt0Lm1ldGhvZF0pO0kmJkIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIElbUV19KSx0LmhlYWRlcnM9VS5jb25jYXQobyxJKTtsZXQgYT1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihsKXt0eXBlb2YgbC5ydW5XaGVuPT0iZnVuY3Rpb24iJiZsLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmbC5zeW5jaHJvbm91cyxhLnVuc2hpZnQobC5mdWxmaWxsZWQsbC5yZWplY3RlZCkpfSk7bGV0IHM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihsKXtzLnB1c2gobC5mdWxmaWxsZWQsbC5yZWplY3RlZCl9KTtsZXQgbixnPTAsdTtpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLmEpLFEucHVzaCguLi5zKSx1PVEubGVuZ3RoLG49UHJvbWlzZS5yZXNvbHZlKHQpO2c8dTspbj1uLnRoZW4oUVtnKytdLFFbZysrXSk7cmV0dXJuIG59dT1hLmxlbmd0aDtsZXQgQz10O2ZvcihnPTA7Zzx1Oyl7bGV0IFE9YVtnKytdLGw9YVtnKytdO3RyeXtDPVEoQyl9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtuPWpBLmNhbGwodGhpcyxDKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGc9MCx1PXMubGVuZ3RoO2c8dTspbj1uLnRoZW4oc1tnKytdLHNbZysrXSk7cmV0dXJuIG59Z2V0VXJpKGUpe2U9WSh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PWRBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07Qi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtuQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pO0IuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKEksbyxhKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkoYXx8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6SSxkYXRhOm99KSl9fW5BLnByb3RvdHlwZVtlXT10KCksbkEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBoQT1uQTt2YXIgR2U9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKEkpe3Q9SX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oaT0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtJLS0gPjA7KXIuX2xpc3RlbmVyc1tJXShpKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPWk9PntsZXQgSSxvPW5ldyBQcm9taXNlKGE9PntyLnN1YnNjcmliZShhKSxJPWF9KS50aGVuKGkpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoSSl9LG99LGUoZnVuY3Rpb24oSSxvLGEpe3IucmVhc29ufHwoci5yZWFzb249bmV3IHgoSSxvLGEpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihpKXtlPWl9KSxjYW5jZWw6ZX19fSxxdD1HZTtmdW5jdGlvbiBiZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gTGUoQSl7cmV0dXJuIEIuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIEplPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhKZSkuZm9yRWFjaCgoW0EsZV0pPT57SmVbZV09QX0pO3ZhciBQdD1KZTtmdW5jdGlvbiBLdChBKXtsZXQgZT1uZXcgaEEoQSksdD1CQShoQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gQi5leHRlbmQodCxoQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLEIuZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24oaSl7cmV0dXJuIEt0KFkoQSxpKSl9LHR9dmFyIEY9S3QoaUEpO0YuQXhpb3M9aEE7Ri5DYW5jZWxlZEVycm9yPXg7Ri5DYW5jZWxUb2tlbj1xdDtGLmlzQ2FuY2VsPWZBO0YuVkVSU0lPTj12QTtGLnRvRm9ybURhdGE9ajtGLkF4aW9zRXJyb3I9ZDtGLkNhbmNlbD1GLkNhbmNlbGVkRXJyb3I7Ri5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTtGLnNwcmVhZD1iZTtGLmlzQXhpb3NFcnJvcj1MZTtGLm1lcmdlQ29uZmlnPVk7Ri5BeGlvc0hlYWRlcnM9VTtGLmZvcm1Ub0pTT049QT0+eEEoQi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTtGLmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjtGLkh0dHBTdGF0dXNDb2RlPVB0O0YuZGVmYXVsdD1GO3ZhciBnQT1GO3ZhcntBeGlvczpwYSxBeGlvc0Vycm9yOmRhLENhbmNlbGVkRXJyb3I6bWEsaXNDYW5jZWw6aGEsQ2FuY2VsVG9rZW46eWEsVkVSU0lPTjpEYSxhbGw6d2EsQ2FuY2VsOlNhLGlzQXhpb3NFcnJvcjpGYSxzcHJlYWQ6UmEsdG9Gb3JtRGF0YTprYSxBeGlvc0hlYWRlcnM6VWEsSHR0cFN0YXR1c0NvZGU6TmEsZm9ybVRvSlNPTjpHYSxnZXRBZGFwdGVyOmJhLG1lcmdlQ29uZmlnOkxhfT1nQTthc3luYyBmdW5jdGlvbiBaaShBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IGk9YXdhaXQgZ0EuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxJPVVSTC5jcmVhdGVPYmplY3RVUkwoaS5kYXRhKTtyPW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pfWVsc2Ugcj1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gcn12YXIgeUE9Wmk7ZnVuY3Rpb24gV3QoQSl7bGV0IGU9c2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVthZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBWaShBLGUsdCl7bGV0IHI7aWYoQSE9bnVsbCl7bGV0IEk9QTtyZXR1cm4gSS53b3JrZXJQcm94eSE9PXZvaWQgMD8ocj1JLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpyLHdvcmtlcjpJfSk6V3QoQSl9bGV0IGk9YXdhaXQgeUEoZSx0KTtyZXR1cm4gV3QoaSl9dmFyIGp0PVZpO3ZhciBEQSxQLEhlLE1lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7SGU9bmV3IFVpbnQ4QXJyYXkoUC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gREF8fCh0eXBlb2YgZmV0Y2g8InUiP0RBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrdnQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTWUpKS50aGVuKHRoaXMuX2luaXQpOkRBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHZ0LCJiYXNlNjQiKSxNZSkudGhlbih0aGlzLl9pbml0KSxEQSl9X2luaXQoZSl7UD1lLmluc3RhbmNlLE1lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIVApdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHI9ZS5ieXRlTGVuZ3RoLGk9UC5leHBvcnRzLm1hbGxvYyhyKTtIZS5zZXQoZSxpKSx0PXR8fE51bWJlcihQLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShpLHIpKTtsZXQgST1QLmV4cG9ydHMubWFsbG9jKHQpLG89UC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhJLHQsaSxyKSxhPUhlLnNsaWNlKEksSStvKTtyZXR1cm4gUC5leHBvcnRzLmZyZWUoaSksUC5leHBvcnRzLmZyZWUoSSksYX19LHZ0PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIFp0PW5ldyBWQSxWdD0hMTthc3luYyBmdW5jdGlvbiBYaShBLGUsdCl7bGV0IHI9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9yPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9yPUE6cj10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxyLmVuZHNXaXRoKCIuanMiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0zKSksci5lbmRzV2l0aCgiLndhc20iKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC01KSksci5lbmRzV2l0aCgiLndhc20uenN0IikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtOSkpO2xldCBpPWAke3J9Lndhc21gLEk9YXdhaXQgZ0EuZ2V0KGAke2l9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7VnR8fChhd2FpdCBadC5pbml0KCksVnQ9ITApO2xldCBhPVp0LmRlY29kZShuZXcgVWludDhBcnJheShJLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OmF9KX12YXIgWHQ9WGk7dmFyIHp0PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixfdD1uZXcgVGV4dEVuY29kZXIsJHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIHppKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxJPUEuZnNfc3RhdChlKS5zaXplLG89bnVsbDtBcj9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJKTpvPW5ldyBBcnJheUJ1ZmZlcihJKTtsZXQgYT1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKHIsYSwwLEksMCksQS5mc19jbG9zZShyKSxhfWZ1bmN0aW9uIGVyKEEsZSx0KXtsZXQgcj1udWxsO0FyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBpPW5ldyBVaW50OEFycmF5KHIpLEk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIGkuc2V0KEkpLGl9ZnVuY3Rpb24gUihBLGUsdCxyKXtsZXQgaT0wO3JldHVybiBlIT09bnVsbCYmKGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLGkpKSxpfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCByPUpTT04uc3RyaW5naWZ5KGUpLGk9QS5sZW5ndGhCeXRlc1VURjgocikrMSxJPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxpXSk7QS5zdHJpbmdUb1VURjgocixJLGkpfWZ1bmN0aW9uIEcoQSxlLHQscil7bGV0IGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxvPWVyKEEsaSxJKTtyZXR1cm4gTyhyLG8uYnVmZmVyKX1mdW5jdGlvbiB3QShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLHI9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2Uocil9ZnVuY3Rpb24gX2koQSxlLHQscil7ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKHMsbil7c3dpdGNoKHMudHlwZSl7Y2FzZSBmLlRleHRTdHJlYW06e2xldCBnPV90LmVuY29kZShzLmRhdGEuZGF0YSksdT1SKEEsZyxuLDApLEM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gfTt2KEEsQyxuKTticmVha31jYXNlIGYuSnNvbkNvbXBhdGlibGU6e2xldCBnPV90LmVuY29kZShKU09OLnN0cmluZ2lmeShzLmRhdGEpKSx1PVIoQSxnLG4sMCksQz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWB9O3YoQSxDLG4pO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBnPXMuZGF0YS5kYXRhLHU9UihBLGcsbiwwKSxDPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YH07dihBLEMsbik7YnJlYWt9Y2FzZSBmLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShzLmRhdGEucGF0aCxzLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBmLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKHMuZGF0YS5wYXRoLHMuZGF0YS5kYXRhKTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBnPXMuZGF0YSx1PVIoQSxnLmRhdGEsbiwwKSxDPVIoQSxnLmRpcmVjdGlvbixuLDEpLFE9dHlwZW9mIGcubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oZy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGw9e2ltYWdlVHlwZTpnLmltYWdlVHlwZSxuYW1lOmcubmFtZSxvcmlnaW46Zy5vcmlnaW4sc3BhY2luZzpnLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLHNpemU6Zy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbWV0YWRhdGE6UX07dihBLGwsbik7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcuY2VsbHMsbiwxKSxRPVIoQSxnLnBvaW50RGF0YSxuLDIpLGw9UihBLGcuY2VsbERhdGEsbiwzKSxjPXttZXNoVHlwZTpnLm1lc2hUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLG51bWJlck9mQ2VsbHM6Zy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGNlbGxCdWZmZXJTaXplOmcuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07dihBLGMsbik7YnJlYWt9Y2FzZSBmLlBvaW50U2V0OntsZXQgZz1zLmRhdGEsdT1SKEEsZy5wb2ludHMsbiwwKSxDPVIoQSxnLnBvaW50RGF0YSxuLDEpLFE9e3BvaW50U2V0VHlwZTpnLnBvaW50U2V0VHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWB9O3YoQSxRLG4pO2JyZWFrfWNhc2UgZi5UcmFuc2Zvcm1MaXN0OntsZXQgZz1zLmRhdGEsdT1bXSxDPTA7Zy5mb3JFYWNoKFE9PntsZXQgbD0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UihBLFEuZml4ZWRQYXJhbWV0ZXJzLG4sQyl9YCxDKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtSKEEsUS5wYXJhbWV0ZXJzLG4sQyl9YCxDKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpsfTt1LnB1c2gocCl9KSx2KEEsdSxuKTticmVha31jYXNlIGYuUG9seURhdGE6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcudmVydGljZXMsbiwxKSxRPVIoQSxnLmxpbmVzLG4sMiksbD1SKEEsZy5wb2x5Z29ucyxuLDMpLGM9UihBLGcudHJpYW5nbGVTdHJpcHMsbiw0KSxwPVIoQSxnLnBvaW50RGF0YSxuLDUpLG09UihBLGcucG9pbnREYXRhLG4sNiksaD17cG9seURhdGFUeXBlOmcucG9seURhdGFUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpnLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxsaW5lc0J1ZmZlclNpemU6Zy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmcucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpnLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmcubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bX1gfTt2KEEsaCxuKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgaT1BLnN0YWNrU2F2ZSgpLEk9MDt0cnl7ST1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2gocyl7dGhyb3cgdHlwZW9mIHM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UocykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksc31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKGkpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksYT1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJkk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24ocyxuKXtsZXQgZz1udWxsO3N3aXRjaChzLnR5cGUpe2Nhc2UgZi5UZXh0U3RyZWFtOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsUSk7Zz17ZGF0YTokdC5kZWNvZGUobCl9O2JyZWFrfWNhc2UgZi5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLFEpO2c9SlNPTi5wYXJzZSgkdC5kZWNvZGUobCkpO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSk7Zz17ZGF0YTplcihBLEMsUSl9O2JyZWFrfWNhc2UgZi5UZXh0RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUocy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGYuQmluYXJ5RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOnppKEEscy5kYXRhLnBhdGgpfTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBDPXdBKEEsbik7Qy5kYXRhPUcoQSxuLDAsQy5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQy5kaXJlY3Rpb249RyhBLG4sMSxYLkZsb2F0NjQpLEMubWV0YWRhdGE9bmV3IE1hcChDLm1ldGFkYXRhKSxnPUM7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPU8oQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbHM+MD9DLmNlbGxzPUcoQSxuLDEsQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qy5jZWxscz1PKEMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1HKEEsbiwyLEMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiwzLEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5jZWxsRGF0YT1PKEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9QzticmVha31jYXNlIGYuUG9pbnRTZXQ6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpDLnBvaW50cz1PKEMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUcoQSxuLDEsQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPUM7YnJlYWt9Y2FzZSBmLlRyYW5zZm9ybUxpc3Q6e2xldCBDPXdBKEEsbiksUT0wO0MuZm9yRWFjaCgobCxjKT0+e2wudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihDW2NdLmZpeGVkUGFyYW1ldGVycz1HKEEsbixRLFguRmxvYXQ2NCkpLFErPTEsbC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKENbY10ucGFyYW1ldGVycz1HKEEsbixRLGwudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxnPUM7YnJlYWt9Y2FzZSBmLlBvbHlEYXRhOntsZXQgQz13QShBLG4pO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1HKEEsbiwwLFguRmxvYXQzMik6Qy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxDLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0MudmVydGljZXM9RyhBLG4sMSxiLlVJbnQzMik6Qy52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQy5saW5lc0J1ZmZlclNpemU+MD9DLmxpbmVzPUcoQSxuLDIsYi5VSW50MzIpOkMubGluZXM9bmV3IFVpbnQzMkFycmF5LEMucG9seWdvbnNCdWZmZXJTaXplPjA/Qy5wb2x5Z29ucz1HKEEsbiwzLGIuVUludDMyKTpDLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0MudHJpYW5nbGVTdHJpcHM9RyhBLG4sNCxiLlVJbnQzMik6Qy50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9RyhBLG4sNSxDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9TyhDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiw2LEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9TyhDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1DO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IHU9e3R5cGU6cy50eXBlLGRhdGE6Z307RS5wdXNoKHUpfSkse3JldHVyblZhbHVlOkksc3Rkb3V0Om8sc3RkZXJyOmEsb3V0cHV0czpFfX12YXIgdHI9X2k7dmFyICRpPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBBSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBpPWVJKEFbcl0sZSk7aSE9PW51bGwmJnQucHVzaChpKX1yZXR1cm4gdH1mdW5jdGlvbiBlSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLCRpJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgcnI9QUk7ZnVuY3Rpb24gdEkoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGlyPXRJO2Z1bmN0aW9uIHJJKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBJcj1ySTtmdW5jdGlvbiBpSShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgb3I9aUk7dmFyIElJO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIElJfXZhciBvSTtmdW5jdGlvbiBucigpe3JldHVybiBvSX12YXIgbkk7ZnVuY3Rpb24gekEoKXtyZXR1cm4gbkl9dmFyIFllPW5ldyBNYXA7ZnVuY3Rpb24gZ0koKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gZ3IoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPW5yKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gYUkoQSxlLHQpe2xldCByPUEsaT1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKHI9bmV3IFVSTChBLmhyZWYpLGk9ci5ocmVmKSxZZS5oYXMoaSkpcmV0dXJuIFllLmdldChpKTt7bGV0IEk9YXdhaXQgWHQoQSxlPy50b1N0cmluZygpPz9ncigpLHQ/P19BKCkpO3JldHVybiBZZS5zZXQoaSxJKSxJfX1hc3luYyBmdW5jdGlvbiBzSShBLGUsdCxyLGkpe2lmKCFhd2FpdCB6dCgpKXtsZXQgYz0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQoYyksbmV3IEVycm9yKGMpfWxldCBJPWk/LndlYldvcmtlcj8/bnVsbDtpZihJPT09ITEpe2xldCBjPWF3YWl0IGFJKEEudG9TdHJpbmcoKSxpPy5waXBlbGluZUJhc2VVcmwsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIHRyKGMsZSx0LHIpfWxldCBvPUksYT1pPy5waXBlbGluZVdvcmtlclVybD8/Z0koKSxFPXR5cGVvZiBhIT0ic3RyaW5nIiYmdHlwZW9mIGE/LmhyZWY8InUiP2EuaHJlZjphLHt3b3JrZXJQcm94eTpzLHdvcmtlcjpufT1hd2FpdCBqdChvLEUsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7bz1uO2xldCBnPVtdO3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLnR5cGU9PT1mLkJpbmFyeVN0cmVhbSl7bGV0IHA9Yy5kYXRhLmRhdGE7Zy5wdXNoKHApfWVsc2UgaWYoYy50eXBlPT09Zi5CaW5hcnlGaWxlKXtsZXQgcD1jLmRhdGEuZGF0YTtnLnB1c2gocCl9ZWxzZSBpZihjLnR5cGU9PT1mLkltYWdlKXtsZXQgcD1jLmRhdGE7cC5kYXRhIT09bnVsbCYmZy5wdXNoKC4uLmlyKHApKX1lbHNlIGlmKGMudHlwZT09PWYuTWVzaCl7bGV0IHA9Yy5kYXRhO2cucHVzaCguLi5JcihwKSl9ZWxzZSBpZihjLnR5cGU9PT1mLlBvbHlEYXRhKXtsZXQgcD1jLmRhdGE7Zy5wdXNoKC4uLm9yKHApKX19KTtsZXQgdT1pPy5waXBlbGluZUJhc2VVcmw/P2dyKCksQz10eXBlb2YgdSE9InN0cmluZyImJnR5cGVvZiB1Py5ocmVmPCJ1Ij91LmhyZWY6dSxRPXIhPW51bGw/QmUocixycihnLGk/Lm5vQ29weSkpOm51bGwsbD1hd2FpdCBzLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxDLGUsdCxRLGk/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpsLnJldHVyblZhbHVlLHN0ZG91dDpsLnN0ZG91dCxzdGRlcnI6bC5zdGRlcnIsb3V0cHV0czpsLm91dHB1dHMsd2ViV29ya2VyOm99fXZhciBEPXNJO3ZhciBCST1udWxsO2Z1bmN0aW9uIGFyKCl7cmV0dXJuIEJJfXZhciBUZSxDST1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZGljb21AJHtlZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIFNzKEEpe1RlPUF9ZnVuY3Rpb24gdygpe2lmKHR5cGVvZiBUZTwidSIpcmV0dXJuIFRlO2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOkNJfXZhciBPZSxRST1udWxsO2Z1bmN0aW9uIHNyKEEpe09lPUF9ZnVuY3Rpb24geSgpe2lmKHR5cGVvZiBPZTwidSIpcmV0dXJuIE9lO2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlFJfXZhciBhQT1udWxsO2FzeW5jIGZ1bmN0aW9uIEJyKCl7bGV0IEE9eSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7YUE9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gYnMoQSl7YUE9QX1hc3luYyBmdW5jdGlvbiBrKCl7aWYoYUEhPT1udWxsKXJldHVybiBhQS50ZXJtaW5hdGVkJiZhd2FpdCBCcigpLGFBO2xldCBBPWFyKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IEJyKCksYUEpfWFzeW5jIGZ1bmN0aW9uIEVJKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Zi5JbWFnZX1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGg9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoaCl9fWxldCBJPWU7aWYoZSBpbnN0YW5jZW9mIEZpbGUpe2xldCBoPWF3YWl0IGUuYXJyYXlCdWZmZXIoKTtJPXtwYXRoOmUubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGgpfX1sZXQgbz1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6aX0se3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6SX1dLGE9W10sRT1pLnBhdGg7YS5wdXNoKEUpO2xldCBzPUkucGF0aDthLnB1c2gocyksYS5wdXNoKCIwIiksYS5wdXNoKCIxIiksYS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuY29sb3JPdXRwdXQmJnQuY29sb3JPdXRwdXQmJmEucHVzaCgiLS1jb2xvci1vdXRwdXQiKSx0LmNvbmZpZ0ZpbGUmJmEucHVzaCgiLS1jb25maWctZmlsZSIsdC5jb25maWdGaWxlLnRvU3RyaW5nKCkpLHQuZnJhbWUmJmEucHVzaCgiLS1mcmFtZSIsdC5mcmFtZS50b1N0cmluZygpKSx0Lm5vUHJlc2VudGF0aW9uU3RhdGVPdXRwdXQmJnQubm9QcmVzZW50YXRpb25TdGF0ZU91dHB1dCYmYS5wdXNoKCItLW5vLXByZXNlbnRhdGlvbi1zdGF0ZS1vdXRwdXQiKSx0Lm5vQml0bWFwT3V0cHV0JiZ0Lm5vQml0bWFwT3V0cHV0JiZhLnB1c2goIi0tbm8tYml0bWFwLW91dHB1dCIpO2xldCB1PSJhcHBseS1wcmVzZW50YXRpb24tc3RhdGUtdG8taW1hZ2UiLEM9dD8ud2ViV29ya2VyO0M9PT12b2lkIDAmJihDPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpRLHJldHVyblZhbHVlOmwsc3RkZXJyOmMsb3V0cHV0czpwfT1hd2FpdCBEKHUsYSxyLG8se3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpDLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmYyE9PSIiKXRocm93IG5ldyBFcnJvcihjKTtyZXR1cm57d2ViV29ya2VyOlEscHJlc2VudGF0aW9uU3RhdGVPdXRTdHJlYW06cFswXT8uZGF0YSxvdXRwdXRJbWFnZTpwWzFdPy5kYXRhfX12YXIgbEk9RUk7YXN5bmMgZnVuY3Rpb24gY0koQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5CaW5hcnlTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnJlYWRGaWxlT25seSYmZS5yZWFkRmlsZU9ubHkmJkkucHVzaCgiLS1yZWFkLWZpbGUtb25seSIpLGUucmVhZERhdGFzZXQmJmUucmVhZERhdGFzZXQmJkkucHVzaCgiLS1yZWFkLWRhdGFzZXQiKSxlLnJlYWRYZmVyQXV0byYmZS5yZWFkWGZlckF1dG8mJkkucHVzaCgiLS1yZWFkLXhmZXItYXV0byIpLGUucmVhZFhmZXJEZXRlY3QmJmUucmVhZFhmZXJEZXRlY3QmJkkucHVzaCgiLS1yZWFkLXhmZXItZGV0ZWN0IiksZS5yZWFkWGZlckxpdHRsZSYmZS5yZWFkWGZlckxpdHRsZSYmSS5wdXNoKCItLXJlYWQteGZlci1saXR0bGUiKSxlLnJlYWRYZmVyQmlnJiZlLnJlYWRYZmVyQmlnJiZJLnB1c2goIi0tcmVhZC14ZmVyLWJpZyIpLGUucmVhZFhmZXJJbXBsaWNpdCYmZS5yZWFkWGZlckltcGxpY2l0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWltcGxpY2l0IiksZS5hY2NlcHRPZGRMZW5ndGgmJmUuYWNjZXB0T2RkTGVuZ3RoJiZJLnB1c2goIi0tYWNjZXB0LW9kZC1sZW5ndGgiKSxlLmFzc3VtZUV2ZW5MZW5ndGgmJmUuYXNzdW1lRXZlbkxlbmd0aCYmSS5wdXNoKCItLWFzc3VtZS1ldmVuLWxlbmd0aCIpLGUuZW5hYmxlQ3AyNDYmJmUuZW5hYmxlQ3AyNDYmJkkucHVzaCgiLS1lbmFibGUtY3AyNDYiKSxlLmRpc2FibGVDcDI0NiYmZS5kaXNhYmxlQ3AyNDYmJkkucHVzaCgiLS1kaXNhYmxlLWNwMjQ2IiksZS5yZXRhaW5VbiYmZS5yZXRhaW5VbiYmSS5wdXNoKCItLXJldGFpbi11biIpLGUuY29udmVydFVuJiZlLmNvbnZlcnRVbiYmSS5wdXNoKCItLWNvbnZlcnQtdW4iKSxlLmVuYWJsZUNvcnJlY3Rpb24mJmUuZW5hYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWVuYWJsZS1jb3JyZWN0aW9uIiksZS5kaXNhYmxlQ29ycmVjdGlvbiYmZS5kaXNhYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWRpc2FibGUtY29ycmVjdGlvbiIpO2xldCBFPSJyZWFkLWRpY29tLWVuY2Fwc3VsYXRlZC1wZGYiLHM9ZT8ud2ViV29ya2VyO3M9PT12b2lkIDAmJihzPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmcsc3RkZXJyOnUsb3V0cHV0czpDfT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpzLG5vQ29weTplPy5ub0NvcHl9KTtpZihnIT09MCYmdSE9PSIiKXRocm93IG5ldyBFcnJvcih1KTtyZXR1cm57d2ViV29ya2VyOm4scGRmQmluYXJ5T3V0cHV0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgdUk9Y0k7YXN5bmMgZnVuY3Rpb24gZkkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5UZXh0U3RyZWFtfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbD1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShsKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO2lmKEkucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksZS5yZWFkRmlsZU9ubHkmJmUucmVhZEZpbGVPbmx5JiZJLnB1c2goIi0tcmVhZC1maWxlLW9ubHkiKSxlLnJlYWREYXRhc2V0JiZlLnJlYWREYXRhc2V0JiZJLnB1c2goIi0tcmVhZC1kYXRhc2V0IiksZS5yZWFkWGZlckF1dG8mJmUucmVhZFhmZXJBdXRvJiZJLnB1c2goIi0tcmVhZC14ZmVyLWF1dG8iKSxlLnJlYWRYZmVyRGV0ZWN0JiZlLnJlYWRYZmVyRGV0ZWN0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWRldGVjdCIpLGUucmVhZFhmZXJMaXR0bGUmJmUucmVhZFhmZXJMaXR0bGUmJkkucHVzaCgiLS1yZWFkLXhmZXItbGl0dGxlIiksZS5yZWFkWGZlckJpZyYmZS5yZWFkWGZlckJpZyYmSS5wdXNoKCItLXJlYWQteGZlci1iaWciKSxlLnJlYWRYZmVySW1wbGljaXQmJmUucmVhZFhmZXJJbXBsaWNpdCYmSS5wdXNoKCItLXJlYWQteGZlci1pbXBsaWNpdCIpLGUucHJvY2Vzc2luZ0RldGFpbHMmJmUucHJvY2Vzc2luZ0RldGFpbHMmJkkucHVzaCgiLS1wcm9jZXNzaW5nLWRldGFpbHMiKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUuZGlzYWJsZVZyQ2hlY2tlciYmZS5kaXNhYmxlVnJDaGVja2VyJiZJLnB1c2goIi0tZGlzYWJsZS12ci1jaGVja2VyIiksZS5jaGFyc2V0UmVxdWlyZSYmZS5jaGFyc2V0UmVxdWlyZSYmSS5wdXNoKCItLWNoYXJzZXQtcmVxdWlyZSIpLGUuY2hhcnNldEFzc3VtZSYmSS5wdXNoKCItLWNoYXJzZXQtYXNzdW1lIixlLmNoYXJzZXRBc3N1bWUudG9TdHJpbmcoKSksZS5jaGFyc2V0Q2hlY2tBbGwmJmUuY2hhcnNldENoZWNrQWxsJiZJLnB1c2goIi0tY2hhcnNldC1jaGVjay1hbGwiKSxlLmNvbnZlcnRUb1V0ZjgmJmUuY29udmVydFRvVXRmOCYmSS5wdXNoKCItLWNvbnZlcnQtdG8tdXRmOCIpLGUudXJsUHJlZml4JiZJLnB1c2goIi0tdXJsLXByZWZpeCIsZS51cmxQcmVmaXgudG9TdHJpbmcoKSksZS5odG1sMzImJmUuaHRtbDMyJiZJLnB1c2goIi0taHRtbC0zMiIpLGUuaHRtbDQwJiZlLmh0bWw0MCYmSS5wdXNoKCItLWh0bWwtNDAiKSxlLnhodG1sMTEmJmUueGh0bWwxMSYmSS5wdXNoKCItLXhodG1sLTExIiksZS5hZGREb2N1bWVudFR5cGUmJmUuYWRkRG9jdW1lbnRUeXBlJiZJLnB1c2goIi0tYWRkLWRvY3VtZW50LXR5cGUiKSxlLmNzc1JlZmVyZW5jZSl7bGV0IGw9aS5sZW5ndGgudG9TdHJpbmcoKTtpLnB1c2goe3R5cGU6Zi5UZXh0U3RyZWFtLGRhdGE6e2RhdGE6ZS5jc3NSZWZlcmVuY2V9fSksSS5wdXNoKCItLWNzcy1yZWZlcmVuY2UiLGwpfWlmKGUuY3NzRmlsZSl7bGV0IGw9ZS5jc3NGaWxlLGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG0pfX1JLnB1c2goIi0tY3NzLWZpbGUiKSxpLnB1c2goe3R5cGU6Zi5UZXh0RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6bC5wYXRoO0kucHVzaChwKX1lLmV4cGFuZElubGluZSYmZS5leHBhbmRJbmxpbmUmJkkucHVzaCgiLS1leHBhbmQtaW5saW5lIiksZS5uZXZlckV4cGFuZElubGluZSYmZS5uZXZlckV4cGFuZElubGluZSYmSS5wdXNoKCItLW5ldmVyLWV4cGFuZC1pbmxpbmUiKSxlLmFsd2F5c0V4cGFuZElubGluZSYmZS5hbHdheXNFeHBhbmRJbmxpbmUmJkkucHVzaCgiLS1hbHdheXMtZXhwYW5kLWlubGluZSIpLGUucmVuZGVyRnVsbERhdGEmJmUucmVuZGVyRnVsbERhdGEmJkkucHVzaCgiLS1yZW5kZXItZnVsbC1kYXRhIiksZS5zZWN0aW9uVGl0bGVJbmxpbmUmJmUuc2VjdGlvblRpdGxlSW5saW5lJiZJLnB1c2goIi0tc2VjdGlvbi10aXRsZS1pbmxpbmUiKSxlLmRvY3VtZW50VHlwZVRpdGxlJiZlLmRvY3VtZW50VHlwZVRpdGxlJiZJLnB1c2goIi0tZG9jdW1lbnQtdHlwZS10aXRsZSIpLGUucGF0aWVudEluZm9UaXRsZSYmZS5wYXRpZW50SW5mb1RpdGxlJiZJLnB1c2goIi0tcGF0aWVudC1pbmZvLXRpdGxlIiksZS5ub0RvY3VtZW50SGVhZGVyJiZlLm5vRG9jdW1lbnRIZWFkZXImJkkucHVzaCgiLS1uby1kb2N1bWVudC1oZWFkZXIiKSxlLnJlbmRlcklubGluZUNvZGVzJiZlLnJlbmRlcklubGluZUNvZGVzJiZJLnB1c2goIi0tcmVuZGVyLWlubGluZS1jb2RlcyIpLGUuY29uY2VwdE5hbWVDb2RlcyYmZS5jb25jZXB0TmFtZUNvZGVzJiZJLnB1c2goIi0tY29uY2VwdC1uYW1lLWNvZGVzIiksZS5udW1lcmljVW5pdENvZGVzJiZlLm51bWVyaWNVbml0Q29kZXMmJkkucHVzaCgiLS1udW1lcmljLXVuaXQtY29kZXMiKSxlLmNvZGVWYWx1ZVVuaXQmJmUuY29kZVZhbHVlVW5pdCYmSS5wdXNoKCItLWNvZGUtdmFsdWUtdW5pdCIpLGUuY29kZU1lYW5pbmdVbml0JiZlLmNvZGVNZWFuaW5nVW5pdCYmSS5wdXNoKCItLWNvZGUtbWVhbmluZy11bml0IiksZS5yZW5kZXJBbGxDb2RlcyYmZS5yZW5kZXJBbGxDb2RlcyYmSS5wdXNoKCItLXJlbmRlci1hbGwtY29kZXMiKSxlLmNvZGVEZXRhaWxzVG9vbHRpcCYmZS5jb2RlRGV0YWlsc1Rvb2x0aXAmJkkucHVzaCgiLS1jb2RlLWRldGFpbHMtdG9vbHRpcCIpO2xldCBFPSJzdHJ1Y3R1cmVkLXJlcG9ydC10by1odG1sIixzPWU/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dFRleHQ6KENbMF0/LmRhdGEpLmRhdGF9fXZhciBwST1mSTthc3luYyBmdW5jdGlvbiBkSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLlRleHRTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUubm9Eb2N1bWVudEhlYWRlciYmZS5ub0RvY3VtZW50SGVhZGVyJiZJLnB1c2goIi0tbm8tZG9jdW1lbnQtaGVhZGVyIiksZS5udW1iZXJOZXN0ZWRJdGVtcyYmZS5udW1iZXJOZXN0ZWRJdGVtcyYmSS5wdXNoKCItLW51bWJlci1uZXN0ZWQtaXRlbXMiKSxlLnNob3J0ZW5Mb25nVmFsdWVzJiZlLnNob3J0ZW5Mb25nVmFsdWVzJiZJLnB1c2goIi0tc2hvcnRlbi1sb25nLXZhbHVlcyIpLGUucHJpbnRJbnN0YW5jZVVpZCYmZS5wcmludEluc3RhbmNlVWlkJiZJLnB1c2goIi0tcHJpbnQtaW5zdGFuY2UtdWlkIiksZS5wcmludFNvcGNsYXNzU2hvcnQmJmUucHJpbnRTb3BjbGFzc1Nob3J0JiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3Mtc2hvcnQiKSxlLnByaW50U29wY2xhc3NMb25nJiZlLnByaW50U29wY2xhc3NMb25nJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtbG9uZyIpLGUucHJpbnRTb3BjbGFzc1VpZCYmZS5wcmludFNvcGNsYXNzVWlkJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtdWlkIiksZS5wcmludEFsbENvZGVzJiZlLnByaW50QWxsQ29kZXMmJkkucHVzaCgiLS1wcmludC1hbGwtY29kZXMiKSxlLnByaW50SW52YWxpZENvZGVzJiZlLnByaW50SW52YWxpZENvZGVzJiZJLnB1c2goIi0tcHJpbnQtaW52YWxpZC1jb2RlcyIpLGUucHJpbnRUZW1wbGF0ZUlkJiZlLnByaW50VGVtcGxhdGVJZCYmSS5wdXNoKCItLXByaW50LXRlbXBsYXRlLWlkIiksZS5pbmRpY2F0ZUVuaGFuY2VkJiZlLmluZGljYXRlRW5oYW5jZWQmJkkucHVzaCgiLS1pbmRpY2F0ZS1lbmhhbmNlZCIpLGUucHJpbnRDb2xvciYmZS5wcmludENvbG9yJiZJLnB1c2goIi0tcHJpbnQtY29sb3IiKTtsZXQgRT0ic3RydWN0dXJlZC1yZXBvcnQtdG8tdGV4dCIscz1lPy53ZWJXb3JrZXI7cz09PXZvaWQgMCYmKHM9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6ZyxzdGRlcnI6dSxvdXRwdXRzOkN9PWF3YWl0IEQoRSxJLHQsaSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOnMsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGchPT0wJiZ1IT09IiIpdGhyb3cgbmV3IEVycm9yKHUpO3JldHVybnt3ZWJXb3JrZXI6bixvdXRwdXRUZXh0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgbUk9ZEk7YXN5bmMgZnVuY3Rpb24gaEkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IFE9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoUSl9fWxldCBpPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxvPXIucGF0aDtpZihJLnB1c2gobyksSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnRhZ3NUb1JlYWQ8InUiKXtsZXQgUT1pLmxlbmd0aC50b1N0cmluZygpO2kucHVzaCh7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZS50YWdzVG9SZWFkfSksSS5wdXNoKCItLXRhZ3MtdG8tcmVhZCIsUSl9bGV0IEU9InJlYWQtZGljb20tdGFncyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLHRhZ3M6dVswXS5kYXRhfX12YXIgeUk9aEk7YXN5bmMgZnVuY3Rpb24gREkoQSxlPSExLHQ9e30pe2xldCByPVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0saT1bXSxJPVtdO0kucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxJLnB1c2goIi0taW5wdXQtaW1hZ2VzIiksQS5mb3JFYWNoKFE9PntpLnB1c2goe3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6UX0pLEkucHVzaChRLnBhdGgpfSksdHlwZW9mIGU8InUiJiZlJiZJLnB1c2goIi0tc2luZ2xlLXNvcnRlZC1zZXJpZXMiKTtsZXQgRT0icmVhZC1pbWFnZS1kaWNvbS1maWxlLXNlcmllcyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSxyLGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjp0Py53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLG91dHB1dEltYWdlOnVbMF0uZGF0YSxzb3J0ZWRGaWxlbmFtZXM6dVsxXS5kYXRhfX12YXIgeGU9REk7dmFyIHdJPXR5cGVvZiBnbG9iYWxUaGlzLm5hdmlnYXRvcj8uaGFyZHdhcmVDb25jdXJyZW5jeT09Im51bWJlciI/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTo0LENyPTg7YXN5bmMgZnVuY3Rpb24gU0koQT17aW5wdXRJbWFnZXM6W119KXtsZXQgZT1BLndlYldvcmtlclBvb2w/P251bGw7aWYoZT09PW51bGwmJihlPW5ldyBvZSh3SSx4ZSkpLEEuaW5wdXRJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCciaW5wdXQtaW1hZ2VzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO2xldCB0PWF3YWl0IFByb21pc2UuYWxsKEEuaW5wdXRJbWFnZXMubWFwKGFzeW5jIHI9PntsZXQgaT1yO2lmKHIgaW5zdGFuY2VvZiBGaWxlKXtsZXQgST1hd2FpdCByLmFycmF5QnVmZmVyKCk7aT17cGF0aDpyLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShJKX19cmV0dXJuIGl9KSk7aWYoQS5zaW5nbGVTb3J0ZWRTZXJpZXMpe2xldCByPVtdO2ZvcihsZXQgRT0wO0U8dC5sZW5ndGg7RSs9Q3Ipe2xldCBzPXQuc2xpY2UoRSxFK0NyKTtyLnB1c2goW3MsQS5zaW5nbGVTb3J0ZWRTZXJpZXMse31dKX1sZXQgaT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2UsST1pLm1hcChFPT5FLm91dHB1dEltYWdlKSxvPWkucmVkdWNlKChFLHMpPT5FLmNvbmNhdChzLnNvcnRlZEZpbGVuYW1lcyksW10pO3JldHVybntvdXRwdXRJbWFnZTppZShJKSx3ZWJXb3JrZXJQb29sOmUsc29ydGVkRmlsZW5hbWVzOm99fWVsc2V7bGV0IHI9W1t0LEEuc2luZ2xlU29ydGVkU2VyaWVzLHt9XV0saT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2U7cmV0dXJue291dHB1dEltYWdlOmlbMF0ub3V0cHV0SW1hZ2Usd2ViV29ya2VyUG9vbDplLHNvcnRlZEZpbGVuYW1lczppWzBdLnNvcnRlZEZpbGVuYW1lc319fXZhciBGST1TSTthc3luYyBmdW5jdGlvbiBSSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShjKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO0kucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIi0tbWVtb3J5LWlvIik7bGV0IHM9InJlYWQtc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIGtJPVJJO2FzeW5jIGZ1bmN0aW9uIFVJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmYuSW1hZ2V9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGV9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBjPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGMpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLm1lcmdlU2VnbWVudHMmJmUubWVyZ2VTZWdtZW50cyYmSS5wdXNoKCItLW1lcmdlLXNlZ21lbnRzIik7bGV0IHM9InJlYWQtb3ZlcmxhcHBpbmctc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIE5JPVVJO2FzeW5jIGZ1bmN0aW9uIEdJKEEsZSx0LHI9e3JlZkRpY29tU2VyaWVzOltdfSl7bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOnQsZGF0YTpuZXcgVWludDhBcnJheX19XSxJPVt7dHlwZTpmLkltYWdlLGRhdGE6QX0se3R5cGU6Zi5Kc29uQ29tcGF0aWJsZSxkYXRhOmV9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMSIpO2xldCBzPXQ7aWYoby5wdXNoKHMpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxyLnJlZkRpY29tU2VyaWVzKXtpZihyLnJlZkRpY29tU2VyaWVzLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInJlZi1kaWNvbS1zZXJpZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7by5wdXNoKCItLXJlZi1kaWNvbS1zZXJpZXMiKSxhd2FpdCBQcm9taXNlLmFsbChyLnJlZkRpY29tU2VyaWVzLm1hcChhc3luYyBwPT57bGV0IG09cDtpZihwIGluc3RhbmNlb2YgRmlsZSl7bGV0IE49YXdhaXQgcC5hcnJheUJ1ZmZlcigpO209e3BhdGg6cC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoTil9fUkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTptfSk7bGV0IGg9cCBpbnN0YW5jZW9mIEZpbGU/cC5uYW1lOm0ucGF0aDtvLnB1c2goaCl9KSl9ci5za2lwRW1wdHlTbGljZXMmJnIuc2tpcEVtcHR5U2xpY2VzJiZvLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSxyLnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmby5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgbj0id3JpdGUtc2VnbWVudGF0aW9uIixnPXI/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6dSxyZXR1cm5WYWx1ZTpDLHN0ZGVycjpRLG91dHB1dHM6bH09YXdhaXQgRChuLG8saSxJLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6cj8ubm9Db3B5fSk7aWYoQyE9PTAmJlEhPT0iIil0aHJvdyBuZXcgRXJyb3IoUSk7cmV0dXJue3dlYldvcmtlcjp1LG91dHB1dERpY29tRmlsZTpsWzBdPy5kYXRhfX12YXIgYkk9R0k7YXN5bmMgZnVuY3Rpb24gTEkoQSxlLHQscj17cmVmRGljb21TZXJpZXM6W119KXtsZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6dCxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOmYuSW1hZ2UsZGF0YTpBfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIxIik7bGV0IHM9dDtpZihvLnB1c2gocyksby5wdXNoKCItLW1lbW9yeS1pbyIpLHIucmVmRGljb21TZXJpZXMpe2lmKHIucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHIucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIHA9PntsZXQgbT1wO2lmKHAgaW5zdGFuY2VvZiBGaWxlKXtsZXQgTj1hd2FpdCBwLmFycmF5QnVmZmVyKCk7bT17cGF0aDpwLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShOKX19SS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOm19KTtsZXQgaD1wIGluc3RhbmNlb2YgRmlsZT9wLm5hbWU6bS5wYXRoO28ucHVzaChoKX0pKX1yLnNraXBFbXB0eVNsaWNlcyYmci5za2lwRW1wdHlTbGljZXMmJm8ucHVzaCgiLS1za2lwLWVtcHR5LXNsaWNlcyIpLHIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmci51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZvLnB1c2goIi0tdXNlLWxhYmVsaWQtYXMtc2VnbWVudG51bWJlciIpO2xldCBuPSJ3cml0ZS1vdmVybGFwcGluZy1zZWdtZW50YXRpb24iLGc9cj8ud2ViV29ya2VyO2c9PT12b2lkIDAmJihnPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjp1LHJldHVyblZhbHVlOkMsc3RkZXJyOlEsb3V0cHV0czpsfT1hd2FpdCBEKG4sbyxpLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpnLG5vQ29weTpyPy5ub0NvcHl9KTtpZihDIT09MCYmUSE9PSIiKXRocm93IG5ldyBFcnJvcihRKTtyZXR1cm57d2ViV29ya2VyOnUsb3V0cHV0RGljb21GaWxlOmxbMF0/LmRhdGF9fXZhciBKST1MSTthc3luYyBmdW5jdGlvbiBNSShBLGUsdD17cmVmRGljb21TZXJpZXM6W10sc2VnSW1hZ2VzOltdfSl7bGV0IHI9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxpPVt7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIik7bGV0IGE9ZTtpZihJLnB1c2goYSksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQucmVmRGljb21TZXJpZXMpe2lmKHQucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHQucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIGw9PntsZXQgYz1sO2lmKGwgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBsLmFycmF5QnVmZmVyKCk7Yz17cGF0aDpsLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19aS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6Yy5wYXRoO0kucHVzaChwKX0pKX1pZih0LnNlZ0ltYWdlcyl7aWYodC5zZWdJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2VnLWltYWdlcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2VnLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKHQuc2VnSW1hZ2VzLm1hcChhc3luYyBsPT57bGV0IGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpjfSk7bGV0IHA9bCBpbnN0YW5jZW9mIEZpbGU/bC5uYW1lOmMucGF0aDtJLnB1c2gocCl9KSl9dC5za2lwRW1wdHlTbGljZXMmJnQuc2tpcEVtcHR5U2xpY2VzJiZJLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSx0LnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnQudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmSS5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgRT0id3JpdGUtbXVsdGktc2VnbWVudGF0aW9uIixzPXQ/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEkscixpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6dD8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dERpY29tRmlsZTpDWzBdPy5kYXRhfX12YXIgSEk9TUk7YXN5bmMgZnVuY3Rpb24gWUkoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYyl9fWxldCBJPVt7dHlwZTpmLlRleHRGaWxlLGRhdGE6aX1dLG89W10sYT1pLnBhdGg7by5wdXNoKGEpO2xldCBFPWU7aWYoby5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmRpY29tTWV0YWRhdGEpe2xldCBjPUkubGVuZ3RoLnRvU3RyaW5nKCk7SS5wdXNoKHt0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTp0LmRpY29tTWV0YWRhdGF9KSxvLnB1c2goIi0tZGljb20tbWV0YWRhdGEiLGMpfWxldCBzPSJ3cml0ZS1ydC1zdHJ1Y3QiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOnUsc3RkZXJyOkMsb3V0cHV0czpRfT1hd2FpdCBEKHMsbyxyLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZih1IT09MCYmQyE9PSIiKXRocm93IG5ldyBFcnJvcihDKTtyZXR1cm57d2ViV29ya2VyOmcsb3V0cHV0RGljb206UVswXT8uZGF0YX19dmFyIFRJPVlJO3ZhciBRcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7c3IoUXIpO2V4cG9ydHtsSSBhcyBhcHBseVByZXNlbnRhdGlvblN0YXRlVG9JbWFnZSxrIGFzIGdldERlZmF1bHRXZWJXb3JrZXIseSBhcyBnZXRQaXBlbGluZVdvcmtlclVybCx3IGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsdUkgYXMgcmVhZERpY29tRW5jYXBzdWxhdGVkUGRmLHlJIGFzIHJlYWREaWNvbVRhZ3MsRkkgYXMgcmVhZEltYWdlRGljb21GaWxlU2VyaWVzLHhlIGFzIHJlYWRJbWFnZURpY29tRmlsZVNlcmllc1dvcmtlckZ1bmN0aW9uLE5JIGFzIHJlYWRPdmVybGFwcGluZ1NlZ21lbnRhdGlvbixrSSBhcyByZWFkU2VnbWVudGF0aW9uLGJzIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsc3IgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsU3MgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxwSSBhcyBzdHJ1Y3R1cmVkUmVwb3J0VG9IdG1sLG1JIGFzIHN0cnVjdHVyZWRSZXBvcnRUb1RleHQsZWUgYXMgdmVyc2lvbixISSBhcyB3cml0ZU11bHRpU2VnbWVudGF0aW9uLEpJIGFzIHdyaXRlT3ZlcmxhcHBpbmdTZWdtZW50YXRpb24sVEkgYXMgd3JpdGVSdFN0cnVjdCxiSSBhcyB3cml0ZVNlZ21lbnRhdGlvbn07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiAgICopCiovCg=="""
default_config = JsPackageConfig(default_js_module)
js_package = JsPackage(default_config)