[
  {
    "filepath": "/index.html",
    "type": "application/octet-stream",
    "hash": "64949d5a759fefe6db5640981c5d6d16f36858c80c8582515dffe876be330573",
    "size": 1692,
    "content": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIiBjbGFzcz0iZGFyayI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB2aWV3cG9ydC1maXQ9Y292ZXIsIG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vIiAvPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik9wZW5DbGF3IOKAlCBZb3VyIGF1dG9ub21vdXMgQUkgYXNzaXN0YW50IHBvd2VyZWQgYnkgQ2xvdWRmbGFyZSBXb3JrZXJzIEFJIiAvPgogICAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiM3YzNhZWQiIC8+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiIC8+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCIgLz4KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLXRpdGxlIiBjb250ZW50PSJPcGVuQ2xhdyIgLz4KICAgIDxtZXRhIG5hbWU9Im1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyIgLz4KICAgIDxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubyIgLz4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCIgaHJlZj0iL2Zhdmljb24uc3ZnIiAvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvYXNzZXRzL2FwcGxlLXRvdWNoLWljb24ucG5nIiAvPgogICAgPGxpbmsgcmVsPSJtYW5pZmVzdCIgaHJlZj0iL21hbmlmZXN0Lmpzb24iIC8+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iIC8+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luIC8+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9SmV0QnJhaW5zK01vbm86d2dodEA0MDA7NTAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0IiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvbW9iaWxlLWZpeC5jc3MiIC8+CiAgICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgY3Jvc3NvcmlnaW4gc3JjPSIvYXNzZXRzL2luZGV4LUNSOHZoUXhnLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ibW9kdWxlcHJlbG9hZCIgY3Jvc3NvcmlnaW4gaHJlZj0iL2Fzc2V0cy9pbmRleC1DUjh2aFF4Zy5qcyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGNyb3Nzb3JpZ2luIGhyZWY9Ii9hc3NldHMvaW5kZXgtQ2U1VXRtcGUuY3NzIiAvPgogICAgPHRpdGxlPk9wZW5DbGF3IOKAlCBBdXRvbm9tb3VzIEFJIEFzc2lzdGFudDwvdGl0bGU+CiAgPC9oZWFkPgogIDxib2R5IGNsYXNzPSJiZy1zdXJmYWNlLTk1MCB0ZXh0LXdoaXRlIGFudGlhbGlhc2VkIj4KICAgIDxkaXYgaWQ9InJvb3QiPjwvZGl2PgogICAgPHNjcmlwdCBzcmM9Ii9hcHAtZml4LmpzIj48L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4K"
  },
  {
    "filepath": "/mobile-fix.css",
    "type": "application/octet-stream",
    "hash": "f73c960660b64b4ba96457efe6c3e3d13d0afae9df748816f7f2e4959dc52135",
    "size": 4378,
    "content": "LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIE1vYmlsZSBGaXggZm9yIGlQaG9uZSAxMSAoMzc1eDgxMikKICAgU2lkZWJhciArIFJlc3BvbnNpdmUgT3ZlcnJpZGVzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLyogLS0tIFZpZXdwb3J0ICYgTGF5b3V0IC0tLSAqLwpodG1sLCBib2R5IHsKICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDsKICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCi8qIC0tLSBTaWRlYmFyOiBGb3JjZSBjbG9zZWQgb24gbW9iaWxlLCBjbG9zZSBvbiBvdXRzaWRlIHRhcCAtLS0gKi8KLyogVGhlc2UgdGFyZ2V0IGNvbW1vbiBzaWRlYmFyL3BhbmVsIHBhdHRlcm5zIGluIFJlYWN0IGFwcHMgKi8KW2RhdGEtc3RhdGU9Im9wZW4iXSwKW2NsYXNzKj0ic2lkZWJhciJdW2NsYXNzKj0ib3BlbiJdLApbY2xhc3MqPSJzaWRlYmFyIl1bY2xhc3MqPSJhY3RpdmUiXSwKW2NsYXNzKj0iZHJhd2VyIl1bY2xhc3MqPSJvcGVuIl0sCltjbGFzcyo9InBhbmVsIl1bY2xhc3MqPSJvcGVuIl0sCltjbGFzcyo9InNsaWRlIl0sCmFzaWRlW2NsYXNzKj0ib3BlbiJdLAphc2lkZVtjbGFzcyo9ImFjdGl2ZSJdLApkaXZbY2xhc3MqPSJzaWRlYmFyIl0sCmRpdltjbGFzcyo9ImRyYXdlciJdLApkaXZbY2xhc3MqPSJzaWRlLXBhbmVsIl0gewogIC8qIE9uIG1vYmlsZSwgc2lkZWJhciBvdmVybGF5cyAqLwp9CgovKiBCYWNrZHJvcCBvdmVybGF5IC0gY2xvc2Ugc2lkZWJhciBvbiB0YXAgKi8KLmZpeGVkLmluc2V0LTAsCmRpdltjbGFzcyo9ImJhY2tkcm9wIl0sCmRpdltjbGFzcyo9Im92ZXJsYXkiXSwKZGl2W3JvbGU9ImRpYWxvZyJdIH4gZGl2LmZpeGVkLApbZGF0YS1yYWRpeC1wb3J0YWxdID4gZGl2OmZpcnN0LWNoaWxkIHsKICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgovKiAtLS0gU2lkZWJhciB3aWR0aCBvbiBtb2JpbGUgLS0tICovCkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogIGRpdltjbGFzcyo9InNpZGViYXIiXSwKICBkaXZbY2xhc3MqPSJkcmF3ZXIiXSwKICBkaXZbY2xhc3MqPSJzaWRlLXBhbmVsIl0sCiAgYXNpZGUgewogICAgbWF4LXdpZHRoOiA4MHZ3ICFpbXBvcnRhbnQ7CiAgICB3aWR0aDogODB2dyAhaW1wb3J0YW50OwogICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgfQp9CgovKiAtLS0gUHJldmVudCBib2R5IHNjcm9sbCB3aGVuIHNpZGViYXIgb3BlbiAtLS0gKi8KYm9keS5zaWRlYmFyLW9wZW4sCmJvZHk6aGFzKGRpdltjbGFzcyo9InNpZGViYXIiXVtjbGFzcyo9Im9wZW4iXSksCmJvZHk6aGFzKGRpdltjbGFzcyo9ImRyYXdlciJdW2NsYXNzKj0ib3BlbiJdKSwKYm9keTpoYXMoYXNpZGVbY2xhc3MqPSJvcGVuIl0pIHsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgcG9zaXRpb246IGZpeGVkOwogIHdpZHRoOiAxMDAlOwp9CgovKiAtLS0gaVBob25lIDExIHNwZWNpZmljICgzNzV4ODEyKSAtLS0gKi8KQG1lZGlhIHNjcmVlbiBhbmQgKHdpZHRoOiAzNzVweCkgYW5kIChoZWlnaHQ6IDgxMnB4KSwKICAgICAgIHNjcmVlbiBhbmQgKHdpZHRoOiAzOTBweCkgYW5kIChoZWlnaHQ6IDg0NHB4KSB7CiAgLyogU2FmZSBhcmVhIGluc2V0cyBmb3Igbm90Y2ggKi8KICBib2R5IHsKICAgIHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwgMHB4KSAhaW1wb3J0YW50OwogICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nLWxlZnQ6IGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwgMHB4KSAhaW1wb3J0YW50OwogICAgcGFkZGluZy1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KSAhaW1wb3J0YW50OwogIH0KfQoKLyogLS0tIEdlbmVyYWwgbW9iaWxlIGZpeGVzIC0tLSAqLwpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAvKiBQcmV2ZW50IGhvcml6b250YWwgb3ZlcmZsb3cgKi8KICAqIHsKICAgIG1heC13aWR0aDogMTAwdnc7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KICAKICAvKiBGaXggZ3JpZC9mbGV4IGxheW91dHMgKi8KICBbY2xhc3MqPSJncmlkLWNvbHMtIl0gewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDsKICB9CiAgCiAgLyogU3RhY2sgc2lkZS1ieS1zaWRlIGxheW91dHMgKi8KICBbY2xhc3MqPSJmbGV4LXJvdyJdIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsKICB9CiAgCiAgLyogRnVsbC13aWR0aCBjb250YWluZXJzICovCiAgbWFpbiwgW2NsYXNzKj0iY29udGFpbmVyIl0sIFtjbGFzcyo9ImNvbnRlbnQiXSwgW2NsYXNzKj0ibWFpbiJdIHsKICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50OwogIH0KICAKICAvKiBIZWFkZXIvbmF2YmFyIG1vYmlsZSAqLwogIGhlYWRlciwgbmF2LCBbY2xhc3MqPSJoZWFkZXIiXSwgW2NsYXNzKj0ibmF2YmFyIl0sIFtjbGFzcyo9InRvcGJhciJdIHsKICAgIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKICB9CiAgCiAgLyogRm9udCBzY2FsaW5nIGZvciByZWFkYWJpbGl0eSAqLwogIGJvZHkgewogICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS41ICFpbXBvcnRhbnQ7CiAgfQogIAogIGgxIHsgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDsgfQogIGgyIHsgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7IH0KICBoMyB7IGZvbnQtc2l6ZTogMS4xcmVtICFpbXBvcnRhbnQ7IH0KICAKICAvKiBDaGF0IGlucHV0IGFyZWEgZml4ICovCiAgW2NsYXNzKj0iaW5wdXQiXSwgW2NsYXNzKj0idGV4dGFyZWEiXSwgdGV4dGFyZWEsIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDsgLyogUHJldmVudHMgaU9TIHpvb20gb24gZm9jdXMgKi8KICAgIG1pbi1oZWlnaHQ6IDQ0cHggIWltcG9ydGFudDsgLyogTWluaW11bSB0YXAgdGFyZ2V0ICovCiAgfQogIAogIC8qIEJ1dHRvbiB0YXAgdGFyZ2V0cyAqLwogIGJ1dHRvbiwgYSwgW3JvbGU9ImJ1dHRvbiJdIHsKICAgIG1pbi1oZWlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICAgIG1pbi13aWR0aDogNDRweCAhaW1wb3J0YW50OwogIH0KICAKICAvKiBIaWRlIHNpZGViYXIgdG9nZ2xlIG9uIGRlc2t0b3Agb25seSBwYXR0ZXJucyAqLwogIFtjbGFzcyo9ImxnOmZsZXgiXSwgW2NsYXNzKj0ibWQ6ZmxleCJdIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsKICB9CiAgCiAgLyogU2lkZWJhcjogdHJhbnNmb3JtIG9mZi1zY3JlZW4gb24gbW9iaWxlIGJ5IGRlZmF1bHQgKi8KICBkaXZbY2xhc3MqPSJzaWRlYmFyIl0sCiAgZGl2W2NsYXNzKj0iZHJhd2VyIl0sCiAgYXNpZGUgewogICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7CiAgICB6LWluZGV4OiA5OTk5ICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlICFpbXBvcnRhbnQ7CiAgfQp9CgpAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHsKICAvKiBEZXNrdG9wOiBzaWRlYmFyIGNhbiBiZSBpbmxpbmUgKi8KICBkaXZbY2xhc3MqPSJzaWRlYmFyIl0sCiAgZGl2W2NsYXNzKj0iZHJhd2VyIl0sCiAgYXNpZGUgewogICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgfQp9CgovKiAtLS0gUFdBIHN0YW5kYWxvbmUgbW9kZSAtLS0gKi8KQG1lZGlhIGFsbCBhbmQgKGRpc3BsYXktbW9kZTogc3RhbmRhbG9uZSkgewogIGJvZHkgewogICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSAhaW1wb3J0YW50OwogIH0KfQoKLyogLS0tIEtleWJvYXJkIGF2b2lkYW5jZSBmb3IgY2hhdCBpbnB1dCAtLS0gKi8KQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgW2NsYXNzKj0iY2hhdCJdIFtjbGFzcyo9ImlucHV0Il0sCiAgW2NsYXNzKj0iY2hhdCJdIHRleHRhcmVhLAogIFtjbGFzcyo9ImNoYXQiXSBpbnB1dCB7CiAgICBtYXJnaW4tYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSAhaW1wb3J0YW50OwogIH0KfQovKiBjYWNoZSBidXN0ICovCg=="
  },
  {
    "filepath": "/app-fix.js",
    "type": "application/octet-stream",
    "hash": "e92136329bd8d91ae001b2d3de4ab173dca69938b7e4d8544b01bd705385fd0a",
    "size": 1776,
    "content": "Ly8gQXV0by1jbG9zZSBzaWRlYmFyIG9uIG1vYmlsZSBhbmQgY2xvc2Ugb24gb3V0c2lkZSB0YXAKKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIGlzTW9iaWxlKCkgeyByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNzY4OyB9CiAgCiAgZnVuY3Rpb24gY2xvc2VTaWRlYmFycygpIHsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoWwogICAgICAiYXNpZGVbY2xhc3MqPW9wZW5dIiwgImFzaWRlW2NsYXNzKj1hY3RpdmVdIiwKICAgICAgImRpdltjbGFzcyo9c2lkZWJhcl1bY2xhc3MqPW9wZW5dIiwgImRpdltjbGFzcyo9c2lkZWJhcl1bY2xhc3MqPWFjdGl2ZV0iLAogICAgICAiZGl2W2NsYXNzKj1kcmF3ZXJdW2NsYXNzKj1vcGVuXSIsICJkaXZbY2xhc3MqPWRyYXdlcl1bY2xhc3MqPWFjdGl2ZV0iLAogICAgICAiZGl2W2NsYXNzKj1zaWRlLXBhbmVsXVtjbGFzcyo9b3Blbl0iLCAiZGl2W2NsYXNzKj1zaWRlLXBhbmVsXVtjbGFzcyo9YWN0aXZlXSIsCiAgICAgICJbZGF0YS1zdGF0ZT1vcGVuXSIsICJbcm9sZT1kaWFsb2ddIgogICAgXS5qb2luKCIsIikpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgaWYgKGlzTW9iaWxlKCkpIHsKICAgICAgICBlbC5jbGljaygpOwogICAgICAgIGVsLnNldEF0dHJpYnV0ZSgiZGF0YS1zdGF0ZSIsICJjbG9zZWQiKTsKICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiwgImFjdGl2ZSIpOwogICAgICB9CiAgICB9KTsKICAgIC8vIEFsc28gdHJ5IFJlYWN0IHN0YXRlIHZpYSBrZXlib2FyZCBlc2NhcGUKICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoImtleWRvd24iLCB7IGtleTogIkVzY2FwZSIsIGJ1YmJsZXM6IHRydWUgfSkpOwogIH0KCiAgLy8gQ2xvc2Ugb24gaW5pdGlhbCBsb2FkIGlmIG1vYmlsZQogIGlmIChpc01vYmlsZSgpKSB7CiAgICBzZXRUaW1lb3V0KGNsb3NlU2lkZWJhcnMsIDEwMCk7CiAgICBzZXRUaW1lb3V0KGNsb3NlU2lkZWJhcnMsIDUwMCk7CiAgfQoKICAvLyBDbG9zZSBvbiBvdXRzaWRlIHRhcAogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZSkgewogICAgaWYgKCFpc01vYmlsZSgpKSByZXR1cm47CiAgICB2YXIgc2lkZWJhciA9IGUudGFyZ2V0LmNsb3Nlc3QoImFzaWRlLCBkaXZbY2xhc3MqPXNpZGViYXJdLCBkaXZbY2xhc3MqPWRyYXdlcl0sIGRpdltjbGFzcyo9c2lkZS1wYW5lbF0iKTsKICAgIHZhciB0b2dnbGUgPSBlLnRhcmdldC5jbG9zZXN0KCJidXR0b25bY2xhc3MqPW1lbnVdLCBidXR0b25bY2xhc3MqPXRvZ2dsZV0sIGJ1dHRvbltjbGFzcyo9c2lkZWJhcl0sIGJ1dHRvblthcmlhLWxhYmVsKj1tZW51XSwgYnV0dG9uW2FyaWEtbGFiZWwqPXNpZGViYXJdIik7CiAgICBpZiAoIXNpZGViYXIgJiYgIXRvZ2dsZSkgewogICAgICBjbG9zZVNpZGViYXJzKCk7CiAgICB9CiAgfSwgdHJ1ZSk7CgogIC8vIENsb3NlIG9uIG9yaWVudGF0aW9uIGNoYW5nZQogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbigpIHsKICAgIGlmIChpc01vYmlsZSgpKSBjbG9zZVNpZGViYXJzKCk7CiAgfSk7Cn0pKCk7CgovLyBSZWdpc3RlciBTZXJ2aWNlIFdvcmtlcgppZiAoInNlcnZpY2VXb3JrZXIiIGluIG5hdmlnYXRvcikgewogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7CiAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL3N3LmpzIikuY2F0Y2goZnVuY3Rpb24oKSB7fSk7CiAgfSk7Cn0K"
  },
  {
    "filepath": "/assets/index-Ce5Utmpe.css",
    "type": "application/octet-stream",
    "hash": "d8a81b5dc3a1e02166b4a0757e7a7b86fc4641a6b6671805f1c85bef586fae0e",
    "size": 22072,
    "content": "Kiw6YmVmb3JlLDphZnRlcnstLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7LS10dy1ib3JkZXItc3BhY2luZy15OiAwOy0tdHctdHJhbnNsYXRlLXg6IDA7LS10dy10cmFuc2xhdGUteTogMDstLXR3LXJvdGF0ZTogMDstLXR3LXNrZXcteDogMDstLXR3LXNrZXcteTogMDstLXR3LXNjYWxlLXg6IDE7LS10dy1zY2FsZS15OiAxOy0tdHctcGFuLXg6IDstLXR3LXBhbi15OiA7LS10dy1waW5jaC16b29tOiA7LS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7LS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246IDstLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiA7LS10dy1vcmRpbmFsOiA7LS10dy1zbGFzaGVkLXplcm86IDstLXR3LW51bWVyaWMtZmlndXJlOiA7LS10dy1udW1lcmljLXNwYWNpbmc6IDstLXR3LW51bWVyaWMtZnJhY3Rpb246IDstLXR3LXJpbmctaW5zZXQ6IDstLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7LS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjstLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gLjUpOy0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7LS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwOy0tdHctc2hhZG93OiAwIDAgIzAwMDA7LS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwOy0tdHctYmx1cjogOy0tdHctYnJpZ2h0bmVzczogOy0tdHctY29udHJhc3Q6IDstLXR3LWdyYXlzY2FsZTogOy0tdHctaHVlLXJvdGF0ZTogOy0tdHctaW52ZXJ0OiA7LS10dy1zYXR1cmF0ZTogOy0tdHctc2VwaWE6IDstLXR3LWRyb3Atc2hhZG93OiA7LS10dy1iYWNrZHJvcC1ibHVyOiA7LS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiA7LS10dy1iYWNrZHJvcC1jb250cmFzdDogOy0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiA7LS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiA7LS10dy1iYWNrZHJvcC1pbnZlcnQ6IDstLXR3LWJhY2tkcm9wLW9wYWNpdHk6IDstLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiA7LS10dy1iYWNrZHJvcC1zZXBpYTogOy0tdHctY29udGFpbi1zaXplOiA7LS10dy1jb250YWluLWxheW91dDogOy0tdHctY29udGFpbi1wYWludDogOy0tdHctY29udGFpbi1zdHlsZTogfTo6YmFja2Ryb3B7LS10dy1ib3JkZXItc3BhY2luZy14OiAwOy0tdHctYm9yZGVyLXNwYWNpbmcteTogMDstLXR3LXRyYW5zbGF0ZS14OiAwOy0tdHctdHJhbnNsYXRlLXk6IDA7LS10dy1yb3RhdGU6IDA7LS10dy1za2V3LXg6IDA7LS10dy1za2V3LXk6IDA7LS10dy1zY2FsZS14OiAxOy0tdHctc2NhbGUteTogMTstLXR3LXBhbi14OiA7LS10dy1wYW4teTogOy0tdHctcGluY2gtem9vbTogOy0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5Oy0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogOy0tdHctb3JkaW5hbDogOy0tdHctc2xhc2hlZC16ZXJvOiA7LS10dy1udW1lcmljLWZpZ3VyZTogOy0tdHctbnVtZXJpYy1zcGFjaW5nOiA7LS10dy1udW1lcmljLWZyYWN0aW9uOiA7LS10dy1yaW5nLWluc2V0OiA7LS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4Oy0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7LS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIC41KTstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwOy0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDstLXR3LXNoYWRvdzogMCAwICMwMDAwOy0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDstLXR3LWJsdXI6IDstLXR3LWJyaWdodG5lc3M6IDstLXR3LWNvbnRyYXN0OiA7LS10dy1ncmF5c2NhbGU6IDstLXR3LWh1ZS1yb3RhdGU6IDstLXR3LWludmVydDogOy0tdHctc2F0dXJhdGU6IDstLXR3LXNlcGlhOiA7LS10dy1kcm9wLXNoYWRvdzogOy0tdHctYmFja2Ryb3AtYmx1cjogOy0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogOy0tdHctYmFja2Ryb3AtY29udHJhc3Q6IDstLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogOy0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogOy0tdHctYmFja2Ryb3AtaW52ZXJ0OiA7LS10dy1iYWNrZHJvcC1vcGFjaXR5OiA7LS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogOy0tdHctYmFja2Ryb3Atc2VwaWE6IDstLXR3LWNvbnRhaW4tc2l6ZTogOy0tdHctY29udGFpbi1sYXlvdXQ6IDstLXR3LWNvbnRhaW4tcGFpbnQ6IDstLXR3LWNvbnRhaW4tc3R5bGU6IH0qLDpiZWZvcmUsOmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNlNWU3ZWJ9OmJlZm9yZSw6YWZ0ZXJ7LS10dy1jb250ZW50OiAiIn1odG1sLDpob3N0e2xpbmUtaGVpZ2h0OjEuNTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbW96LXRhYi1zaXplOjQ7LW8tdGFiLXNpemU6NDt0YWItc2l6ZTo0O2ZvbnQtZmFtaWx5OkludGVyIHZhcixJbnRlcixzeXN0ZW0tdWksc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOm5vcm1hbDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keXttYXJnaW46MDtsaW5lLWhlaWdodDppbmhlcml0fWhye2hlaWdodDowO2NvbG9yOmluaGVyaXQ7Ym9yZGVyLXRvcC13aWR0aDoxcHh9YWJicjp3aGVyZShbdGl0bGVdKXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkfWgxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OmluaGVyaXR9YXtjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjppbmhlcml0fWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGRlcn1jb2RlLGtiZCxzYW1wLHByZXtmb250LWZhbWlseTpKZXRCcmFpbnMgTW9ubyxGaXJhIENvZGUsQ29uc29sYXMsbW9ub3NwYWNlO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2NvbG9yOmluaGVyaXQ7bWFyZ2luOjA7cGFkZGluZzowfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saW5wdXQ6d2hlcmUoW3R5cGU9YnV0dG9uXSksaW5wdXQ6d2hlcmUoW3R5cGU9cmVzZXRdKSxpbnB1dDp3aGVyZShbdHlwZT1zdWJtaXRdKXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOmF1dG99Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfWJsb2NrcXVvdGUsZGwsZGQsaDEsaDIsaDMsaDQsaDUsaDYsaHIsZmlndXJlLHAscHJle21hcmdpbjowfWZpZWxkc2V0e21hcmdpbjowO3BhZGRpbmc6MH1sZWdlbmR7cGFkZGluZzowfW9sLHVsLG1lbnV7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH1kaWFsb2d7cGFkZGluZzowfXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcix0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1pbnB1dDo6cGxhY2Vob2xkZXIsdGV4dGFyZWE6OnBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjojOWNhM2FmfWJ1dHRvbixbcm9sZT1idXR0b25de2N1cnNvcjpwb2ludGVyfTpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH1pbWcsc3ZnLHZpZGVvLGNhbnZhcyxhdWRpbyxpZnJhbWUsZW1iZWQsb2JqZWN0e2Rpc3BsYXk6YmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfWltZyx2aWRlb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31baGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49dW50aWwtZm91bmRdKSl7ZGlzcGxheTpub25lfSp7Ym94LXNpemluZzpib3JkZXItYm94fWh0bWx7c2Nyb2xsLWJlaGF2aW9yOnNtb290aH06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjZweDtoZWlnaHQ6NnB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzFjMmIzYTtib3JkZXItcmFkaXVzOjNweH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6IzI1MzU0N30uYWJzb2x1dGV7cG9zaXRpb246YWJzb2x1dGV9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS4tYm90dG9tLTBcLjV7Ym90dG9tOi0uMTI1cmVtfS4tcmlnaHQtMFwuNXtyaWdodDotLjEyNXJlbX0ubGVmdC0ze2xlZnQ6Ljc1cmVtfS5yaWdodC0ze3JpZ2h0Oi43NXJlbX0udG9wLTFcLzJ7dG9wOjUwJX0ubXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5teS0ze21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtfS5tYi0wXC41e21hcmdpbi1ib3R0b206LjEyNXJlbX0ubWItMXttYXJnaW4tYm90dG9tOi4yNXJlbX0ubWItMVwuNXttYXJnaW4tYm90dG9tOi4zNzVyZW19Lm1iLTJ7bWFyZ2luLWJvdHRvbTouNXJlbX0ubWItM3ttYXJnaW4tYm90dG9tOi43NXJlbX0ubWItNHttYXJnaW4tYm90dG9tOjFyZW19Lm1iLTh7bWFyZ2luLWJvdHRvbToycmVtfS5tdC0wXC41e21hcmdpbi10b3A6LjEyNXJlbX0ubXQtMXttYXJnaW4tdG9wOi4yNXJlbX0ubXQtMVwuNXttYXJnaW4tdG9wOi4zNzVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5mbGV4e2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmgtMVwuNXtoZWlnaHQ6LjM3NXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTE2e2hlaWdodDo0cmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtM3toZWlnaHQ6Ljc1cmVtfS5oLTNcLjV7aGVpZ2h0Oi44NzVyZW19LmgtNHtoZWlnaHQ6MXJlbX0uaC01e2hlaWdodDoxLjI1cmVtfS5oLTZ7aGVpZ2h0OjEuNXJlbX0uaC03e2hlaWdodDoxLjc1cmVtfS5oLTh7aGVpZ2h0OjJyZW19LmgtOXtoZWlnaHQ6Mi4yNXJlbX0uaC1mdWxse2hlaWdodDoxMDAlfS5oLXNjcmVlbntoZWlnaHQ6MTAwdmh9Lm1pbi1oLVxbMjBweFxde21pbi1oZWlnaHQ6MjBweH0udy0xXC41e3dpZHRoOi4zNzVyZW19LnctMTB7d2lkdGg6Mi41cmVtfS53LTE2e3dpZHRoOjRyZW19LnctMnt3aWR0aDouNXJlbX0udy0yXC41e3dpZHRoOi42MjVyZW19LnctM3t3aWR0aDouNzVyZW19LnctM1wuNXt3aWR0aDouODc1cmVtfS53LTR7d2lkdGg6MXJlbX0udy01e3dpZHRoOjEuMjVyZW19LnctNnt3aWR0aDoxLjVyZW19LnctN3t3aWR0aDoxLjc1cmVtfS53LTcye3dpZHRoOjE4cmVtfS53LTh7d2lkdGg6MnJlbX0udy05e3dpZHRoOjIuMjVyZW19LnctZnVsbHt3aWR0aDoxMDAlfS5taW4tdy0we21pbi13aWR0aDowcHh9Lm1heC13LVxbMTYwcHhcXXttYXgtd2lkdGg6MTYwcHh9Lm1heC13LVxbODBcJVxde21heC13aWR0aDo4MCV9Lm1heC13LXNte21heC13aWR0aDoyNHJlbX0uZmxleC0xe2ZsZXg6MSAxIDAlfS5mbGV4LXNocmluay0we2ZsZXgtc2hyaW5rOjB9Li10cmFuc2xhdGUteS0xXC8yey0tdHctdHJhbnNsYXRlLXk6IC01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tldyh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9QGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmFuaW1hdGUtc3BpbnthbmltYXRpb246c3BpbiAxcyBsaW5lYXIgaW5maW5pdGV9LmN1cnNvci1ub3QtYWxsb3dlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uZ3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5ncmlkLWNvbHMtNHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsbWlubWF4KDAsMWZyKSl9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS5pdGVtcy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5pdGVtcy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmR9Lml0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9Lmp1c3RpZnktc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lmp1c3RpZnktZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uanVzdGlmeS1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uanVzdGlmeS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5nYXAtMFwuNXtnYXA6LjEyNXJlbX0uZ2FwLTF7Z2FwOi4yNXJlbX0uZ2FwLTFcLjV7Z2FwOi4zNzVyZW19LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTJcLjV7Z2FwOi42MjVyZW19LmdhcC0ze2dhcDouNzVyZW19LnNwYWNlLXktMT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTogMDttYXJnaW4tdG9wOmNhbGMoLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguMjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYyguNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoLjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS0zPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYyguNzVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC43NXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5zcGFjZS15LTQ+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS10dy1zcGFjZS15LXJldmVyc2U6IDA7bWFyZ2luLXRvcDpjYWxjKDFyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKDFyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS01Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOiAwO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjI1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9Lm92ZXJmbG93LWhpZGRlbntvdmVyZmxvdzpoaWRkZW59Lm92ZXJmbG93LXktYXV0b3tvdmVyZmxvdy15OmF1dG99LnRydW5jYXRle292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmUtd3JhcHt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ucm91bmRlZHtib3JkZXItcmFkaXVzOi4yNXJlbX0ucm91bmRlZC0yeGx7Ym9yZGVyLXJhZGl1czoxcmVtfS5yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnJvdW5kZWQtbGd7Ym9yZGVyLXJhZGl1czouNXJlbX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOi4zNzVyZW19LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LnJvdW5kZWQtdGwtc217Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTI1cmVtfS5yb3VuZGVkLXRyLXNte2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xMjVyZW19LmJvcmRlcntib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMntib3JkZXItd2lkdGg6MnB4fS5ib3JkZXItYntib3JkZXItYm90dG9tLXdpZHRoOjFweH0uYm9yZGVyLXJ7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweH0uYm9yZGVyLXR7Ym9yZGVyLXRvcC13aWR0aDoxcHh9LmJvcmRlci1hbWJlci01MDBcLzIwe2JvcmRlci1jb2xvcjojZjU5ZTBiMzN9LmJvcmRlci1ibHVlLTUwMFwvMjB7Ym9yZGVyLWNvbG9yOiMzYjgyZjYzM30uYm9yZGVyLWNsYXctNTAwey0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigxNCAxNjUgMjMzIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKX0uYm9yZGVyLWNsYXctNTAwXC8yMHtib3JkZXItY29sb3I6IzBlYTVlOTMzfS5ib3JkZXItY2xhdy01MDBcLzMwe2JvcmRlci1jb2xvcjojMGVhNWU5NGR9LmJvcmRlci1lbWVyYWxkLTUwMFwvMjB7Ym9yZGVyLWNvbG9yOiMxMGI5ODEzM30uYm9yZGVyLWluZGlnby01MDBcLzIwe2JvcmRlci1jb2xvcjojNjM2NmYxMzN9LmJvcmRlci1vcmFuZ2UtNTAwXC8yMHtib3JkZXItY29sb3I6I2Y5NzMxNjMzfS5ib3JkZXItcGluay01MDBcLzIwe2JvcmRlci1jb2xvcjojZWM0ODk5MzN9LmJvcmRlci1yZWQtNTAwXC8yMHtib3JkZXItY29sb3I6I2VmNDQ0NDMzfS5ib3JkZXItc2xhdGUtNTAwXC8yMHtib3JkZXItY29sb3I6IzY0NzQ4YjMzfS5ib3JkZXItc3VyZmFjZS02MDB7LS10dy1ib3JkZXItb3BhY2l0eTogMTtib3JkZXItY29sb3I6cmdiKDM3IDUzIDcxIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKX0uYm9yZGVyLXN1cmZhY2UtNzAwey0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigyOCA0MyA1OCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSl9LmJvcmRlci1zdXJmYWNlLTcwMFwvNTB7Ym9yZGVyLWNvbG9yOiMxYzJiM2E4MH0uYm9yZGVyLXN1cmZhY2UtOTUwey0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYig2IDEwIDE1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKX0uYm9yZGVyLXZpb2xldC01MDBcLzIwe2JvcmRlci1jb2xvcjojOGI1Y2Y2MzN9LmJvcmRlci10LXRyYW5zcGFyZW50e2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnR9LmJnLWFtYmVyLTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojZjU5ZTBiMWF9LmJnLWJsdWUtNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiMzYjgyZjYxYX0uYmctY2xhdy00MDB7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDU2IDE4OSAyNDggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLWNsYXctNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiMwZWE1ZTkxYX0uYmctY2xhdy01MDBcLzIwe2JhY2tncm91bmQtY29sb3I6IzBlYTVlOTMzfS5iZy1jbGF3LTYwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMiAxMzIgMTk5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1jbGF3LTYwMFwvMTV7YmFja2dyb3VuZC1jb2xvcjojMDI4NGM3MjZ9LmJnLWVtZXJhbGQtNDAwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig1MiAyMTEgMTUzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1lbWVyYWxkLTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojMTBiOTgxMWF9LmJnLWVtZXJhbGQtNTAwXC81e2JhY2tncm91bmQtY29sb3I6IzEwYjk4MTBkfS5iZy1pbmRpZ28tNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiM2MzY2ZjExYX0uYmctb3JhbmdlLTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojZjk3MzE2MWF9LmJnLXBpbmstNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiNlYzQ4OTkxYX0uYmctcmVkLTQwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ4IDExMyAxMTMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLXJlZC01MDBcLzEwe2JhY2tncm91bmQtY29sb3I6I2VmNDQ0NDFhfS5iZy1zbGF0ZS01MDBcLzEwe2JhY2tncm91bmQtY29sb3I6IzY0NzQ4YjFhfS5iZy1zdXJmYWNlLTcwMHstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjggNDMgNTggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLXN1cmZhY2UtNzAwXC81MHtiYWNrZ3JvdW5kLWNvbG9yOiMxYzJiM2E4MH0uYmctc3VyZmFjZS04MDB7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDIwIDI4IDM4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1zdXJmYWNlLTgwMFwvNTB7YmFja2dyb3VuZC1jb2xvcjojMTQxYzI2ODB9LmJnLXN1cmZhY2UtOTAwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMiAxNyAyMyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uYmctc3VyZmFjZS05NTB7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDYgMTAgMTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmJnLXN1cmZhY2UtOTUwXC84MHtiYWNrZ3JvdW5kLWNvbG9yOiMwNjBhMGZjY30uYmctdHJhbnNwYXJlbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYmctdmlvbGV0LTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojOGI1Y2Y2MWF9LmJnLXZpb2xldC01MDBcLzIwe2JhY2tncm91bmQtY29sb3I6IzhiNWNmNjMzfS5iZy15ZWxsb3ctNDAwey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTAgMjA0IDIxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpfS5iZy1ncmFkaWVudC10by1icntiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKX0uZnJvbS1jbGF3LTQwMHstLXR3LWdyYWRpZW50LWZyb206ICMzOGJkZjggdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7LS10dy1ncmFkaWVudC10bzogcmdiKDU2IDE4OSAyNDggLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7LS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKX0uZnJvbS1jbGF3LTUwMFwvNXstLXR3LWdyYWRpZW50LWZyb206IHJnYigxNCAxNjUgMjMzIC8gLjA1KSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTstLXR3LWdyYWRpZW50LXRvOiByZ2IoMTQgMTY1IDIzMyAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTstLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pfS5mcm9tLXZpb2xldC01MDBcLzV7LS10dy1ncmFkaWVudC1mcm9tOiByZ2IoMTM5IDkyIDI0NiAvIC4wNSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbik7LS10dy1ncmFkaWVudC10bzogcmdiKDEzOSA5MiAyNDYgLyAwKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7LS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKX0udG8tY2xhdy02MDB7LS10dy1ncmFkaWVudC10bzogIzAyODRjNyB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbil9LnRvLWNsYXctNzAwey0tdHctZ3JhZGllbnQtdG86ICMwMzY5YTEgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pfS50by1jbGF3LTcwMFwvNXstLXR3LWdyYWRpZW50LXRvOiByZ2IoMyAxMDUgMTYxIC8gLjA1KSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbil9LnRvLXZpb2xldC03MDBcLzV7LS10dy1ncmFkaWVudC10bzogcmdiKDEwOSA0MCAyMTcgLyAuMDUpIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKX0ucC0xe3BhZGRpbmc6LjI1cmVtfS5wLTFcLjV7cGFkZGluZzouMzc1cmVtfS5wLTJ7cGFkZGluZzouNXJlbX0ucC0yXC41e3BhZGRpbmc6LjYyNXJlbX0ucC0ze3BhZGRpbmc6Ljc1cmVtfS5wLTR7cGFkZGluZzoxcmVtfS5weC0xe3BhZGRpbmctbGVmdDouMjVyZW07cGFkZGluZy1yaWdodDouMjVyZW19LnB4LTFcLjV7cGFkZGluZy1sZWZ0Oi4zNzVyZW07cGFkZGluZy1yaWdodDouMzc1cmVtfS5weC0ye3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5weC0yXC41e3BhZGRpbmctbGVmdDouNjI1cmVtO3BhZGRpbmctcmlnaHQ6LjYyNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC00e3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbX0ucHgtOHtwYWRkaW5nLWxlZnQ6MnJlbTtwYWRkaW5nLXJpZ2h0OjJyZW19LnB5LTBcLjV7cGFkZGluZy10b3A6LjEyNXJlbTtwYWRkaW5nLWJvdHRvbTouMTI1cmVtfS5weS0xe3BhZGRpbmctdG9wOi4yNXJlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnB5LTFcLjV7cGFkZGluZy10b3A6LjM3NXJlbTtwYWRkaW5nLWJvdHRvbTouMzc1cmVtfS5weS0xMntwYWRkaW5nLXRvcDozcmVtO3BhZGRpbmctYm90dG9tOjNyZW19LnB5LTJ7cGFkZGluZy10b3A6LjVyZW07cGFkZGluZy1ib3R0b206LjVyZW19LnB5LTN7cGFkZGluZy10b3A6Ljc1cmVtO3BhZGRpbmctYm90dG9tOi43NXJlbX0ucHktOHtwYWRkaW5nLXRvcDoycmVtO3BhZGRpbmctYm90dG9tOjJyZW19LnBsLTh7cGFkZGluZy1sZWZ0OjJyZW19LnByLTN7cGFkZGluZy1yaWdodDouNzVyZW19LnB0LTF7cGFkZGluZy10b3A6LjI1cmVtfS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0uZm9udC1tb25ve2ZvbnQtZmFtaWx5OkpldEJyYWlucyBNb25vLEZpcmEgQ29kZSxDb25zb2xhcyxtb25vc3BhY2V9LnRleHQtNHhse2ZvbnQtc2l6ZToyLjI1cmVtO2xpbmUtaGVpZ2h0OjIuNXJlbX0udGV4dC1zbXtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS50ZXh0LXhse2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQteHN7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxcmVtfS5mb250LWJvbGR7Zm9udC13ZWlnaHQ6NzAwfS5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtc2VtaWJvbGR7Zm9udC13ZWlnaHQ6NjAwfS51cHBlcmNhc2V7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5sZWFkaW5nLXJlbGF4ZWR7bGluZS1oZWlnaHQ6MS42MjV9LmxlYWRpbmctdGlnaHR7bGluZS1oZWlnaHQ6MS4yNX0udHJhY2tpbmctd2lkZXJ7bGV0dGVyLXNwYWNpbmc6LjA1ZW19LnRleHQtYW1iZXItNDAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyNTEgMTkxIDM2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtYmx1ZS00MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDk2IDE2NSAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1jbGF3LTMwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTI1IDIxMSAyNTIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1jbGF3LTQwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoNTYgMTg5IDI0OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LWVtZXJhbGQtNDAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYig1MiAyMTEgMTUzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtaW5kaWdvLTQwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTI5IDE0MCAyNDggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1vcmFuZ2UtNDAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyNTEgMTQ2IDYwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtcGluay00MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDI0NCAxMTQgMTgyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtcmVkLTQwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjQ4IDExMyAxMTMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1zbGF0ZS0yMDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDIyNiAyMzIgMjQwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtc2xhdGUtMzAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigyMDMgMjEzIDIyNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS50ZXh0LXNsYXRlLTQwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTQ4IDE2MyAxODQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1zbGF0ZS01MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDEwMCAxMTYgMTM5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtc2xhdGUtNjAwey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYig3MSA4NSAxMDUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC1zbGF0ZS03MDB7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDUxIDY1IDg1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnRleHQtdmlvbGV0LTQwMHstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTY3IDEzOSAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udGV4dC13aGl0ZXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0udW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZX0udW5kZXJsaW5lLW9mZnNldC0ye3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHh9LmFudGlhbGlhc2Vkey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5wbGFjZWhvbGRlci1zbGF0ZS01MDA6Oi1tb3otcGxhY2Vob2xkZXJ7LS10dy1wbGFjZWhvbGRlci1vcGFjaXR5OiAxO2NvbG9yOnJnYigxMDAgMTE2IDEzOSAvIHZhcigtLXR3LXBsYWNlaG9sZGVyLW9wYWNpdHksIDEpKX0ucGxhY2Vob2xkZXItc2xhdGUtNTAwOjpwbGFjZWhvbGRlcnstLXR3LXBsYWNlaG9sZGVyLW9wYWNpdHk6IDE7Y29sb3I6cmdiKDEwMCAxMTYgMTM5IC8gdmFyKC0tdHctcGxhY2Vob2xkZXItb3BhY2l0eSwgMSkpfS5vcGFjaXR5LTB7b3BhY2l0eTowfS5zaGFkb3ctbGd7LS10dy1zaGFkb3c6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gLjEpLCAwIDRweCA2cHggLTRweCByZ2IoMCAwIDAgLyAuMSk7LS10dy1zaGFkb3ctY29sb3JlZDogMCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9Lm91dGxpbmUtbm9uZXtvdXRsaW5lOjJweCBzb2xpZCB0cmFuc3BhcmVudDtvdXRsaW5lLW9mZnNldDoycHh9LmZpbHRlcntmaWx0ZXI6dmFyKC0tdHctYmx1cikgdmFyKC0tdHctYnJpZ2h0bmVzcykgdmFyKC0tdHctY29udHJhc3QpIHZhcigtLXR3LWdyYXlzY2FsZSkgdmFyKC0tdHctaHVlLXJvdGF0ZSkgdmFyKC0tdHctaW52ZXJ0KSB2YXIoLS10dy1zYXR1cmF0ZSkgdmFyKC0tdHctc2VwaWEpIHZhcigtLXR3LWRyb3Atc2hhZG93KX0uYmFja2Ryb3AtYmx1ci1zbXstLXR3LWJhY2tkcm9wLWJsdXI6IGJsdXIoNHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS10dy1iYWNrZHJvcC1ibHVyKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCkgdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpIHZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHkpIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKX0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlcixiYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30uZ2xvdy1ibHVle2JveC1zaGFkb3c6MCAwIDIwcHggIzBlYTVlOTI2fS5nbG93LWJsdWUtc217Ym94LXNoYWRvdzowIDAgMTBweCAjMGVhNWU5MWF9LmJnLW1lc2h7YmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4MCUgNTAlIGF0IDUwJSAtMjAlLHJnYmEoMTQsMTY1LDIzMywuMDgpLHRyYW5zcGFyZW50KSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA2MCUgNDAlIGF0IDgwJSA4MCUscmdiYSg1NiwxODksMjQ4LC4wNCksdHJhbnNwYXJlbnQpfUBrZXlmcmFtZXMgZG90c3swJSwyMCV7Y29udGVudDoiIn00MCV7Y29udGVudDoiLiJ9NjAle2NvbnRlbnQ6Ii4uIn04MCUsdG97Y29udGVudDoiLi4uIn19cHJle292ZXJmbG93LXg6YXV0bztib3JkZXItcmFkaXVzOi41cmVtfWNvZGV7Zm9udC1mYW1pbHk6SmV0QnJhaW5zIE1vbm8sRmlyYSBDb2RlLENvbnNvbGFzLG1vbm9zcGFjZTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS5wcm9zZS1vcGVuY2xhd3tsaW5lLWhlaWdodDoxLjYyNTstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjI2IDIzMiAyNDAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0ucHJvc2Utb3BlbmNsYXcgaDEsLnByb3NlLW9wZW5jbGF3IGgyLC5wcm9zZS1vcGVuY2xhdyBoM3ttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo2MDA7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnByb3NlLW9wZW5jbGF3IGgxe2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnByb3NlLW9wZW5jbGF3IGgye2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtfS5wcm9zZS1vcGVuY2xhdyBoM3tmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxLjVyZW19LnByb3NlLW9wZW5jbGF3IHB7bWFyZ2luLWJvdHRvbTouNzVyZW19LnByb3NlLW9wZW5jbGF3IHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnByb3NlLW9wZW5jbGF3IHVsLC5wcm9zZS1vcGVuY2xhdyBvbHttYXJnaW4tYm90dG9tOi43NXJlbTtwYWRkaW5nLWxlZnQ6MS4yNXJlbX0ucHJvc2Utb3BlbmNsYXcgdWx7bGlzdC1zdHlsZS10eXBlOmRpc2N9LnByb3NlLW9wZW5jbGF3IG9se2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsfS5wcm9zZS1vcGVuY2xhdyBsaXttYXJnaW4tYm90dG9tOi4yNXJlbX0ucHJvc2Utb3BlbmNsYXcgY29kZXtib3JkZXItcmFkaXVzOi4yNXJlbTstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjggNDMgNTggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7cGFkZGluZzouMTI1cmVtIC4zNzVyZW07Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbTstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTI1IDIxMSAyNTIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0ucHJvc2Utb3BlbmNsYXcgcHJle21hcmdpbi1ib3R0b206Ljc1cmVtO292ZXJmbG93LXg6YXV0bztib3JkZXItcmFkaXVzOi43NXJlbTtib3JkZXItd2lkdGg6MXB4Oy0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigyOCA0MyA1OCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDEyIDE3IDIzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO3BhZGRpbmc6MXJlbX0ucHJvc2Utb3BlbmNsYXcgcHJlIGNvZGV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwYWRkaW5nOjA7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDIyNiAyMzIgMjQwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LnByb3NlLW9wZW5jbGF3IGJsb2NrcXVvdGV7bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07Ym9yZGVyLWxlZnQtd2lkdGg6MnB4Oy0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigxNCAxNjUgMjMzIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtwYWRkaW5nLWxlZnQ6MXJlbTtmb250LXN0eWxlOml0YWxpYzstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMTQ4IDE2MyAxODQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0ucHJvc2Utb3BlbmNsYXcgYXstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoNTYgMTg5IDI0OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZTt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6MnB4fS5wcm9zZS1vcGVuY2xhdyBhOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OiAxO2NvbG9yOnJnYigxMjUgMjExIDI1MiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpfS5wcm9zZS1vcGVuY2xhdyB0YWJsZXttYXJnaW4tYm90dG9tOi43NXJlbTt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0ucHJvc2Utb3BlbmNsYXcgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7LS10dy1ib3JkZXItb3BhY2l0eTogMTtib3JkZXItY29sb3I6cmdiKDM3IDUzIDcxIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTstLXR3LWJnLW9wYWNpdHk6IDE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjggNDMgNTggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7cGFkZGluZzouNXJlbSAuNzVyZW07dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZTouNzVyZW07bGluZS1oZWlnaHQ6MXJlbTtmb250LXdlaWdodDo2MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wMjVlbTstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjAzIDIxMyAyMjUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0ucHJvc2Utb3BlbmNsYXcgdGR7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7LS10dy1ib3JkZXItb3BhY2l0eTogMTtib3JkZXItY29sb3I6cmdiKDIwIDI4IDM4IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtwYWRkaW5nOi41cmVtIC43NXJlbTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS5wcm9zZS1vcGVuY2xhdyBocnttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbToxcmVtOy0tdHctYm9yZGVyLW9wYWNpdHk6IDE7Ym9yZGVyLWNvbG9yOnJnYigyOCA0MyA1OCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSl9LmZvY3VzLXdpdGhpblw6Ym9yZGVyLWNsYXctNTAwXC81MDpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOiMwZWE1ZTk4MH0uaG92ZXJcOmJvcmRlci1jbGF3LTUwMFwvMzA6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwZWE1ZTk0ZH0uaG92ZXJcOmJvcmRlci1zdXJmYWNlLTYwMDpob3ZlcnstLXR3LWJvcmRlci1vcGFjaXR5OiAxO2JvcmRlci1jb2xvcjpyZ2IoMzcgNTMgNzEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpfS5ob3Zlclw6YmctY2xhdy01MDA6aG92ZXJ7LS10dy1iZy1vcGFjaXR5OiAxO2JhY2tncm91bmQtY29sb3I6cmdiKDE0IDE2NSAyMzMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSl9LmhvdmVyXDpiZy1jbGF3LTUwMFwvMTA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMGVhNWU5MWF9LmhvdmVyXDpiZy1yZWQtNDAwXC8xMDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmODcxNzExYX0uaG92ZXJcOmJnLXN1cmZhY2UtNjAwOmhvdmVyey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigzNyA1MyA3MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uaG92ZXJcOmJnLXN1cmZhY2UtNzAwOmhvdmVyey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyOCA0MyA1OCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uaG92ZXJcOmJnLXN1cmZhY2UtODAwOmhvdmVyey0tdHctYmctb3BhY2l0eTogMTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMCAyOCAzOCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKX0uaG92ZXJcOnRleHQtY2xhdy0zMDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDEyNSAyMTEgMjUyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmhvdmVyXDp0ZXh0LXJlZC00MDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6IDE7Y29sb3I6cmdiKDI0OCAxMTMgMTEzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSl9LmhvdmVyXDp0ZXh0LXNsYXRlLTMwMDpob3ZlcnstLXR3LXRleHQtb3BhY2l0eTogMTtjb2xvcjpyZ2IoMjAzIDIxMyAyMjUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKX0uZm9jdXNcOmJvcmRlci1jbGF3LTUwMFwvNTA6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwZWE1ZTk4MH0uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpiZy1jbGF3LTUwMFwvMjB7YmFja2dyb3VuZC1jb2xvcjojMGVhNWU5MzN9Lmdyb3VwOmhvdmVyIC5ncm91cC1ob3Zlclw6b3BhY2l0eS0xMDB7b3BhY2l0eToxfUBtZWRpYSAobWluLXdpZHRoOiA2NDBweCl7LnNtXDpmbGV4e2Rpc3BsYXk6ZmxleH19Cg=="
  },
  {
    "filepath": "/assets/index-CR8vhQxg.js",
    "type": "application/octet-stream",
    "hash": "05e21f54b1cf03d75630b3609af62411b535c4f1c309ca38f6af33c0d7ada68b",
    "size": 1077342,
    "content": "KGZ1bmN0aW9uKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikucmVsTGlzdDtpZih0JiZ0LnN1cHBvcnRzJiZ0LnN1cHBvcnRzKCJtb2R1bGVwcmVsb2FkIikpcmV0dXJuO2Zvcihjb25zdCBhIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtb2R1bGVwcmVsb2FkIl0nKSlyKGEpO25ldyBNdXRhdGlvbk9ic2VydmVyKGE9Pntmb3IoY29uc3QgaSBvZiBhKWlmKGkudHlwZT09PSJjaGlsZExpc3QiKWZvcihjb25zdCBvIG9mIGkuYWRkZWROb2RlcylvLnRhZ05hbWU9PT0iTElOSyImJm8ucmVsPT09Im1vZHVsZXByZWxvYWQiJiZyKG8pfSkub2JzZXJ2ZShkb2N1bWVudCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTtmdW5jdGlvbiBuKGEpe2NvbnN0IGk9e307cmV0dXJuIGEuaW50ZWdyaXR5JiYoaS5pbnRlZ3JpdHk9YS5pbnRlZ3JpdHkpLGEucmVmZXJyZXJQb2xpY3kmJihpLnJlZmVycmVyUG9saWN5PWEucmVmZXJyZXJQb2xpY3kpLGEuY3Jvc3NPcmlnaW49PT0idXNlLWNyZWRlbnRpYWxzIj9pLmNyZWRlbnRpYWxzPSJpbmNsdWRlIjphLmNyb3NzT3JpZ2luPT09ImFub255bW91cyI/aS5jcmVkZW50aWFscz0ib21pdCI6aS5jcmVkZW50aWFscz0ic2FtZS1vcmlnaW4iLGl9ZnVuY3Rpb24gcihhKXtpZihhLmVwKXJldHVybjthLmVwPSEwO2NvbnN0IGk9bihhKTtmZXRjaChhLmhyZWYsaSl9fSkoKTt2YXIgRm49dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp7fTtmdW5jdGlvbiBOaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiZGVmYXVsdCIpP2UuZGVmYXVsdDplfXZhciBEeD17ZXhwb3J0czp7fX0seXM9e30sTXg9e2V4cG9ydHM6e319LEo9e307LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LnByb2R1Y3Rpb24ubWluLmpzCiAqCiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi92YXIgQ2k9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHIwPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLGEwPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksaTA9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxvMD1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHMwPVN5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIiksbDA9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLHUwPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksYzA9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxkMD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikscDA9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLFZiPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBmMChlKXtyZXR1cm4gZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Ij9udWxsOihlPVZiJiZlW1ZiXXx8ZVsiQEBpdGVyYXRvciJdLHR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6bnVsbCl9dmFyIFB4PXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxGeD1PYmplY3QuYXNzaWduLFV4PXt9O2Z1bmN0aW9uIHVhKGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPVV4LHRoaXMudXBkYXRlcj1ufHxQeH11YS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fTt1YS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT1udWxsKXRocm93IEVycm9yKCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSx0LCJzZXRTdGF0ZSIpfTt1YS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9O2Z1bmN0aW9uIEJ4KCl7fUJ4LnByb3RvdHlwZT11YS5wcm90b3R5cGU7ZnVuY3Rpb24gUmcoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9VXgsdGhpcy51cGRhdGVyPW58fFB4fXZhciBfZz1SZy5wcm90b3R5cGU9bmV3IEJ4O19nLmNvbnN0cnVjdG9yPVJnO0Z4KF9nLHVhLnByb3RvdHlwZSk7X2cuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEhiPUFycmF5LmlzQXJyYXksJHg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxJZz17Y3VycmVudDpudWxsfSx6eD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIGp4KGUsdCxuKXt2YXIgcixhPXt9LGk9bnVsbCxvPW51bGw7aWYodCE9bnVsbClmb3IociBpbiB0LnJlZiE9PXZvaWQgMCYmKG89dC5yZWYpLHQua2V5IT09dm9pZCAwJiYoaT0iIit0LmtleSksdCkkeC5jYWxsKHQscikmJiF6eC5oYXNPd25Qcm9wZXJ0eShyKSYmKGFbcl09dFtyXSk7dmFyIHM9YXJndW1lbnRzLmxlbmd0aC0yO2lmKHM9PT0xKWEuY2hpbGRyZW49bjtlbHNlIGlmKDE8cyl7Zm9yKHZhciBsPUFycmF5KHMpLHU9MDt1PHM7dSsrKWxbdV09YXJndW1lbnRzW3UrMl07YS5jaGlsZHJlbj1sfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIHM9ZS5kZWZhdWx0UHJvcHMscylhW3JdPT09dm9pZCAwJiYoYVtyXT1zW3JdKTtyZXR1cm57JCR0eXBlb2Y6Q2ksdHlwZTplLGtleTppLHJlZjpvLHByb3BzOmEsX293bmVyOklnLmN1cnJlbnR9fWZ1bmN0aW9uIG0wKGUsdCl7cmV0dXJueyQkdHlwZW9mOkNpLHR5cGU6ZS50eXBlLGtleTp0LHJlZjplLnJlZixwcm9wczplLnByb3BzLF9vd25lcjplLl9vd25lcn19ZnVuY3Rpb24gTmcoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJmUuJCR0eXBlb2Y9PT1DaX1mdW5jdGlvbiBnMChlKXt2YXIgdD17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitlLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihuKXtyZXR1cm4gdFtuXX0pfXZhciBXYj0vXC8rL2c7ZnVuY3Rpb24gUXMoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbCYmZS5rZXkhPW51bGw/ZzAoIiIrZS5rZXkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIHZvKGUsdCxuLHIsYSl7dmFyIGk9dHlwZW9mIGU7KGk9PT0idW5kZWZpbmVkInx8aT09PSJib29sZWFuIikmJihlPW51bGwpO3ZhciBvPSExO2lmKGU9PT1udWxsKW89ITA7ZWxzZSBzd2l0Y2goaSl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpvPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSBDaTpjYXNlIHIwOm89ITB9fWlmKG8pcmV0dXJuIG89ZSxhPWEobyksZT1yPT09IiI/Ii4iK1FzKG8sMCk6cixIYihhKT8obj0iIixlIT1udWxsJiYobj1lLnJlcGxhY2UoV2IsIiQmLyIpKyIvIiksdm8oYSx0LG4sIiIsZnVuY3Rpb24odSl7cmV0dXJuIHV9KSk6YSE9bnVsbCYmKE5nKGEpJiYoYT1tMChhLG4rKCFhLmtleXx8byYmby5rZXk9PT1hLmtleT8iIjooIiIrYS5rZXkpLnJlcGxhY2UoV2IsIiQmLyIpKyIvIikrZSkpLHQucHVzaChhKSksMTtpZihvPTAscj1yPT09IiI/Ii4iOnIrIjoiLEhiKGUpKWZvcih2YXIgcz0wO3M8ZS5sZW5ndGg7cysrKXtpPWVbc107dmFyIGw9citRcyhpLHMpO28rPXZvKGksdCxuLGwsYSl9ZWxzZSBpZihsPWYwKGUpLHR5cGVvZiBsPT0iZnVuY3Rpb24iKWZvcihlPWwuY2FsbChlKSxzPTA7IShpPWUubmV4dCgpKS5kb25lOylpPWkudmFsdWUsbD1yK1FzKGkscysrKSxvKz12byhpLHQsbixsLGEpO2Vsc2UgaWYoaT09PSJvYmplY3QiKXRocm93IHQ9U3RyaW5nKGUpLEVycm9yKCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICIrKHQ9PT0iW29iamVjdCBPYmplY3RdIj8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyhlKS5qb2luKCIsICIpKyJ9Ijp0KSsiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIpO3JldHVybiBvfWZ1bmN0aW9uIFZpKGUsdCxuKXtpZihlPT1udWxsKXJldHVybiBlO3ZhciByPVtdLGE9MDtyZXR1cm4gdm8oZSxyLCIiLCIiLGZ1bmN0aW9uKGkpe3JldHVybiB0LmNhbGwobixpLGErKyl9KSxyfWZ1bmN0aW9uIGgwKGUpe2lmKGUuX3N0YXR1cz09PS0xKXt2YXIgdD1lLl9yZXN1bHQ7dD10KCksdC50aGVuKGZ1bmN0aW9uKG4peyhlLl9zdGF0dXM9PT0wfHxlLl9zdGF0dXM9PT0tMSkmJihlLl9zdGF0dXM9MSxlLl9yZXN1bHQ9bil9LGZ1bmN0aW9uKG4peyhlLl9zdGF0dXM9PT0wfHxlLl9zdGF0dXM9PT0tMSkmJihlLl9zdGF0dXM9MixlLl9yZXN1bHQ9bil9KSxlLl9zdGF0dXM9PT0tMSYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZihlLl9zdGF0dXM9PT0xKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIFhlPXtjdXJyZW50Om51bGx9LEVvPXt0cmFuc2l0aW9uOm51bGx9LGIwPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlhlLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOkVvLFJlYWN0Q3VycmVudE93bmVyOklnfTtmdW5jdGlvbiBHeCgpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfUouQ2hpbGRyZW49e21hcDpWaSxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtWaShlLGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG4pfSxjb3VudDpmdW5jdGlvbihlKXt2YXIgdD0wO3JldHVybiBWaShlLGZ1bmN0aW9uKCl7dCsrfSksdH0sdG9BcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gVmkoZSxmdW5jdGlvbih0KXtyZXR1cm4gdH0pfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighTmcoZSkpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBlfX07Si5Db21wb25lbnQ9dWE7Si5GcmFnbWVudD1hMDtKLlByb2ZpbGVyPW8wO0ouUHVyZUNvbXBvbmVudD1SZztKLlN0cmljdE1vZGU9aTA7Si5TdXNwZW5zZT1jMDtKLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPWIwO0ouYWN0PUd4O0ouY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihlPT1udWxsKXRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK2UrIi4iKTt2YXIgcj1GeCh7fSxlLnByb3BzKSxhPWUua2V5LGk9ZS5yZWYsbz1lLl9vd25lcjtpZih0IT1udWxsKXtpZih0LnJlZiE9PXZvaWQgMCYmKGk9dC5yZWYsbz1JZy5jdXJyZW50KSx0LmtleSE9PXZvaWQgMCYmKGE9IiIrdC5rZXkpLGUudHlwZSYmZS50eXBlLmRlZmF1bHRQcm9wcyl2YXIgcz1lLnR5cGUuZGVmYXVsdFByb3BzO2ZvcihsIGluIHQpJHguY2FsbCh0LGwpJiYhenguaGFzT3duUHJvcGVydHkobCkmJihyW2xdPXRbbF09PT12b2lkIDAmJnMhPT12b2lkIDA/c1tsXTp0W2xdKX12YXIgbD1hcmd1bWVudHMubGVuZ3RoLTI7aWYobD09PTEpci5jaGlsZHJlbj1uO2Vsc2UgaWYoMTxsKXtzPUFycmF5KGwpO2Zvcih2YXIgdT0wO3U8bDt1Kyspc1t1XT1hcmd1bWVudHNbdSsyXTtyLmNoaWxkcmVuPXN9cmV0dXJueyQkdHlwZW9mOkNpLHR5cGU6ZS50eXBlLGtleTphLHJlZjppLHByb3BzOnIsX293bmVyOm99fTtKLmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9eyQkdHlwZW9mOmwwLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0sZS5Qcm92aWRlcj17JCR0eXBlb2Y6czAsX2NvbnRleHQ6ZX0sZS5Db25zdW1lcj1lfTtKLmNyZWF0ZUVsZW1lbnQ9ang7Si5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGUpe3ZhciB0PWp4LmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH07Si5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX07Si5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjp1MCxyZW5kZXI6ZX19O0ouaXNWYWxpZEVsZW1lbnQ9Tmc7Si5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpwMCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0OmgwfX07Si5tZW1vPWZ1bmN0aW9uKGUsdCl7cmV0dXJueyQkdHlwZW9mOmQwLHR5cGU6ZSxjb21wYXJlOnQ9PT12b2lkIDA/bnVsbDp0fX07Si5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9RW8udHJhbnNpdGlvbjtFby50cmFuc2l0aW9uPXt9O3RyeXtlKCl9ZmluYWxseXtFby50cmFuc2l0aW9uPXR9fTtKLnVuc3RhYmxlX2FjdD1HeDtKLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFhlLmN1cnJlbnQudXNlQ2FsbGJhY2soZSx0KX07Si51c2VDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBYZS5jdXJyZW50LnVzZUNvbnRleHQoZSl9O0oudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe307Si51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBYZS5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoZSl9O0oudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFhlLmN1cnJlbnQudXNlRWZmZWN0KGUsdCl9O0oudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWGUuY3VycmVudC51c2VJZCgpfTtKLnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBYZS5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoZSx0LG4pfTtKLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBYZS5jdXJyZW50LnVzZUluc2VydGlvbkVmZmVjdChlLHQpfTtKLnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBYZS5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfTtKLnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gWGUuY3VycmVudC51c2VNZW1vKGUsdCl9O0oudXNlUmVkdWNlcj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIFhlLmN1cnJlbnQudXNlUmVkdWNlcihlLHQsbil9O0oudXNlUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBYZS5jdXJyZW50LnVzZVJlZihlKX07Si51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gWGUuY3VycmVudC51c2VTdGF0ZShlKX07Si51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIFhlLmN1cnJlbnQudXNlU3luY0V4dGVybmFsU3RvcmUoZSx0LG4pfTtKLnVzZVRyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gWGUuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9O0oudmVyc2lvbj0iMTguMy4xIjtNeC5leHBvcnRzPUo7dmFyIFA9TXguZXhwb3J0cztjb25zdCBZdD1OaShQKTsvKioKICogQGxpY2Vuc2UgUmVhY3QKICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMKICoKICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL3ZhciB5MD1QLHYwPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxFMD1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLFMwPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksdzA9eTAuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIsVDA9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBxeChlLHQsbil7dmFyIHIsYT17fSxpPW51bGwsbz1udWxsO24hPT12b2lkIDAmJihpPSIiK24pLHQua2V5IT09dm9pZCAwJiYoaT0iIit0LmtleSksdC5yZWYhPT12b2lkIDAmJihvPXQucmVmKTtmb3IociBpbiB0KVMwLmNhbGwodCxyKSYmIVQwLmhhc093blByb3BlcnR5KHIpJiYoYVtyXT10W3JdKTtpZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiB0PWUuZGVmYXVsdFByb3BzLHQpYVtyXT09PXZvaWQgMCYmKGFbcl09dFtyXSk7cmV0dXJueyQkdHlwZW9mOnYwLHR5cGU6ZSxrZXk6aSxyZWY6byxwcm9wczphLF9vd25lcjp3MC5jdXJyZW50fX15cy5GcmFnbWVudD1FMDt5cy5qc3g9cXg7eXMuanN4cz1xeDtEeC5leHBvcnRzPXlzO3ZhciBrPUR4LmV4cG9ydHMsdG09e30sVng9e2V4cG9ydHM6e319LHl0PXt9LEh4PXtleHBvcnRzOnt9fSxXeD17fTsvKioKICogQGxpY2Vuc2UgUmVhY3QKICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzCiAqCiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi8oZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChOLFUpe3ZhciBTPU4ubGVuZ3RoO04ucHVzaChVKTtlOmZvcig7MDxTOyl7dmFyICQ9Uy0xPj4+MSxqPU5bJF07aWYoMDxhKGosVSkpTlskXT1VLE5bU109aixTPSQ7ZWxzZSBicmVhayBlfX1mdW5jdGlvbiBuKE4pe3JldHVybiBOLmxlbmd0aD09PTA/bnVsbDpOWzBdfWZ1bmN0aW9uIHIoTil7aWYoTi5sZW5ndGg9PT0wKXJldHVybiBudWxsO3ZhciBVPU5bMF0sUz1OLnBvcCgpO2lmKFMhPT1VKXtOWzBdPVM7ZTpmb3IodmFyICQ9MCxqPU4ubGVuZ3RoLHg9aj4+PjE7JDx4Oyl7dmFyIHRlPTIqKCQrMSktMSxoZT1OW3RlXSxlZT10ZSsxLFNlPU5bZWVdO2lmKDA+YShoZSxTKSllZTxqJiYwPmEoU2UsaGUpPyhOWyRdPVNlLE5bZWVdPVMsJD1lZSk6KE5bJF09aGUsTlt0ZV09UywkPXRlKTtlbHNlIGlmKGVlPGomJjA+YShTZSxTKSlOWyRdPVNlLE5bZWVdPVMsJD1lZTtlbHNlIGJyZWFrIGV9fXJldHVybiBVfWZ1bmN0aW9uIGEoTixVKXt2YXIgUz1OLnNvcnRJbmRleC1VLnNvcnRJbmRleDtyZXR1cm4gUyE9PTA/UzpOLmlkLVUuaWR9aWYodHlwZW9mIHBlcmZvcm1hbmNlPT0ib2JqZWN0IiYmdHlwZW9mIHBlcmZvcm1hbmNlLm5vdz09ImZ1bmN0aW9uIil7dmFyIGk9cGVyZm9ybWFuY2U7ZS51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gaS5ub3coKX19ZWxzZXt2YXIgbz1EYXRlLHM9by5ub3coKTtlLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBvLm5vdygpLXN9fXZhciBsPVtdLHU9W10sYz0xLGQ9bnVsbCxwPTMsZj0hMSx5PSExLGI9ITEsQT10eXBlb2Ygc2V0VGltZW91dD09ImZ1bmN0aW9uIj9zZXRUaW1lb3V0Om51bGwsaD10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDpudWxsLG09dHlwZW9mIHNldEltbWVkaWF0ZTwidSI/c2V0SW1tZWRpYXRlOm51bGw7dHlwZW9mIG5hdmlnYXRvcjwidSImJm5hdmlnYXRvci5zY2hlZHVsaW5nIT09dm9pZCAwJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZyE9PXZvaWQgMCYmbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcuYmluZChuYXZpZ2F0b3Iuc2NoZWR1bGluZyk7ZnVuY3Rpb24gZyhOKXtmb3IodmFyIFU9bih1KTtVIT09bnVsbDspe2lmKFUuY2FsbGJhY2s9PT1udWxsKXIodSk7ZWxzZSBpZihVLnN0YXJ0VGltZTw9TilyKHUpLFUuc29ydEluZGV4PVUuZXhwaXJhdGlvblRpbWUsdChsLFUpO2Vsc2UgYnJlYWs7VT1uKHUpfX1mdW5jdGlvbiBFKE4pe2lmKGI9ITEsZyhOKSwheSlpZihuKGwpIT09bnVsbCl5PSEwLEsoVCk7ZWxzZXt2YXIgVT1uKHUpO1UhPT1udWxsJiZWKEUsVS5zdGFydFRpbWUtTil9fWZ1bmN0aW9uIFQoTixVKXt5PSExLGImJihiPSExLGgoXyksXz0tMSksZj0hMDt2YXIgUz1wO3RyeXtmb3IoZyhVKSxkPW4obCk7ZCE9PW51bGwmJighKGQuZXhwaXJhdGlvblRpbWU+VSl8fE4mJiFMKCkpOyl7dmFyICQ9ZC5jYWxsYmFjaztpZih0eXBlb2YgJD09ImZ1bmN0aW9uIil7ZC5jYWxsYmFjaz1udWxsLHA9ZC5wcmlvcml0eUxldmVsO3ZhciBqPSQoZC5leHBpcmF0aW9uVGltZTw9VSk7VT1lLnVuc3RhYmxlX25vdygpLHR5cGVvZiBqPT0iZnVuY3Rpb24iP2QuY2FsbGJhY2s9ajpkPT09bihsKSYmcihsKSxnKFUpfWVsc2UgcihsKTtkPW4obCl9aWYoZCE9PW51bGwpdmFyIHg9ITA7ZWxzZXt2YXIgdGU9bih1KTt0ZSE9PW51bGwmJlYoRSx0ZS5zdGFydFRpbWUtVSkseD0hMX1yZXR1cm4geH1maW5hbGx5e2Q9bnVsbCxwPVMsZj0hMX19dmFyIHY9ITEsUj1udWxsLF89LTEsST01LEM9LTE7ZnVuY3Rpb24gTCgpe3JldHVybiEoZS51bnN0YWJsZV9ub3coKS1DPEkpfWZ1bmN0aW9uIEYoKXtpZihSIT09bnVsbCl7dmFyIE49ZS51bnN0YWJsZV9ub3coKTtDPU47dmFyIFU9ITA7dHJ5e1U9UighMCxOKX1maW5hbGx5e1U/cSgpOih2PSExLFI9bnVsbCl9fWVsc2Ugdj0hMX12YXIgcTtpZih0eXBlb2YgbT09ImZ1bmN0aW9uIilxPWZ1bmN0aW9uKCl7bShGKX07ZWxzZSBpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWw8InUiKXt2YXIgVz1uZXcgTWVzc2FnZUNoYW5uZWwsRz1XLnBvcnQyO1cucG9ydDEub25tZXNzYWdlPUYscT1mdW5jdGlvbigpe0cucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgcT1mdW5jdGlvbigpe0EoRiwwKX07ZnVuY3Rpb24gSyhOKXtSPU4sdnx8KHY9ITAscSgpKX1mdW5jdGlvbiBWKE4sVSl7Xz1BKGZ1bmN0aW9uKCl7TihlLnVuc3RhYmxlX25vdygpKX0sVSl9ZS51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSxlLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTEsZS51bnN0YWJsZV9Mb3dQcmlvcml0eT00LGUudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MyxlLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsLGUudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MixlLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKE4pe04uY2FsbGJhY2s9bnVsbH0sZS51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe3l8fGZ8fCh5PSEwLEsoVCkpfSxlLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKE4pezA+Tnx8MTI1PE4/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6ST0wPE4/TWF0aC5mbG9vcigxZTMvTik6NX0sZS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBwfSxlLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIG4obCl9LGUudW5zdGFibGVfbmV4dD1mdW5jdGlvbihOKXtzd2l0Y2gocCl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIFU9MzticmVhaztkZWZhdWx0OlU9cH12YXIgUz1wO3A9VTt0cnl7cmV0dXJuIE4oKX1maW5hbGx5e3A9U319LGUudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LGUudW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fSxlLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihOLFUpe3N3aXRjaChOKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6Tj0zfXZhciBTPXA7cD1OO3RyeXtyZXR1cm4gVSgpfWZpbmFsbHl7cD1TfX0sZS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKE4sVSxTKXt2YXIgJD1lLnVuc3RhYmxlX25vdygpO3N3aXRjaCh0eXBlb2YgUz09Im9iamVjdCImJlMhPT1udWxsPyhTPVMuZGVsYXksUz10eXBlb2YgUz09Im51bWJlciImJjA8Uz8kK1M6JCk6Uz0kLE4pe2Nhc2UgMTp2YXIgaj0tMTticmVhaztjYXNlIDI6aj0yNTA7YnJlYWs7Y2FzZSA1Omo9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6aj0xZTQ7YnJlYWs7ZGVmYXVsdDpqPTVlM31yZXR1cm4gaj1TK2osTj17aWQ6YysrLGNhbGxiYWNrOlUscHJpb3JpdHlMZXZlbDpOLHN0YXJ0VGltZTpTLGV4cGlyYXRpb25UaW1lOmosc29ydEluZGV4Oi0xfSxTPiQ/KE4uc29ydEluZGV4PVMsdCh1LE4pLG4obCk9PT1udWxsJiZOPT09bih1KSYmKGI/KGgoXyksXz0tMSk6Yj0hMCxWKEUsUy0kKSkpOihOLnNvcnRJbmRleD1qLHQobCxOKSx5fHxmfHwoeT0hMCxLKFQpKSksTn0sZS51bnN0YWJsZV9zaG91bGRZaWVsZD1MLGUudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKE4pe3ZhciBVPXA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFM9cDtwPVU7dHJ5e3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3A9U319fX0pKFd4KTtIeC5leHBvcnRzPVd4O3ZhciBrMD1IeC5leHBvcnRzOy8qKgogKiBAbGljZW5zZSBSZWFjdAogKiByZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMKICoKICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL3ZhciBBMD1QLGh0PWswO2Z1bmN0aW9uIEQoZSl7Zm9yKHZhciB0PSJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD0iK2Usbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdCs9IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW25dKTtyZXR1cm4iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrZSsiOyB2aXNpdCAiK3QrIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIn12YXIgWXg9bmV3IFNldCxpaT17fTtmdW5jdGlvbiBncihlLHQpe1FyKGUsdCksUXIoZSsiQ2FwdHVyZSIsdCl9ZnVuY3Rpb24gUXIoZSx0KXtmb3IoaWlbZV09dCxlPTA7ZTx0Lmxlbmd0aDtlKyspWXguYWRkKHRbZV0pfXZhciBmbj0hKHR5cGVvZiB3aW5kb3c+InUifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50PiJ1Inx8dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50PiJ1Iiksbm09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx4MD0vXls6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXVs6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXC0uMC05XHUwMEI3XHUwMzAwLVx1MDM2Rlx1MjAzRi1cdTIwNDBdKiQvLFliPXt9LEtiPXt9O2Z1bmN0aW9uIFIwKGUpe3JldHVybiBubS5jYWxsKEtiLGUpPyEwOm5tLmNhbGwoWWIsZSk/ITE6eDAudGVzdChlKT9LYltlXT0hMDooWWJbZV09ITAsITEpfWZ1bmN0aW9uIF8wKGUsdCxuLHIpe2lmKG4hPT1udWxsJiZuLnR5cGU9PT0wKXJldHVybiExO3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOnJldHVybiEwO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIHI/ITE6biE9PW51bGw/IW4uYWNjZXB0c0Jvb2xlYW5zOihlPWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpLGUhPT0iZGF0YS0iJiZlIT09ImFyaWEtIik7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gSTAoZSx0LG4scil7aWYodD09PW51bGx8fHR5cGVvZiB0PiJ1Inx8XzAoZSx0LG4scikpcmV0dXJuITA7aWYocilyZXR1cm4hMTtpZihuIT09bnVsbClzd2l0Y2gobi50eXBlKXtjYXNlIDM6cmV0dXJuIXQ7Y2FzZSA0OnJldHVybiB0PT09ITE7Y2FzZSA1OnJldHVybiBpc05hTih0KTtjYXNlIDY6cmV0dXJuIGlzTmFOKHQpfHwxPnR9cmV0dXJuITF9ZnVuY3Rpb24gWmUoZSx0LG4scixhLGksbyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9dD09PTJ8fHQ9PT0zfHx0PT09NCx0aGlzLmF0dHJpYnV0ZU5hbWU9cix0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1hLHRoaXMubXVzdFVzZVByb3BlcnR5PW4sdGhpcy5wcm9wZXJ0eU5hbWU9ZSx0aGlzLnR5cGU9dCx0aGlzLnNhbml0aXplVVJMPWksdGhpcy5yZW1vdmVFbXB0eVN0cmluZz1vfXZhciBGZT17fTsiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7RmVbZV09bmV3IFplKGUsMCwhMSxlLG51bGwsITEsITEpfSk7W1siYWNjZXB0Q2hhcnNldCIsImFjY2VwdC1jaGFyc2V0Il0sWyJjbGFzc05hbWUiLCJjbGFzcyJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF07RmVbdF09bmV3IFplKHQsMSwhMSxlWzFdLG51bGwsITEsITEpfSk7WyJjb250ZW50RWRpdGFibGUiLCJkcmFnZ2FibGUiLCJzcGVsbENoZWNrIiwidmFsdWUiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe0ZlW2VdPW5ldyBaZShlLDIsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7WyJhdXRvUmV2ZXJzZSIsImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiLCJmb2N1c2FibGUiLCJwcmVzZXJ2ZUFscGhhIl0uZm9yRWFjaChmdW5jdGlvbihlKXtGZVtlXT1uZXcgWmUoZSwyLCExLGUsbnVsbCwhMSwhMSl9KTsiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe0ZlW2VdPW5ldyBaZShlLDMsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0uZm9yRWFjaChmdW5jdGlvbihlKXtGZVtlXT1uZXcgWmUoZSwzLCEwLGUsbnVsbCwhMSwhMSl9KTtbImNhcHR1cmUiLCJkb3dubG9hZCJdLmZvckVhY2goZnVuY3Rpb24oZSl7RmVbZV09bmV3IFplKGUsNCwhMSxlLG51bGwsITEsITEpfSk7WyJjb2xzIiwicm93cyIsInNpemUiLCJzcGFuIl0uZm9yRWFjaChmdW5jdGlvbihlKXtGZVtlXT1uZXcgWmUoZSw2LCExLGUsbnVsbCwhMSwhMSl9KTtbInJvd1NwYW4iLCJzdGFydCJdLmZvckVhY2goZnVuY3Rpb24oZSl7RmVbZV09bmV3IFplKGUsNSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTt2YXIgQ2c9L1tcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIE9nKGUpe3JldHVybiBlWzFdLnRvVXBwZXJDYXNlKCl9ImFjY2VudC1oZWlnaHQgYWxpZ25tZW50LWJhc2VsaW5lIGFyYWJpYy1mb3JtIGJhc2VsaW5lLXNoaWZ0IGNhcC1oZWlnaHQgY2xpcC1wYXRoIGNsaXAtcnVsZSBjb2xvci1pbnRlcnBvbGF0aW9uIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyBjb2xvci1wcm9maWxlIGNvbG9yLXJlbmRlcmluZyBkb21pbmFudC1iYXNlbGluZSBlbmFibGUtYmFja2dyb3VuZCBmaWxsLW9wYWNpdHkgZmlsbC1ydWxlIGZsb29kLWNvbG9yIGZsb29kLW9wYWNpdHkgZm9udC1mYW1pbHkgZm9udC1zaXplIGZvbnQtc2l6ZS1hZGp1c3QgZm9udC1zdHJldGNoIGZvbnQtc3R5bGUgZm9udC12YXJpYW50IGZvbnQtd2VpZ2h0IGdseXBoLW5hbWUgZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCBnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCBob3Jpei1hZHYteCBob3Jpei1vcmlnaW4teCBpbWFnZS1yZW5kZXJpbmcgbGV0dGVyLXNwYWNpbmcgbGlnaHRpbmctY29sb3IgbWFya2VyLWVuZCBtYXJrZXItbWlkIG1hcmtlci1zdGFydCBvdmVybGluZS1wb3NpdGlvbiBvdmVybGluZS10aGlja25lc3MgcGFpbnQtb3JkZXIgcGFub3NlLTEgcG9pbnRlci1ldmVudHMgcmVuZGVyaW5nLWludGVudCBzaGFwZS1yZW5kZXJpbmcgc3RvcC1jb2xvciBzdG9wLW9wYWNpdHkgc3RyaWtldGhyb3VnaC1wb3NpdGlvbiBzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyBzdHJva2UtZGFzaGFycmF5IHN0cm9rZS1kYXNob2Zmc2V0IHN0cm9rZS1saW5lY2FwIHN0cm9rZS1saW5lam9pbiBzdHJva2UtbWl0ZXJsaW1pdCBzdHJva2Utb3BhY2l0eSBzdHJva2Utd2lkdGggdGV4dC1hbmNob3IgdGV4dC1kZWNvcmF0aW9uIHRleHQtcmVuZGVyaW5nIHVuZGVybGluZS1wb3NpdGlvbiB1bmRlcmxpbmUtdGhpY2tuZXNzIHVuaWNvZGUtYmlkaSB1bmljb2RlLXJhbmdlIHVuaXRzLXBlci1lbSB2LWFscGhhYmV0aWMgdi1oYW5naW5nIHYtaWRlb2dyYXBoaWMgdi1tYXRoZW1hdGljYWwgdmVjdG9yLWVmZmVjdCB2ZXJ0LWFkdi15IHZlcnQtb3JpZ2luLXggdmVydC1vcmlnaW4teSB3b3JkLXNwYWNpbmcgd3JpdGluZy1tb2RlIHhtbG5zOnhsaW5rIHgtaGVpZ2h0Ii5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKENnLE9nKTtGZVt0XT1uZXcgWmUodCwxLCExLGUsbnVsbCwhMSwhMSl9KTsieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKENnLE9nKTtGZVt0XT1uZXcgWmUodCwxLCExLGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCExLCExKX0pO1sieG1sOmJhc2UiLCJ4bWw6bGFuZyIsInhtbDpzcGFjZSJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKENnLE9nKTtGZVt0XT1uZXcgWmUodCwxLCExLGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsITEsITEpfSk7WyJ0YWJJbmRleCIsImNyb3NzT3JpZ2luIl0uZm9yRWFjaChmdW5jdGlvbihlKXtGZVtlXT1uZXcgWmUoZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO0ZlLnhsaW5rSHJlZj1uZXcgWmUoInhsaW5rSHJlZiIsMSwhMSwieGxpbms6aHJlZiIsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCEwLCExKTtbInNyYyIsImhyZWYiLCJhY3Rpb24iLCJmb3JtQWN0aW9uIl0uZm9yRWFjaChmdW5jdGlvbihlKXtGZVtlXT1uZXcgWmUoZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCEwLCEwKX0pO2Z1bmN0aW9uIExnKGUsdCxuLHIpe3ZhciBhPUZlLmhhc093blByb3BlcnR5KHQpP0ZlW3RdOm51bGw7KGEhPT1udWxsP2EudHlwZSE9PTA6cnx8ISgyPHQubGVuZ3RoKXx8dFswXSE9PSJvIiYmdFswXSE9PSJPInx8dFsxXSE9PSJuIiYmdFsxXSE9PSJOIikmJihJMCh0LG4sYSxyKSYmKG49bnVsbCkscnx8YT09PW51bGw/UjAodCkmJihuPT09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZSh0KTplLnNldEF0dHJpYnV0ZSh0LCIiK24pKTphLm11c3RVc2VQcm9wZXJ0eT9lW2EucHJvcGVydHlOYW1lXT1uPT09bnVsbD9hLnR5cGU9PT0zPyExOiIiOm46KHQ9YS5hdHRyaWJ1dGVOYW1lLHI9YS5hdHRyaWJ1dGVOYW1lc3BhY2Usbj09PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6KGE9YS50eXBlLG49YT09PTN8fGE9PT00JiZuPT09ITA/IiI6IiIrbixyP2Uuc2V0QXR0cmlidXRlTlMocix0LG4pOmUuc2V0QXR0cmlidXRlKHQsbikpKSl9dmFyIHluPUEwLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELEhpPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSx4cj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxScj1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLERnPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIikscm09U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxLeD1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLFh4PVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxNZz1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGFtPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksaW09U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLFBnPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSx3bj1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksWng9U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIiksWGI9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEVhKGUpe3JldHVybiBlPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiP251bGw6KGU9WGImJmVbWGJdfHxlWyJAQGl0ZXJhdG9yIl0sdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpudWxsKX12YXIgRWU9T2JqZWN0LmFzc2lnbixKcztmdW5jdGlvbiBEYShlKXtpZihKcz09PXZvaWQgMCl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChuKXt2YXIgdD1uLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7SnM9dCYmdFsxXXx8IiJ9cmV0dXJuYApgK0pzK2V9dmFyIGVsPSExO2Z1bmN0aW9uIHRsKGUsdCl7aWYoIWV8fGVsKXJldHVybiIiO2VsPSEwO3ZhciBuPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYodClpZih0PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJwcm9wcyIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCl9fSksdHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KHQsW10pfWNhdGNoKHUpe3ZhciByPXV9UmVmbGVjdC5jb25zdHJ1Y3QoZSxbXSx0KX1lbHNle3RyeXt0LmNhbGwoKX1jYXRjaCh1KXtyPXV9ZS5jYWxsKHQucHJvdG90eXBlKX1lbHNle3RyeXt0aHJvdyBFcnJvcigpfWNhdGNoKHUpe3I9dX1lKCl9fWNhdGNoKHUpe2lmKHUmJnImJnR5cGVvZiB1LnN0YWNrPT0ic3RyaW5nIil7Zm9yKHZhciBhPXUuc3RhY2suc3BsaXQoYApgKSxpPXIuc3RhY2suc3BsaXQoYApgKSxvPWEubGVuZ3RoLTEscz1pLmxlbmd0aC0xOzE8PW8mJjA8PXMmJmFbb10hPT1pW3NdOylzLS07Zm9yKDsxPD1vJiYwPD1zO28tLSxzLS0paWYoYVtvXSE9PWlbc10pe2lmKG8hPT0xfHxzIT09MSlkbyBpZihvLS0scy0tLDA+c3x8YVtvXSE9PWlbc10pe3ZhciBsPWAKYCthW29dLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZsLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYobD1sLnJlcGxhY2UoIjxhbm9ueW1vdXM+IixlLmRpc3BsYXlOYW1lKSksbH13aGlsZSgxPD1vJiYwPD1zKTticmVha319fWZpbmFsbHl7ZWw9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9bn1yZXR1cm4oZT1lP2UuZGlzcGxheU5hbWV8fGUubmFtZToiIik/RGEoZSk6IiJ9ZnVuY3Rpb24gTjAoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDU6cmV0dXJuIERhKGUudHlwZSk7Y2FzZSAxNjpyZXR1cm4gRGEoIkxhenkiKTtjYXNlIDEzOnJldHVybiBEYSgiU3VzcGVuc2UiKTtjYXNlIDE5OnJldHVybiBEYSgiU3VzcGVuc2VMaXN0Iik7Y2FzZSAwOmNhc2UgMjpjYXNlIDE1OnJldHVybiBlPXRsKGUudHlwZSwhMSksZTtjYXNlIDExOnJldHVybiBlPXRsKGUudHlwZS5yZW5kZXIsITEpLGU7Y2FzZSAxOnJldHVybiBlPXRsKGUudHlwZSwhMCksZTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBvbShlKXtpZihlPT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlLmRpc3BsYXlOYW1lfHxlLm5hbWV8fG51bGw7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBlO3N3aXRjaChlKXtjYXNlIFJyOnJldHVybiJGcmFnbWVudCI7Y2FzZSB4cjpyZXR1cm4iUG9ydGFsIjtjYXNlIHJtOnJldHVybiJQcm9maWxlciI7Y2FzZSBEZzpyZXR1cm4iU3RyaWN0TW9kZSI7Y2FzZSBhbTpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgaW06cmV0dXJuIlN1c3BlbnNlTGlzdCJ9aWYodHlwZW9mIGU9PSJvYmplY3QiKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIFh4OnJldHVybihlLmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgS3g6cmV0dXJuKGUuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Qcm92aWRlciI7Y2FzZSBNZzp2YXIgdD1lLnJlbmRlcjtyZXR1cm4gZT1lLmRpc3BsYXlOYW1lLGV8fChlPXQuZGlzcGxheU5hbWV8fHQubmFtZXx8IiIsZT1lIT09IiI/IkZvcndhcmRSZWYoIitlKyIpIjoiRm9yd2FyZFJlZiIpLGU7Y2FzZSBQZzpyZXR1cm4gdD1lLmRpc3BsYXlOYW1lfHxudWxsLHQhPT1udWxsP3Q6b20oZS50eXBlKXx8Ik1lbW8iO2Nhc2Ugd246dD1lLl9wYXlsb2FkLGU9ZS5faW5pdDt0cnl7cmV0dXJuIG9tKGUodCkpfWNhdGNoe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gQzAoZSl7dmFyIHQ9ZS50eXBlO3N3aXRjaChlLnRhZyl7Y2FzZSAyNDpyZXR1cm4iQ2FjaGUiO2Nhc2UgOTpyZXR1cm4odC5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIDEwOnJldHVybih0Ll9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuUHJvdmlkZXIiO2Nhc2UgMTg6cmV0dXJuIkRlaHlkcmF0ZWRGcmFnbWVudCI7Y2FzZSAxMTpyZXR1cm4gZT10LnJlbmRlcixlPWUuZGlzcGxheU5hbWV8fGUubmFtZXx8IiIsdC5kaXNwbGF5TmFtZXx8KGUhPT0iIj8iRm9yd2FyZFJlZigiK2UrIikiOiJGb3J3YXJkUmVmIik7Y2FzZSA3OnJldHVybiJGcmFnbWVudCI7Y2FzZSA1OnJldHVybiB0O2Nhc2UgNDpyZXR1cm4iUG9ydGFsIjtjYXNlIDM6cmV0dXJuIlJvb3QiO2Nhc2UgNjpyZXR1cm4iVGV4dCI7Y2FzZSAxNjpyZXR1cm4gb20odCk7Y2FzZSA4OnJldHVybiB0PT09RGc/IlN0cmljdE1vZGUiOiJNb2RlIjtjYXNlIDIyOnJldHVybiJPZmZzY3JlZW4iO2Nhc2UgMTI6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIDIxOnJldHVybiJTY29wZSI7Y2FzZSAxMzpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgMTk6cmV0dXJuIlN1c3BlbnNlTGlzdCI7Y2FzZSAyNTpyZXR1cm4iVHJhY2luZ01hcmtlciI7Y2FzZSAxOmNhc2UgMDpjYXNlIDE3OmNhc2UgMjpjYXNlIDE0OmNhc2UgMTU6aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIHQuZGlzcGxheU5hbWV8fHQubmFtZXx8bnVsbDtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVW4oZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBlO2Nhc2Uib2JqZWN0IjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBReChlKXt2YXIgdD1lLnR5cGU7cmV0dXJuKGU9ZS5ub2RlTmFtZSkmJmUudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJih0PT09ImNoZWNrYm94Inx8dD09PSJyYWRpbyIpfWZ1bmN0aW9uIE8wKGUpe3ZhciB0PVF4KGUpPyJjaGVja2VkIjoidmFsdWUiLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KSxyPSIiK2VbdF07aWYoIWUuaGFzT3duUHJvcGVydHkodCkmJnR5cGVvZiBuPCJ1IiYmdHlwZW9mIG4uZ2V0PT0iZnVuY3Rpb24iJiZ0eXBlb2Ygbi5zZXQ9PSJmdW5jdGlvbiIpe3ZhciBhPW4uZ2V0LGk9bi5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24obyl7cj0iIitvLGkuY2FsbCh0aGlzLG8pfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6bi5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHNldFZhbHVlOmZ1bmN0aW9uKG8pe3I9IiIrb30sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7ZS5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIGVbdF19fX19ZnVuY3Rpb24gV2koZSl7ZS5fdmFsdWVUcmFja2VyfHwoZS5fdmFsdWVUcmFja2VyPU8wKGUpKX1mdW5jdGlvbiBKeChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLl92YWx1ZVRyYWNrZXI7aWYoIXQpcmV0dXJuITA7dmFyIG49dC5nZXRWYWx1ZSgpLHI9IiI7cmV0dXJuIGUmJihyPVF4KGUpP2UuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIjplLnZhbHVlKSxlPXIsZSE9PW4/KHQuc2V0VmFsdWUoZSksITApOiExfWZ1bmN0aW9uIFVvKGUpe2lmKGU9ZXx8KHR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6dm9pZCAwKSx0eXBlb2YgZT4idSIpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaHtyZXR1cm4gZS5ib2R5fX1mdW5jdGlvbiBzbShlLHQpe3ZhciBuPXQuY2hlY2tlZDtyZXR1cm4gRWUoe30sdCx7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bj8/ZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9ZnVuY3Rpb24gWmIoZSx0KXt2YXIgbj10LmRlZmF1bHRWYWx1ZT09bnVsbD8iIjp0LmRlZmF1bHRWYWx1ZSxyPXQuY2hlY2tlZCE9bnVsbD90LmNoZWNrZWQ6dC5kZWZhdWx0Q2hlY2tlZDtuPVVuKHQudmFsdWUhPW51bGw/dC52YWx1ZTpuKSxlLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOnIsaW5pdGlhbFZhbHVlOm4sY29udHJvbGxlZDp0LnR5cGU9PT0iY2hlY2tib3gifHx0LnR5cGU9PT0icmFkaW8iP3QuY2hlY2tlZCE9bnVsbDp0LnZhbHVlIT1udWxsfX1mdW5jdGlvbiBlUihlLHQpe3Q9dC5jaGVja2VkLHQhPW51bGwmJkxnKGUsImNoZWNrZWQiLHQsITEpfWZ1bmN0aW9uIGxtKGUsdCl7ZVIoZSx0KTt2YXIgbj1Vbih0LnZhbHVlKSxyPXQudHlwZTtpZihuIT1udWxsKXI9PT0ibnVtYmVyIj8obj09PTAmJmUudmFsdWU9PT0iInx8ZS52YWx1ZSE9bikmJihlLnZhbHVlPSIiK24pOmUudmFsdWUhPT0iIituJiYoZS52YWx1ZT0iIituKTtlbHNlIGlmKHI9PT0ic3VibWl0Inx8cj09PSJyZXNldCIpe2UucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpO3JldHVybn10Lmhhc093blByb3BlcnR5KCJ2YWx1ZSIpP3VtKGUsdC50eXBlLG4pOnQuaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpJiZ1bShlLHQudHlwZSxVbih0LmRlZmF1bHRWYWx1ZSkpLHQuY2hlY2tlZD09bnVsbCYmdC5kZWZhdWx0Q2hlY2tlZCE9bnVsbCYmKGUuZGVmYXVsdENoZWNrZWQ9ISF0LmRlZmF1bHRDaGVja2VkKX1mdW5jdGlvbiBRYihlLHQsbil7aWYodC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKXx8dC5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikpe3ZhciByPXQudHlwZTtpZighKHIhPT0ic3VibWl0IiYmciE9PSJyZXNldCJ8fHQudmFsdWUhPT12b2lkIDAmJnQudmFsdWUhPT1udWxsKSlyZXR1cm47dD0iIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLG58fHQ9PT1lLnZhbHVlfHwoZS52YWx1ZT10KSxlLmRlZmF1bHRWYWx1ZT10fW49ZS5uYW1lLG4hPT0iIiYmKGUubmFtZT0iIiksZS5kZWZhdWx0Q2hlY2tlZD0hIWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCxuIT09IiImJihlLm5hbWU9bil9ZnVuY3Rpb24gdW0oZSx0LG4peyh0IT09Im51bWJlciJ8fFVvKGUub3duZXJEb2N1bWVudCkhPT1lKSYmKG49PW51bGw/ZS5kZWZhdWx0VmFsdWU9IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTplLmRlZmF1bHRWYWx1ZSE9PSIiK24mJihlLmRlZmF1bHRWYWx1ZT0iIituKSl9dmFyIE1hPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gcXIoZSx0LG4scil7aWYoZT1lLm9wdGlvbnMsdCl7dD17fTtmb3IodmFyIGE9MDthPG4ubGVuZ3RoO2ErKyl0WyIkIituW2FdXT0hMDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWE9dC5oYXNPd25Qcm9wZXJ0eSgiJCIrZVtuXS52YWx1ZSksZVtuXS5zZWxlY3RlZCE9PWEmJihlW25dLnNlbGVjdGVkPWEpLGEmJnImJihlW25dLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iobj0iIitVbihuKSx0PW51bGwsYT0wO2E8ZS5sZW5ndGg7YSsrKXtpZihlW2FdLnZhbHVlPT09bil7ZVthXS5zZWxlY3RlZD0hMCxyJiYoZVthXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn10IT09bnVsbHx8ZVthXS5kaXNhYmxlZHx8KHQ9ZVthXSl9dCE9PW51bGwmJih0LnNlbGVjdGVkPSEwKX19ZnVuY3Rpb24gY20oZSx0KXtpZih0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIT1udWxsKXRocm93IEVycm9yKEQoOTEpKTtyZXR1cm4gRWUoe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIEpiKGUsdCl7dmFyIG49dC52YWx1ZTtpZihuPT1udWxsKXtpZihuPXQuY2hpbGRyZW4sdD10LmRlZmF1bHRWYWx1ZSxuIT1udWxsKXtpZih0IT1udWxsKXRocm93IEVycm9yKEQoOTIpKTtpZihNYShuKSl7aWYoMTxuLmxlbmd0aCl0aHJvdyBFcnJvcihEKDkzKSk7bj1uWzBdfXQ9bn10PT1udWxsJiYodD0iIiksbj10fWUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOlVuKG4pfX1mdW5jdGlvbiB0UihlLHQpe3ZhciBuPVVuKHQudmFsdWUpLHI9VW4odC5kZWZhdWx0VmFsdWUpO24hPW51bGwmJihuPSIiK24sbiE9PWUudmFsdWUmJihlLnZhbHVlPW4pLHQuZGVmYXVsdFZhbHVlPT1udWxsJiZlLmRlZmF1bHRWYWx1ZSE9PW4mJihlLmRlZmF1bHRWYWx1ZT1uKSksciE9bnVsbCYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpfWZ1bmN0aW9uIGV5KGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJnQhPT0iIiYmdCE9PW51bGwmJihlLnZhbHVlPXQpfWZ1bmN0aW9uIG5SKGUpe3N3aXRjaChlKXtjYXNlInN2ZyI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtjYXNlIm1hdGgiOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjtkZWZhdWx0OnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIn19ZnVuY3Rpb24gZG0oZSx0KXtyZXR1cm4gZT09bnVsbHx8ZT09PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj9uUih0KTplPT09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiYmdD09PSJmb3JlaWduT2JqZWN0Ij8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI6ZX12YXIgWWksclI9ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBNU0FwcDwidSImJk1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uP2Z1bmN0aW9uKHQsbixyLGEpe01TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIGUodCxuLHIsYSl9KX06ZX0oZnVuY3Rpb24oZSx0KXtpZihlLm5hbWVzcGFjZVVSSSE9PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ8fCJpbm5lckhUTUwiaW4gZSllLmlubmVySFRNTD10O2Vsc2V7Zm9yKFlpPVlpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxZaS5pbm5lckhUTUw9Ijxzdmc+Iit0LnZhbHVlT2YoKS50b1N0cmluZygpKyI8L3N2Zz4iLHQ9WWkuZmlyc3RDaGlsZDtlLmZpcnN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKTtmb3IoO3QuZmlyc3RDaGlsZDspZS5hcHBlbmRDaGlsZCh0LmZpcnN0Q2hpbGQpfX0pO2Z1bmN0aW9uIG9pKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmbi5ub2RlVHlwZT09PTMpe24ubm9kZVZhbHVlPXQ7cmV0dXJufX1lLnRleHRDb250ZW50PXR9dmFyIEdhPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxMMD1bIldlYmtpdCIsIm1zIiwiTW96IiwiTyJdO09iamVjdC5rZXlzKEdhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe0wwLmZvckVhY2goZnVuY3Rpb24odCl7dD10K2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zdWJzdHJpbmcoMSksR2FbdF09R2FbZV19KX0pO2Z1bmN0aW9uIGFSKGUsdCxuKXtyZXR1cm4gdD09bnVsbHx8dHlwZW9mIHQ9PSJib29sZWFuInx8dD09PSIiPyIiOm58fHR5cGVvZiB0IT0ibnVtYmVyInx8dD09PTB8fEdhLmhhc093blByb3BlcnR5KGUpJiZHYVtlXT8oIiIrdCkudHJpbSgpOnQrInB4In1mdW5jdGlvbiBpUihlLHQpe2U9ZS5zdHlsZTtmb3IodmFyIG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pKXt2YXIgcj1uLmluZGV4T2YoIi0tIik9PT0wLGE9YVIobix0W25dLHIpO249PT0iZmxvYXQiJiYobj0iY3NzRmxvYXQiKSxyP2Uuc2V0UHJvcGVydHkobixhKTplW25dPWF9fXZhciBEMD1FZSh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtmdW5jdGlvbiBwbShlLHQpe2lmKHQpe2lmKEQwW2VdJiYodC5jaGlsZHJlbiE9bnVsbHx8dC5kYW5nZXJvdXNseVNldElubmVySFRNTCE9bnVsbCkpdGhyb3cgRXJyb3IoRCgxMzcsZSkpO2lmKHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwhPW51bGwpe2lmKHQuY2hpbGRyZW4hPW51bGwpdGhyb3cgRXJyb3IoRCg2MCkpO2lmKHR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIT0ib2JqZWN0Inx8ISgiX19odG1sImluIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKEQoNjEpKX1pZih0LnN0eWxlIT1udWxsJiZ0eXBlb2YgdC5zdHlsZSE9Im9iamVjdCIpdGhyb3cgRXJyb3IoRCg2MikpfX1mdW5jdGlvbiBmbShlLHQpe2lmKGUuaW5kZXhPZigiLSIpPT09LTEpcmV0dXJuIHR5cGVvZiB0LmlzPT0ic3RyaW5nIjtzd2l0Y2goZSl7Y2FzZSJhbm5vdGF0aW9uLXhtbCI6Y2FzZSJjb2xvci1wcm9maWxlIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJmb250LWZhY2Utc3JjIjpjYXNlImZvbnQtZmFjZS11cmkiOmNhc2UiZm9udC1mYWNlLWZvcm1hdCI6Y2FzZSJmb250LWZhY2UtbmFtZSI6Y2FzZSJtaXNzaW5nLWdseXBoIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgbW09bnVsbDtmdW5jdGlvbiBGZyhlKXtyZXR1cm4gZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3csZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksZS5ub2RlVHlwZT09PTM/ZS5wYXJlbnROb2RlOmV9dmFyIGdtPW51bGwsVnI9bnVsbCxIcj1udWxsO2Z1bmN0aW9uIHR5KGUpe2lmKGU9RGkoZSkpe2lmKHR5cGVvZiBnbSE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihEKDI4MCkpO3ZhciB0PWUuc3RhdGVOb2RlO3QmJih0PVRzKHQpLGdtKGUuc3RhdGVOb2RlLGUudHlwZSx0KSl9fWZ1bmN0aW9uIG9SKGUpe1ZyP0hyP0hyLnB1c2goZSk6SHI9W2VdOlZyPWV9ZnVuY3Rpb24gc1IoKXtpZihWcil7dmFyIGU9VnIsdD1IcjtpZihIcj1Wcj1udWxsLHR5KGUpLHQpZm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0eSh0W2VdKX19ZnVuY3Rpb24gbFIoZSx0KXtyZXR1cm4gZSh0KX1mdW5jdGlvbiB1Uigpe312YXIgbmw9ITE7ZnVuY3Rpb24gY1IoZSx0LG4pe2lmKG5sKXJldHVybiBlKHQsbik7bmw9ITA7dHJ5e3JldHVybiBsUihlLHQsbil9ZmluYWxseXtubD0hMSwoVnIhPT1udWxsfHxIciE9PW51bGwpJiYodVIoKSxzUigpKX19ZnVuY3Rpb24gc2koZSx0KXt2YXIgbj1lLnN0YXRlTm9kZTtpZihuPT09bnVsbClyZXR1cm4gbnVsbDt2YXIgcj1UcyhuKTtpZihyPT09bnVsbClyZXR1cm4gbnVsbDtuPXJbdF07ZTpzd2l0Y2godCl7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xpY2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVDbGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURvd25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3ZlQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRW50ZXIiOihyPSFyLmRpc2FibGVkKXx8KGU9ZS50eXBlLHI9IShlPT09ImJ1dHRvbiJ8fGU9PT0iaW5wdXQifHxlPT09InNlbGVjdCJ8fGU9PT0idGV4dGFyZWEiKSksZT0hcjticmVhayBlO2RlZmF1bHQ6ZT0hMX1pZihlKXJldHVybiBudWxsO2lmKG4mJnR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IEVycm9yKEQoMjMxLHQsdHlwZW9mIG4pKTtyZXR1cm4gbn12YXIgaG09ITE7aWYoZm4pdHJ5e3ZhciBTYT17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoU2EsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtobT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsU2EsU2EpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixTYSxTYSl9Y2F0Y2h7aG09ITF9ZnVuY3Rpb24gTTAoZSx0LG4scixhLGksbyxzLGwpe3ZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7dC5hcHBseShuLHUpfWNhdGNoKGMpe3RoaXMub25FcnJvcihjKX19dmFyIHFhPSExLEJvPW51bGwsJG89ITEsYm09bnVsbCxQMD17b25FcnJvcjpmdW5jdGlvbihlKXtxYT0hMCxCbz1lfX07ZnVuY3Rpb24gRjAoZSx0LG4scixhLGksbyxzLGwpe3FhPSExLEJvPW51bGwsTTAuYXBwbHkoUDAsYXJndW1lbnRzKX1mdW5jdGlvbiBVMChlLHQsbixyLGEsaSxvLHMsbCl7aWYoRjAuYXBwbHkodGhpcyxhcmd1bWVudHMpLHFhKXtpZihxYSl7dmFyIHU9Qm87cWE9ITEsQm89bnVsbH1lbHNlIHRocm93IEVycm9yKEQoMTk4KSk7JG98fCgkbz0hMCxibT11KX19ZnVuY3Rpb24gaHIoZSl7dmFyIHQ9ZSxuPWU7aWYoZS5hbHRlcm5hdGUpZm9yKDt0LnJldHVybjspdD10LnJldHVybjtlbHNle2U9dDtkbyB0PWUsdC5mbGFncyY0MDk4JiYobj10LnJldHVybiksZT10LnJldHVybjt3aGlsZShlKX1yZXR1cm4gdC50YWc9PT0zP246bnVsbH1mdW5jdGlvbiBkUihlKXtpZihlLnRhZz09PTEzKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYodD09PW51bGwmJihlPWUuYWx0ZXJuYXRlLGUhPT1udWxsJiYodD1lLm1lbW9pemVkU3RhdGUpKSx0IT09bnVsbClyZXR1cm4gdC5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIG55KGUpe2lmKGhyKGUpIT09ZSl0aHJvdyBFcnJvcihEKDE4OCkpfWZ1bmN0aW9uIEIwKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKCF0KXtpZih0PWhyKGUpLHQ9PT1udWxsKXRocm93IEVycm9yKEQoMTg4KSk7cmV0dXJuIHQhPT1lP251bGw6ZX1mb3IodmFyIG49ZSxyPXQ7Oyl7dmFyIGE9bi5yZXR1cm47aWYoYT09PW51bGwpYnJlYWs7dmFyIGk9YS5hbHRlcm5hdGU7aWYoaT09PW51bGwpe2lmKHI9YS5yZXR1cm4sciE9PW51bGwpe249cjtjb250aW51ZX1icmVha31pZihhLmNoaWxkPT09aS5jaGlsZCl7Zm9yKGk9YS5jaGlsZDtpOyl7aWYoaT09PW4pcmV0dXJuIG55KGEpLGU7aWYoaT09PXIpcmV0dXJuIG55KGEpLHQ7aT1pLnNpYmxpbmd9dGhyb3cgRXJyb3IoRCgxODgpKX1pZihuLnJldHVybiE9PXIucmV0dXJuKW49YSxyPWk7ZWxzZXtmb3IodmFyIG89ITEscz1hLmNoaWxkO3M7KXtpZihzPT09bil7bz0hMCxuPWEscj1pO2JyZWFrfWlmKHM9PT1yKXtvPSEwLHI9YSxuPWk7YnJlYWt9cz1zLnNpYmxpbmd9aWYoIW8pe2ZvcihzPWkuY2hpbGQ7czspe2lmKHM9PT1uKXtvPSEwLG49aSxyPWE7YnJlYWt9aWYocz09PXIpe289ITAscj1pLG49YTticmVha31zPXMuc2libGluZ31pZighbyl0aHJvdyBFcnJvcihEKDE4OSkpfX1pZihuLmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IoRCgxOTApKX1pZihuLnRhZyE9PTMpdGhyb3cgRXJyb3IoRCgxODgpKTtyZXR1cm4gbi5zdGF0ZU5vZGUuY3VycmVudD09PW4/ZTp0fWZ1bmN0aW9uIHBSKGUpe3JldHVybiBlPUIwKGUpLGUhPT1udWxsP2ZSKGUpOm51bGx9ZnVuY3Rpb24gZlIoZSl7aWYoZS50YWc9PT01fHxlLnRhZz09PTYpcmV0dXJuIGU7Zm9yKGU9ZS5jaGlsZDtlIT09bnVsbDspe3ZhciB0PWZSKGUpO2lmKHQhPT1udWxsKXJldHVybiB0O2U9ZS5zaWJsaW5nfXJldHVybiBudWxsfXZhciBtUj1odC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLHJ5PWh0LnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLCQwPWh0LnVuc3RhYmxlX3Nob3VsZFlpZWxkLHowPWh0LnVuc3RhYmxlX3JlcXVlc3RQYWludCxBZT1odC51bnN0YWJsZV9ub3csajA9aHQudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsVWc9aHQudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksZ1I9aHQudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksem89aHQudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksRzA9aHQudW5zdGFibGVfTG93UHJpb3JpdHksaFI9aHQudW5zdGFibGVfSWRsZVByaW9yaXR5LHZzPW51bGwsWnQ9bnVsbDtmdW5jdGlvbiBxMChlKXtpZihadCYmdHlwZW9mIFp0Lm9uQ29tbWl0RmliZXJSb290PT0iZnVuY3Rpb24iKXRyeXtadC5vbkNvbW1pdEZpYmVyUm9vdCh2cyxlLHZvaWQgMCwoZS5jdXJyZW50LmZsYWdzJjEyOCk9PT0xMjgpfWNhdGNoe319dmFyIGp0PU1hdGguY2x6MzI/TWF0aC5jbHozMjpXMCxWMD1NYXRoLmxvZyxIMD1NYXRoLkxOMjtmdW5jdGlvbiBXMChlKXtyZXR1cm4gZT4+Pj0wLGU9PT0wPzMyOjMxLShWMChlKS9IMHwwKXwwfXZhciBLaT02NCxYaT00MTk0MzA0O2Z1bmN0aW9uIFBhKGUpe3N3aXRjaChlJi1lKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gZSY0MTk0MjQwO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuIGUmMTMwMDIzNDI0O2Nhc2UgMTM0MjE3NzI4OnJldHVybiAxMzQyMTc3Mjg7Y2FzZSAyNjg0MzU0NTY6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlIDUzNjg3MDkxMjpyZXR1cm4gNTM2ODcwOTEyO2Nhc2UgMTA3Mzc0MTgyNDpyZXR1cm4gMTA3Mzc0MTgyNDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBqbyhlLHQpe3ZhciBuPWUucGVuZGluZ0xhbmVzO2lmKG49PT0wKXJldHVybiAwO3ZhciByPTAsYT1lLnN1c3BlbmRlZExhbmVzLGk9ZS5waW5nZWRMYW5lcyxvPW4mMjY4NDM1NDU1O2lmKG8hPT0wKXt2YXIgcz1vJn5hO3MhPT0wP3I9UGEocyk6KGkmPW8saSE9PTAmJihyPVBhKGkpKSl9ZWxzZSBvPW4mfmEsbyE9PTA/cj1QYShvKTppIT09MCYmKHI9UGEoaSkpO2lmKHI9PT0wKXJldHVybiAwO2lmKHQhPT0wJiZ0IT09ciYmISh0JmEpJiYoYT1yJi1yLGk9dCYtdCxhPj1pfHxhPT09MTYmJihpJjQxOTQyNDApIT09MCkpcmV0dXJuIHQ7aWYociY0JiYocnw9biYxNiksdD1lLmVudGFuZ2xlZExhbmVzLHQhPT0wKWZvcihlPWUuZW50YW5nbGVtZW50cyx0Jj1yOzA8dDspbj0zMS1qdCh0KSxhPTE8PG4scnw9ZVtuXSx0Jj1+YTtyZXR1cm4gcn1mdW5jdGlvbiBZMChlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gdCsyNTA7Y2FzZSA4OmNhc2UgMTY6Y2FzZSAzMjpjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybi0xO2Nhc2UgMTM0MjE3NzI4OmNhc2UgMjY4NDM1NDU2OmNhc2UgNTM2ODcwOTEyOmNhc2UgMTA3Mzc0MTgyNDpyZXR1cm4tMTtkZWZhdWx0OnJldHVybi0xfX1mdW5jdGlvbiBLMChlLHQpe2Zvcih2YXIgbj1lLnN1c3BlbmRlZExhbmVzLHI9ZS5waW5nZWRMYW5lcyxhPWUuZXhwaXJhdGlvblRpbWVzLGk9ZS5wZW5kaW5nTGFuZXM7MDxpOyl7dmFyIG89MzEtanQoaSkscz0xPDxvLGw9YVtvXTtsPT09LTE/KCEocyZuKXx8cyZyKSYmKGFbb109WTAocyx0KSk6bDw9dCYmKGUuZXhwaXJlZExhbmVzfD1zKSxpJj1+c319ZnVuY3Rpb24geW0oZSl7cmV0dXJuIGU9ZS5wZW5kaW5nTGFuZXMmLTEwNzM3NDE4MjUsZSE9PTA/ZTplJjEwNzM3NDE4MjQ/MTA3Mzc0MTgyNDowfWZ1bmN0aW9uIGJSKCl7dmFyIGU9S2k7cmV0dXJuIEtpPDw9MSwhKEtpJjQxOTQyNDApJiYoS2k9NjQpLGV9ZnVuY3Rpb24gcmwoZSl7Zm9yKHZhciB0PVtdLG49MDszMT5uO24rKyl0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24gT2koZSx0LG4pe2UucGVuZGluZ0xhbmVzfD10LHQhPT01MzY4NzA5MTImJihlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wKSxlPWUuZXZlbnRUaW1lcyx0PTMxLWp0KHQpLGVbdF09bn1mdW5jdGlvbiBYMChlLHQpe3ZhciBuPWUucGVuZGluZ0xhbmVzJn50O2UucGVuZGluZ0xhbmVzPXQsZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLmV4cGlyZWRMYW5lcyY9dCxlLm11dGFibGVSZWFkTGFuZXMmPXQsZS5lbnRhbmdsZWRMYW5lcyY9dCx0PWUuZW50YW5nbGVtZW50czt2YXIgcj1lLmV2ZW50VGltZXM7Zm9yKGU9ZS5leHBpcmF0aW9uVGltZXM7MDxuOyl7dmFyIGE9MzEtanQobiksaT0xPDxhO3RbYV09MCxyW2FdPS0xLGVbYV09LTEsbiY9fml9fWZ1bmN0aW9uIEJnKGUsdCl7dmFyIG49ZS5lbnRhbmdsZWRMYW5lc3w9dDtmb3IoZT1lLmVudGFuZ2xlbWVudHM7bjspe3ZhciByPTMxLWp0KG4pLGE9MTw8cjthJnR8ZVtyXSZ0JiYoZVtyXXw9dCksbiY9fmF9fXZhciBpZT0wO2Z1bmN0aW9uIHlSKGUpe3JldHVybiBlJj0tZSwxPGU/NDxlP2UmMjY4NDM1NDU1PzE2OjUzNjg3MDkxMjo0OjF9dmFyIHZSLCRnLEVSLFNSLHdSLHZtPSExLFppPVtdLEluPW51bGwsTm49bnVsbCxDbj1udWxsLGxpPW5ldyBNYXAsdWk9bmV3IE1hcCxrbj1bXSxaMD0ibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBheShlLHQpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOkluPW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpObj1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0IjpDbj1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6bGkuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6dWkuZGVsZXRlKHQucG9pbnRlcklkKX19ZnVuY3Rpb24gd2EoZSx0LG4scixhLGkpe3JldHVybiBlPT09bnVsbHx8ZS5uYXRpdmVFdmVudCE9PWk/KGU9e2Jsb2NrZWRPbjp0LGRvbUV2ZW50TmFtZTpuLGV2ZW50U3lzdGVtRmxhZ3M6cixuYXRpdmVFdmVudDppLHRhcmdldENvbnRhaW5lcnM6W2FdfSx0IT09bnVsbCYmKHQ9RGkodCksdCE9PW51bGwmJiRnKHQpKSxlKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLHQ9ZS50YXJnZXRDb250YWluZXJzLGEhPT1udWxsJiZ0LmluZGV4T2YoYSk9PT0tMSYmdC5wdXNoKGEpLGUpfWZ1bmN0aW9uIFEwKGUsdCxuLHIsYSl7c3dpdGNoKHQpe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIEluPXdhKEluLGUsdCxuLHIsYSksITA7Y2FzZSJkcmFnZW50ZXIiOnJldHVybiBObj13YShObixlLHQsbixyLGEpLCEwO2Nhc2UibW91c2VvdmVyIjpyZXR1cm4gQ249d2EoQ24sZSx0LG4scixhKSwhMDtjYXNlInBvaW50ZXJvdmVyIjp2YXIgaT1hLnBvaW50ZXJJZDtyZXR1cm4gbGkuc2V0KGksd2EobGkuZ2V0KGkpfHxudWxsLGUsdCxuLHIsYSkpLCEwO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOnJldHVybiBpPWEucG9pbnRlcklkLHVpLnNldChpLHdhKHVpLmdldChpKXx8bnVsbCxlLHQsbixyLGEpKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBUUihlKXt2YXIgdD1ucihlLnRhcmdldCk7aWYodCE9PW51bGwpe3ZhciBuPWhyKHQpO2lmKG4hPT1udWxsKXtpZih0PW4udGFnLHQ9PT0xMyl7aWYodD1kUihuKSx0IT09bnVsbCl7ZS5ibG9ja2VkT249dCx3UihlLnByaW9yaXR5LGZ1bmN0aW9uKCl7RVIobil9KTtyZXR1cm59fWVsc2UgaWYodD09PTMmJm4uc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2UuYmxvY2tlZE9uPW4udGFnPT09Mz9uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBTbyhlKXtpZihlLmJsb2NrZWRPbiE9PW51bGwpcmV0dXJuITE7Zm9yKHZhciB0PWUudGFyZ2V0Q29udGFpbmVyczswPHQubGVuZ3RoOyl7dmFyIG49RW0oZS5kb21FdmVudE5hbWUsZS5ldmVudFN5c3RlbUZsYWdzLHRbMF0sZS5uYXRpdmVFdmVudCk7aWYobj09PW51bGwpe249ZS5uYXRpdmVFdmVudDt2YXIgcj1uZXcgbi5jb25zdHJ1Y3RvcihuLnR5cGUsbik7bW09cixuLnRhcmdldC5kaXNwYXRjaEV2ZW50KHIpLG1tPW51bGx9ZWxzZSByZXR1cm4gdD1EaShuKSx0IT09bnVsbCYmJGcodCksZS5ibG9ja2VkT249biwhMTt0LnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gaXkoZSx0LG4pe1NvKGUpJiZuLmRlbGV0ZSh0KX1mdW5jdGlvbiBKMCgpe3ZtPSExLEluIT09bnVsbCYmU28oSW4pJiYoSW49bnVsbCksTm4hPT1udWxsJiZTbyhObikmJihObj1udWxsKSxDbiE9PW51bGwmJlNvKENuKSYmKENuPW51bGwpLGxpLmZvckVhY2goaXkpLHVpLmZvckVhY2goaXkpfWZ1bmN0aW9uIFRhKGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCx2bXx8KHZtPSEwLGh0LnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soaHQudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksSjApKSl9ZnVuY3Rpb24gY2koZSl7ZnVuY3Rpb24gdChhKXtyZXR1cm4gVGEoYSxlKX1pZigwPFppLmxlbmd0aCl7VGEoWmlbMF0sZSk7Zm9yKHZhciBuPTE7bjxaaS5sZW5ndGg7bisrKXt2YXIgcj1aaVtuXTtyLmJsb2NrZWRPbj09PWUmJihyLmJsb2NrZWRPbj1udWxsKX19Zm9yKEluIT09bnVsbCYmVGEoSW4sZSksTm4hPT1udWxsJiZUYShObixlKSxDbiE9PW51bGwmJlRhKENuLGUpLGxpLmZvckVhY2godCksdWkuZm9yRWFjaCh0KSxuPTA7bjxrbi5sZW5ndGg7bisrKXI9a25bbl0sci5ibG9ja2VkT249PT1lJiYoci5ibG9ja2VkT249bnVsbCk7Zm9yKDswPGtuLmxlbmd0aCYmKG49a25bMF0sbi5ibG9ja2VkT249PT1udWxsKTspVFIobiksbi5ibG9ja2VkT249PT1udWxsJiZrbi5zaGlmdCgpfXZhciBXcj15bi5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxHbz0hMDtmdW5jdGlvbiBlMShlLHQsbixyKXt2YXIgYT1pZSxpPVdyLnRyYW5zaXRpb247V3IudHJhbnNpdGlvbj1udWxsO3RyeXtpZT0xLHpnKGUsdCxuLHIpfWZpbmFsbHl7aWU9YSxXci50cmFuc2l0aW9uPWl9fWZ1bmN0aW9uIHQxKGUsdCxuLHIpe3ZhciBhPWllLGk9V3IudHJhbnNpdGlvbjtXci50cmFuc2l0aW9uPW51bGw7dHJ5e2llPTQsemcoZSx0LG4scil9ZmluYWxseXtpZT1hLFdyLnRyYW5zaXRpb249aX19ZnVuY3Rpb24gemcoZSx0LG4scil7aWYoR28pe3ZhciBhPUVtKGUsdCxuLHIpO2lmKGE9PT1udWxsKWZsKGUsdCxyLHFvLG4pLGF5KGUscik7ZWxzZSBpZihRMChhLGUsdCxuLHIpKXIuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihheShlLHIpLHQmNCYmLTE8WjAuaW5kZXhPZihlKSl7Zm9yKDthIT09bnVsbDspe3ZhciBpPURpKGEpO2lmKGkhPT1udWxsJiZ2UihpKSxpPUVtKGUsdCxuLHIpLGk9PT1udWxsJiZmbChlLHQscixxbyxuKSxpPT09YSlicmVhazthPWl9YSE9PW51bGwmJnIuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBmbChlLHQscixudWxsLG4pfX12YXIgcW89bnVsbDtmdW5jdGlvbiBFbShlLHQsbixyKXtpZihxbz1udWxsLGU9RmcociksZT1ucihlKSxlIT09bnVsbClpZih0PWhyKGUpLHQ9PT1udWxsKWU9bnVsbDtlbHNlIGlmKG49dC50YWcsbj09PTEzKXtpZihlPWRSKHQpLGUhPT1udWxsKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKG49PT0zKXtpZih0LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiB0LnRhZz09PTM/dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2U9bnVsbH1lbHNlIHQhPT1lJiYoZT1udWxsKTtyZXR1cm4gcW89ZSxudWxsfWZ1bmN0aW9uIGtSKGUpe3N3aXRjaChlKXtjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6Y2FzZSJyZXNldCI6Y2FzZSJyZXNpemUiOmNhc2Uic2Vla2VkIjpjYXNlInN1Ym1pdCI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDE7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b2dnbGUiOmNhc2UidG91Y2htb3ZlIjpjYXNlIndoZWVsIjpjYXNlIm1vdXNlZW50ZXIiOmNhc2UibW91c2VsZWF2ZSI6Y2FzZSJwb2ludGVyZW50ZXIiOmNhc2UicG9pbnRlcmxlYXZlIjpyZXR1cm4gNDtjYXNlIm1lc3NhZ2UiOnN3aXRjaChqMCgpKXtjYXNlIFVnOnJldHVybiAxO2Nhc2UgZ1I6cmV0dXJuIDQ7Y2FzZSB6bzpjYXNlIEcwOnJldHVybiAxNjtjYXNlIGhSOnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciB4bj1udWxsLGpnPW51bGwsd289bnVsbDtmdW5jdGlvbiBBUigpe2lmKHdvKXJldHVybiB3bzt2YXIgZSx0PWpnLG49dC5sZW5ndGgscixhPSJ2YWx1ZSJpbiB4bj94bi52YWx1ZTp4bi50ZXh0Q29udGVudCxpPWEubGVuZ3RoO2ZvcihlPTA7ZTxuJiZ0W2VdPT09YVtlXTtlKyspO3ZhciBvPW4tZTtmb3Iocj0xO3I8PW8mJnRbbi1yXT09PWFbaS1yXTtyKyspO3JldHVybiB3bz1hLnNsaWNlKGUsMTxyPzEtcjp2b2lkIDApfWZ1bmN0aW9uIFRvKGUpe3ZhciB0PWUua2V5Q29kZTtyZXR1cm4iY2hhckNvZGUiaW4gZT8oZT1lLmNoYXJDb2RlLGU9PT0wJiZ0PT09MTMmJihlPTEzKSk6ZT10LGU9PT0xMCYmKGU9MTMpLDMyPD1lfHxlPT09MTM/ZTowfWZ1bmN0aW9uIFFpKCl7cmV0dXJuITB9ZnVuY3Rpb24gb3koKXtyZXR1cm4hMX1mdW5jdGlvbiB2dChlKXtmdW5jdGlvbiB0KG4scixhLGksbyl7dGhpcy5fcmVhY3ROYW1lPW4sdGhpcy5fdGFyZ2V0SW5zdD1hLHRoaXMudHlwZT1yLHRoaXMubmF0aXZlRXZlbnQ9aSx0aGlzLnRhcmdldD1vLHRoaXMuY3VycmVudFRhcmdldD1udWxsO2Zvcih2YXIgcyBpbiBlKWUuaGFzT3duUHJvcGVydHkocykmJihuPWVbc10sdGhpc1tzXT1uP24oaSk6aVtzXSk7cmV0dXJuIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPShpLmRlZmF1bHRQcmV2ZW50ZWQhPW51bGw/aS5kZWZhdWx0UHJldmVudGVkOmkucmV0dXJuVmFsdWU9PT0hMSk/UWk6b3ksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1veSx0aGlzfXJldHVybiBFZSh0LnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIG49dGhpcy5uYXRpdmVFdmVudDtuJiYobi5wcmV2ZW50RGVmYXVsdD9uLnByZXZlbnREZWZhdWx0KCk6dHlwZW9mIG4ucmV0dXJuVmFsdWUhPSJ1bmtub3duIiYmKG4ucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPVFpKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIG49dGhpcy5uYXRpdmVFdmVudDtuJiYobi5zdG9wUHJvcGFnYXRpb24/bi5zdG9wUHJvcGFnYXRpb24oKTp0eXBlb2Ygbi5jYW5jZWxCdWJibGUhPSJ1bmtub3duIiYmKG4uY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPVFpKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OlFpfSksdH12YXIgY2E9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sR2c9dnQoY2EpLExpPUVlKHt9LGNhLHt2aWV3OjAsZGV0YWlsOjB9KSxuMT12dChMaSksYWwsaWwsa2EsRXM9RWUoe30sTGkse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6cWcsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVsYXRlZFRhcmdldD09PXZvaWQgMD9lLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQ6ZS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7cmV0dXJuIm1vdmVtZW50WCJpbiBlP2UubW92ZW1lbnRYOihlIT09a2EmJihrYSYmZS50eXBlPT09Im1vdXNlbW92ZSI/KGFsPWUuc2NyZWVuWC1rYS5zY3JlZW5YLGlsPWUuc2NyZWVuWS1rYS5zY3JlZW5ZKTppbD1hbD0wLGthPWUpLGFsKX0sbW92ZW1lbnRZOmZ1bmN0aW9uKGUpe3JldHVybiJtb3ZlbWVudFkiaW4gZT9lLm1vdmVtZW50WTppbH19KSxzeT12dChFcykscjE9RWUoe30sRXMse2RhdGFUcmFuc2ZlcjowfSksYTE9dnQocjEpLGkxPUVlKHt9LExpLHtyZWxhdGVkVGFyZ2V0OjB9KSxvbD12dChpMSksbzE9RWUoe30sY2Ese2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLHMxPXZ0KG8xKSxsMT1FZSh7fSxjYSx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4iY2xpcGJvYXJkRGF0YSJpbiBlP2UuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSx1MT12dChsMSksYzE9RWUoe30sY2Ese2RhdGE6MH0pLGx5PXZ0KGMxKSxkMT17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0scDE9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxmMT17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIG0xKGUpe3ZhciB0PXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIHQuZ2V0TW9kaWZpZXJTdGF0ZT90LmdldE1vZGlmaWVyU3RhdGUoZSk6KGU9ZjFbZV0pPyEhdFtlXTohMX1mdW5jdGlvbiBxZygpe3JldHVybiBtMX12YXIgZzE9RWUoe30sTGkse2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIHQ9ZDFbZS5rZXldfHxlLmtleTtpZih0IT09IlVuaWRlbnRpZmllZCIpcmV0dXJuIHR9cmV0dXJuIGUudHlwZT09PSJrZXlwcmVzcyI/KGU9VG8oZSksZT09PTEzPyJFbnRlciI6U3RyaW5nLmZyb21DaGFyQ29kZShlKSk6ZS50eXBlPT09ImtleWRvd24ifHxlLnR5cGU9PT0ia2V5dXAiP3AxW2Uua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTpxZyxjaGFyQ29kZTpmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09ImtleXByZXNzIj9UbyhlKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0ia2V5ZG93biJ8fGUudHlwZT09PSJrZXl1cCI/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0ia2V5cHJlc3MiP1RvKGUpOmUudHlwZT09PSJrZXlkb3duInx8ZS50eXBlPT09ImtleXVwIj9lLmtleUNvZGU6MH19KSxoMT12dChnMSksYjE9RWUoe30sRXMse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSksdXk9dnQoYjEpLHkxPUVlKHt9LExpLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6cWd9KSx2MT12dCh5MSksRTE9RWUoe30sY2Ese3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksUzE9dnQoRTEpLHcxPUVlKHt9LEVzLHtkZWx0YVg6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWCJpbiBlP2UuZGVsdGFYOiJ3aGVlbERlbHRhWCJpbiBlPy1lLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFZImluIGU/ZS5kZWx0YVk6IndoZWVsRGVsdGFZImluIGU/LWUud2hlZWxEZWx0YVk6IndoZWVsRGVsdGEiaW4gZT8tZS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSksVDE9dnQodzEpLGsxPVs5LDEzLDI3LDMyXSxWZz1mbiYmIkNvbXBvc2l0aW9uRXZlbnQiaW4gd2luZG93LFZhPW51bGw7Zm4mJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJihWYT1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciBBMT1mbiYmIlRleHRFdmVudCJpbiB3aW5kb3cmJiFWYSx4Uj1mbiYmKCFWZ3x8VmEmJjg8VmEmJjExPj1WYSksY3k9IiAiLGR5PSExO2Z1bmN0aW9uIFJSKGUsdCl7c3dpdGNoKGUpe2Nhc2Uia2V5dXAiOnJldHVybiBrMS5pbmRleE9mKHQua2V5Q29kZSkhPT0tMTtjYXNlImtleWRvd24iOnJldHVybiB0LmtleUNvZGUhPT0yMjk7Y2FzZSJrZXlwcmVzcyI6Y2FzZSJtb3VzZWRvd24iOmNhc2UiZm9jdXNvdXQiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIF9SKGUpe3JldHVybiBlPWUuZGV0YWlsLHR5cGVvZiBlPT0ib2JqZWN0IiYmImRhdGEiaW4gZT9lLmRhdGE6bnVsbH12YXIgX3I9ITE7ZnVuY3Rpb24geDEoZSx0KXtzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIF9SKHQpO2Nhc2Uia2V5cHJlc3MiOnJldHVybiB0LndoaWNoIT09MzI/bnVsbDooZHk9ITAsY3kpO2Nhc2UidGV4dElucHV0IjpyZXR1cm4gZT10LmRhdGEsZT09PWN5JiZkeT9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gUjEoZSx0KXtpZihfcilyZXR1cm4gZT09PSJjb21wb3NpdGlvbmVuZCJ8fCFWZyYmUlIoZSx0KT8oZT1BUigpLHdvPWpnPXhuPW51bGwsX3I9ITEsZSk6bnVsbDtzd2l0Y2goZSl7Y2FzZSJwYXN0ZSI6cmV0dXJuIG51bGw7Y2FzZSJrZXlwcmVzcyI6aWYoISh0LmN0cmxLZXl8fHQuYWx0S2V5fHx0Lm1ldGFLZXkpfHx0LmN0cmxLZXkmJnQuYWx0S2V5KXtpZih0LmNoYXImJjE8dC5jaGFyLmxlbmd0aClyZXR1cm4gdC5jaGFyO2lmKHQud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIHhSJiZ0LmxvY2FsZSE9PSJrbyI/bnVsbDp0LmRhdGE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIF8xPXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLCJkYXRldGltZS1sb2NhbCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBweShlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ9PT0iaW5wdXQiPyEhXzFbZS50eXBlXTp0PT09InRleHRhcmVhIn1mdW5jdGlvbiBJUihlLHQsbixyKXtvUihyKSx0PVZvKHQsIm9uQ2hhbmdlIiksMDx0Lmxlbmd0aCYmKG49bmV3IEdnKCJvbkNoYW5nZSIsImNoYW5nZSIsbnVsbCxuLHIpLGUucHVzaCh7ZXZlbnQ6bixsaXN0ZW5lcnM6dH0pKX12YXIgSGE9bnVsbCxkaT1udWxsO2Z1bmN0aW9uIEkxKGUpeyRSKGUsMCl9ZnVuY3Rpb24gU3MoZSl7dmFyIHQ9Q3IoZSk7aWYoSngodCkpcmV0dXJuIGV9ZnVuY3Rpb24gTjEoZSx0KXtpZihlPT09ImNoYW5nZSIpcmV0dXJuIHR9dmFyIE5SPSExO2lmKGZuKXt2YXIgc2w7aWYoZm4pe3ZhciBsbD0ib25pbnB1dCJpbiBkb2N1bWVudDtpZighbGwpe3ZhciBmeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmeS5zZXRBdHRyaWJ1dGUoIm9uaW5wdXQiLCJyZXR1cm47IiksbGw9dHlwZW9mIGZ5Lm9uaW5wdXQ9PSJmdW5jdGlvbiJ9c2w9bGx9ZWxzZSBzbD0hMTtOUj1zbCYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBteSgpe0hhJiYoSGEuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLENSKSxkaT1IYT1udWxsKX1mdW5jdGlvbiBDUihlKXtpZihlLnByb3BlcnR5TmFtZT09PSJ2YWx1ZSImJlNzKGRpKSl7dmFyIHQ9W107SVIodCxkaSxlLEZnKGUpKSxjUihJMSx0KX19ZnVuY3Rpb24gQzEoZSx0LG4pe2U9PT0iZm9jdXNpbiI/KG15KCksSGE9dCxkaT1uLEhhLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixDUikpOmU9PT0iZm9jdXNvdXQiJiZteSgpfWZ1bmN0aW9uIE8xKGUpe2lmKGU9PT0ic2VsZWN0aW9uY2hhbmdlInx8ZT09PSJrZXl1cCJ8fGU9PT0ia2V5ZG93biIpcmV0dXJuIFNzKGRpKX1mdW5jdGlvbiBMMShlLHQpe2lmKGU9PT0iY2xpY2siKXJldHVybiBTcyh0KX1mdW5jdGlvbiBEMShlLHQpe2lmKGU9PT0iaW5wdXQifHxlPT09ImNoYW5nZSIpcmV0dXJuIFNzKHQpfWZ1bmN0aW9uIE0xKGUsdCl7cmV0dXJuIGU9PT10JiYoZSE9PTB8fDEvZT09PTEvdCl8fGUhPT1lJiZ0IT09dH12YXIgcXQ9dHlwZW9mIE9iamVjdC5pcz09ImZ1bmN0aW9uIj9PYmplY3QuaXM6TTE7ZnVuY3Rpb24gcGkoZSx0KXtpZihxdChlLHQpKXJldHVybiEwO2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09PW51bGwpcmV0dXJuITE7dmFyIG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBhPW5bcl07aWYoIW5tLmNhbGwodCxhKXx8IXF0KGVbYV0sdFthXSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZ3koZSl7Zm9yKDtlJiZlLmZpcnN0Q2hpbGQ7KWU9ZS5maXJzdENoaWxkO3JldHVybiBlfWZ1bmN0aW9uIGh5KGUsdCl7dmFyIG49Z3koZSk7ZT0wO2Zvcih2YXIgcjtuOyl7aWYobi5ub2RlVHlwZT09PTMpe2lmKHI9ZStuLnRleHRDb250ZW50Lmxlbmd0aCxlPD10JiZyPj10KXJldHVybntub2RlOm4sb2Zmc2V0OnQtZX07ZT1yfWU6e2Zvcig7bjspe2lmKG4ubmV4dFNpYmxpbmcpe249bi5uZXh0U2libGluZzticmVhayBlfW49bi5wYXJlbnROb2RlfW49dm9pZCAwfW49Z3kobil9fWZ1bmN0aW9uIE9SKGUsdCl7cmV0dXJuIGUmJnQ/ZT09PXQ/ITA6ZSYmZS5ub2RlVHlwZT09PTM/ITE6dCYmdC5ub2RlVHlwZT09PTM/T1IoZSx0LnBhcmVudE5vZGUpOiJjb250YWlucyJpbiBlP2UuY29udGFpbnModCk6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8hIShlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJjE2KTohMTohMX1mdW5jdGlvbiBMUigpe2Zvcih2YXIgZT13aW5kb3csdD1VbygpO3QgaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBuPXR5cGVvZiB0LmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZj09InN0cmluZyJ9Y2F0Y2h7bj0hMX1pZihuKWU9dC5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7dD1VbyhlLmRvY3VtZW50KX1yZXR1cm4gdH1mdW5jdGlvbiBIZyhlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQmJih0PT09ImlucHV0IiYmKGUudHlwZT09PSJ0ZXh0Inx8ZS50eXBlPT09InNlYXJjaCJ8fGUudHlwZT09PSJ0ZWwifHxlLnR5cGU9PT0idXJsInx8ZS50eXBlPT09InBhc3N3b3JkIil8fHQ9PT0idGV4dGFyZWEifHxlLmNvbnRlbnRFZGl0YWJsZT09PSJ0cnVlIil9ZnVuY3Rpb24gUDEoZSl7dmFyIHQ9TFIoKSxuPWUuZm9jdXNlZEVsZW0scj1lLnNlbGVjdGlvblJhbmdlO2lmKHQhPT1uJiZuJiZuLm93bmVyRG9jdW1lbnQmJk9SKG4ub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbikpe2lmKHIhPT1udWxsJiZIZyhuKSl7aWYodD1yLnN0YXJ0LGU9ci5lbmQsZT09PXZvaWQgMCYmKGU9dCksInNlbGVjdGlvblN0YXJ0ImluIG4pbi5zZWxlY3Rpb25TdGFydD10LG4uc2VsZWN0aW9uRW5kPU1hdGgubWluKGUsbi52YWx1ZS5sZW5ndGgpO2Vsc2UgaWYoZT0odD1uLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KSYmdC5kZWZhdWx0Vmlld3x8d2luZG93LGUuZ2V0U2VsZWN0aW9uKXtlPWUuZ2V0U2VsZWN0aW9uKCk7dmFyIGE9bi50ZXh0Q29udGVudC5sZW5ndGgsaT1NYXRoLm1pbihyLnN0YXJ0LGEpO3I9ci5lbmQ9PT12b2lkIDA/aTpNYXRoLm1pbihyLmVuZCxhKSwhZS5leHRlbmQmJmk+ciYmKGE9cixyPWksaT1hKSxhPWh5KG4saSk7dmFyIG89aHkobixyKTthJiZvJiYoZS5yYW5nZUNvdW50IT09MXx8ZS5hbmNob3JOb2RlIT09YS5ub2RlfHxlLmFuY2hvck9mZnNldCE9PWEub2Zmc2V0fHxlLmZvY3VzTm9kZSE9PW8ubm9kZXx8ZS5mb2N1c09mZnNldCE9PW8ub2Zmc2V0KSYmKHQ9dC5jcmVhdGVSYW5nZSgpLHQuc2V0U3RhcnQoYS5ub2RlLGEub2Zmc2V0KSxlLnJlbW92ZUFsbFJhbmdlcygpLGk+cj8oZS5hZGRSYW5nZSh0KSxlLmV4dGVuZChvLm5vZGUsby5vZmZzZXQpKToodC5zZXRFbmQoby5ub2RlLG8ub2Zmc2V0KSxlLmFkZFJhbmdlKHQpKSl9fWZvcih0PVtdLGU9bjtlPWUucGFyZW50Tm9kZTspZS5ub2RlVHlwZT09PTEmJnQucHVzaCh7ZWxlbWVudDplLGxlZnQ6ZS5zY3JvbGxMZWZ0LHRvcDplLnNjcm9sbFRvcH0pO2Zvcih0eXBlb2Ygbi5mb2N1cz09ImZ1bmN0aW9uIiYmbi5mb2N1cygpLG49MDtuPHQubGVuZ3RoO24rKyllPXRbbl0sZS5lbGVtZW50LnNjcm9sbExlZnQ9ZS5sZWZ0LGUuZWxlbWVudC5zY3JvbGxUb3A9ZS50b3B9fXZhciBGMT1mbiYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxJcj1udWxsLFNtPW51bGwsV2E9bnVsbCx3bT0hMTtmdW5jdGlvbiBieShlLHQsbil7dmFyIHI9bi53aW5kb3c9PT1uP24uZG9jdW1lbnQ6bi5ub2RlVHlwZT09PTk/bjpuLm93bmVyRG9jdW1lbnQ7d218fElyPT1udWxsfHxJciE9PVVvKHIpfHwocj1Jciwic2VsZWN0aW9uU3RhcnQiaW4gciYmSGcocik/cj17c3RhcnQ6ci5zZWxlY3Rpb25TdGFydCxlbmQ6ci5zZWxlY3Rpb25FbmR9OihyPShyLm93bmVyRG9jdW1lbnQmJnIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxyPXthbmNob3JOb2RlOnIuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ci5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOnIuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OnIuZm9jdXNPZmZzZXR9KSxXYSYmcGkoV2Escil8fChXYT1yLHI9Vm8oU20sIm9uU2VsZWN0IiksMDxyLmxlbmd0aCYmKHQ9bmV3IEdnKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCx0LG4pLGUucHVzaCh7ZXZlbnQ6dCxsaXN0ZW5lcnM6cn0pLHQudGFyZ2V0PUlyKSkpfWZ1bmN0aW9uIEppKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksblsiV2Via2l0IitlXT0id2Via2l0Iit0LG5bIk1veiIrZV09Im1veiIrdCxufXZhciBOcj17YW5pbWF0aW9uZW5kOkppKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246SmkoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OkppKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25lbmQ6SmkoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LHVsPXt9LERSPXt9O2ZuJiYoRFI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsIkFuaW1hdGlvbkV2ZW50ImluIHdpbmRvd3x8KGRlbGV0ZSBOci5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBOci5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBOci5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLCJUcmFuc2l0aW9uRXZlbnQiaW4gd2luZG93fHxkZWxldGUgTnIudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtmdW5jdGlvbiB3cyhlKXtpZih1bFtlXSlyZXR1cm4gdWxbZV07aWYoIU5yW2VdKXJldHVybiBlO3ZhciB0PU5yW2VdLG47Zm9yKG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pJiZuIGluIERSKXJldHVybiB1bFtlXT10W25dO3JldHVybiBlfXZhciBNUj13cygiYW5pbWF0aW9uZW5kIiksUFI9d3MoImFuaW1hdGlvbml0ZXJhdGlvbiIpLEZSPXdzKCJhbmltYXRpb25zdGFydCIpLFVSPXdzKCJ0cmFuc2l0aW9uZW5kIiksQlI9bmV3IE1hcCx5eT0iYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWwiLnNwbGl0KCIgIik7ZnVuY3Rpb24gam4oZSx0KXtCUi5zZXQoZSx0KSxncih0LFtlXSl9Zm9yKHZhciBjbD0wO2NsPHl5Lmxlbmd0aDtjbCsrKXt2YXIgZGw9eXlbY2xdLFUxPWRsLnRvTG93ZXJDYXNlKCksQjE9ZGxbMF0udG9VcHBlckNhc2UoKStkbC5zbGljZSgxKTtqbihVMSwib24iK0IxKX1qbihNUiwib25BbmltYXRpb25FbmQiKTtqbihQUiwib25BbmltYXRpb25JdGVyYXRpb24iKTtqbihGUiwib25BbmltYXRpb25TdGFydCIpO2puKCJkYmxjbGljayIsIm9uRG91YmxlQ2xpY2siKTtqbigiZm9jdXNpbiIsIm9uRm9jdXMiKTtqbigiZm9jdXNvdXQiLCJvbkJsdXIiKTtqbihVUiwib25UcmFuc2l0aW9uRW5kIik7UXIoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKTtRcigib25Nb3VzZUxlYXZlIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pO1FyKCJvblBvaW50ZXJFbnRlciIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSk7UXIoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKTtncigib25DaGFuZ2UiLCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSk7Z3IoIm9uU2VsZWN0IiwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKTtncigib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSk7Z3IoIm9uQ29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSk7Z3IoIm9uQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO2dyKCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO3ZhciBGYT0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIiksJDE9bmV3IFNldCgiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdChGYSkpO2Z1bmN0aW9uIHZ5KGUsdCxuKXt2YXIgcj1lLnR5cGV8fCJ1bmtub3duLWV2ZW50IjtlLmN1cnJlbnRUYXJnZXQ9bixVMChyLHQsdm9pZCAwLGUpLGUuY3VycmVudFRhcmdldD1udWxsfWZ1bmN0aW9uICRSKGUsdCl7dD0odCY0KSE9PTA7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl0sYT1yLmV2ZW50O3I9ci5saXN0ZW5lcnM7ZTp7dmFyIGk9dm9pZCAwO2lmKHQpZm9yKHZhciBvPXIubGVuZ3RoLTE7MDw9bztvLS0pe3ZhciBzPXJbb10sbD1zLmluc3RhbmNlLHU9cy5jdXJyZW50VGFyZ2V0O2lmKHM9cy5saXN0ZW5lcixsIT09aSYmYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7dnkoYSxzLHUpLGk9bH1lbHNlIGZvcihvPTA7bzxyLmxlbmd0aDtvKyspe2lmKHM9cltvXSxsPXMuaW5zdGFuY2UsdT1zLmN1cnJlbnRUYXJnZXQscz1zLmxpc3RlbmVyLGwhPT1pJiZhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTt2eShhLHMsdSksaT1sfX19aWYoJG8pdGhyb3cgZT1ibSwkbz0hMSxibT1udWxsLGV9ZnVuY3Rpb24gcGUoZSx0KXt2YXIgbj10W1JtXTtuPT09dm9pZCAwJiYobj10W1JtXT1uZXcgU2V0KTt2YXIgcj1lKyJfX2J1YmJsZSI7bi5oYXMocil8fCh6Uih0LGUsMiwhMSksbi5hZGQocikpfWZ1bmN0aW9uIHBsKGUsdCxuKXt2YXIgcj0wO3QmJihyfD00KSx6UihuLGUscix0KX12YXIgZW89Il9yZWFjdExpc3RlbmluZyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gZmkoZSl7aWYoIWVbZW9dKXtlW2VvXT0hMCxZeC5mb3JFYWNoKGZ1bmN0aW9uKG4pe24hPT0ic2VsZWN0aW9uY2hhbmdlIiYmKCQxLmhhcyhuKXx8cGwobiwhMSxlKSxwbChuLCEwLGUpKX0pO3ZhciB0PWUubm9kZVR5cGU9PT05P2U6ZS5vd25lckRvY3VtZW50O3Q9PT1udWxsfHx0W2VvXXx8KHRbZW9dPSEwLHBsKCJzZWxlY3Rpb25jaGFuZ2UiLCExLHQpKX19ZnVuY3Rpb24gelIoZSx0LG4scil7c3dpdGNoKGtSKHQpKXtjYXNlIDE6dmFyIGE9ZTE7YnJlYWs7Y2FzZSA0OmE9dDE7YnJlYWs7ZGVmYXVsdDphPXpnfW49YS5iaW5kKG51bGwsdCxuLGUpLGE9dm9pZCAwLCFobXx8dCE9PSJ0b3VjaHN0YXJ0IiYmdCE9PSJ0b3VjaG1vdmUiJiZ0IT09IndoZWVsInx8KGE9ITApLHI/YSE9PXZvaWQgMD9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLHtjYXB0dXJlOiEwLHBhc3NpdmU6YX0pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sITApOmEhPT12b2lkIDA/ZS5hZGRFdmVudExpc3RlbmVyKHQsbix7cGFzc2l2ZTphfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMSl9ZnVuY3Rpb24gZmwoZSx0LG4scixhKXt2YXIgaT1yO2lmKCEodCYxKSYmISh0JjIpJiZyIT09bnVsbCllOmZvcig7Oyl7aWYocj09PW51bGwpcmV0dXJuO3ZhciBvPXIudGFnO2lmKG89PT0zfHxvPT09NCl7dmFyIHM9ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihzPT09YXx8cy5ub2RlVHlwZT09PTgmJnMucGFyZW50Tm9kZT09PWEpYnJlYWs7aWYobz09PTQpZm9yKG89ci5yZXR1cm47byE9PW51bGw7KXt2YXIgbD1vLnRhZztpZigobD09PTN8fGw9PT00KSYmKGw9by5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxsPT09YXx8bC5ub2RlVHlwZT09PTgmJmwucGFyZW50Tm9kZT09PWEpKXJldHVybjtvPW8ucmV0dXJufWZvcig7cyE9PW51bGw7KXtpZihvPW5yKHMpLG89PT1udWxsKXJldHVybjtpZihsPW8udGFnLGw9PT01fHxsPT09Nil7cj1pPW87Y29udGludWUgZX1zPXMucGFyZW50Tm9kZX19cj1yLnJldHVybn1jUihmdW5jdGlvbigpe3ZhciB1PWksYz1GZyhuKSxkPVtdO2U6e3ZhciBwPUJSLmdldChlKTtpZihwIT09dm9pZCAwKXt2YXIgZj1HZyx5PWU7c3dpdGNoKGUpe2Nhc2Uia2V5cHJlc3MiOmlmKFRvKG4pPT09MClicmVhayBlO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6Zj1oMTticmVhaztjYXNlImZvY3VzaW4iOnk9ImZvY3VzIixmPW9sO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOnk9ImJsdXIiLGY9b2w7YnJlYWs7Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6Zj1vbDticmVhaztjYXNlImNsaWNrIjppZihuLmJ1dHRvbj09PTIpYnJlYWsgZTtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOmY9c3k7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6Zj1hMTticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjpmPXYxO2JyZWFrO2Nhc2UgTVI6Y2FzZSBQUjpjYXNlIEZSOmY9czE7YnJlYWs7Y2FzZSBVUjpmPVMxO2JyZWFrO2Nhc2Uic2Nyb2xsIjpmPW4xO2JyZWFrO2Nhc2Uid2hlZWwiOmY9VDE7YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6Zj11MTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjpmPXV5fXZhciBiPSh0JjQpIT09MCxBPSFiJiZlPT09InNjcm9sbCIsaD1iP3AhPT1udWxsP3ArIkNhcHR1cmUiOm51bGw6cDtiPVtdO2Zvcih2YXIgbT11LGc7bSE9PW51bGw7KXtnPW07dmFyIEU9Zy5zdGF0ZU5vZGU7aWYoZy50YWc9PT01JiZFIT09bnVsbCYmKGc9RSxoIT09bnVsbCYmKEU9c2kobSxoKSxFIT1udWxsJiZiLnB1c2gobWkobSxFLGcpKSkpLEEpYnJlYWs7bT1tLnJldHVybn0wPGIubGVuZ3RoJiYocD1uZXcgZihwLHksbnVsbCxuLGMpLGQucHVzaCh7ZXZlbnQ6cCxsaXN0ZW5lcnM6Yn0pKX19aWYoISh0JjcpKXtlOntpZihwPWU9PT0ibW91c2VvdmVyInx8ZT09PSJwb2ludGVyb3ZlciIsZj1lPT09Im1vdXNlb3V0Inx8ZT09PSJwb2ludGVyb3V0IixwJiZuIT09bW0mJih5PW4ucmVsYXRlZFRhcmdldHx8bi5mcm9tRWxlbWVudCkmJihucih5KXx8eVttbl0pKWJyZWFrIGU7aWYoKGZ8fHApJiYocD1jLndpbmRvdz09PWM/YzoocD1jLm93bmVyRG9jdW1lbnQpP3AuZGVmYXVsdFZpZXd8fHAucGFyZW50V2luZG93OndpbmRvdyxmPyh5PW4ucmVsYXRlZFRhcmdldHx8bi50b0VsZW1lbnQsZj11LHk9eT9ucih5KTpudWxsLHkhPT1udWxsJiYoQT1ocih5KSx5IT09QXx8eS50YWchPT01JiZ5LnRhZyE9PTYpJiYoeT1udWxsKSk6KGY9bnVsbCx5PXUpLGYhPT15KSl7aWYoYj1zeSxFPSJvbk1vdXNlTGVhdmUiLGg9Im9uTW91c2VFbnRlciIsbT0ibW91c2UiLChlPT09InBvaW50ZXJvdXQifHxlPT09InBvaW50ZXJvdmVyIikmJihiPXV5LEU9Im9uUG9pbnRlckxlYXZlIixoPSJvblBvaW50ZXJFbnRlciIsbT0icG9pbnRlciIpLEE9Zj09bnVsbD9wOkNyKGYpLGc9eT09bnVsbD9wOkNyKHkpLHA9bmV3IGIoRSxtKyJsZWF2ZSIsZixuLGMpLHAudGFyZ2V0PUEscC5yZWxhdGVkVGFyZ2V0PWcsRT1udWxsLG5yKGMpPT09dSYmKGI9bmV3IGIoaCxtKyJlbnRlciIseSxuLGMpLGIudGFyZ2V0PWcsYi5yZWxhdGVkVGFyZ2V0PUEsRT1iKSxBPUUsZiYmeSl0Ontmb3IoYj1mLGg9eSxtPTAsZz1iO2c7Zz13cihnKSltKys7Zm9yKGc9MCxFPWg7RTtFPXdyKEUpKWcrKztmb3IoOzA8bS1nOyliPXdyKGIpLG0tLTtmb3IoOzA8Zy1tOyloPXdyKGgpLGctLTtmb3IoO20tLTspe2lmKGI9PT1ofHxoIT09bnVsbCYmYj09PWguYWx0ZXJuYXRlKWJyZWFrIHQ7Yj13cihiKSxoPXdyKGgpfWI9bnVsbH1lbHNlIGI9bnVsbDtmIT09bnVsbCYmRXkoZCxwLGYsYiwhMSkseSE9PW51bGwmJkEhPT1udWxsJiZFeShkLEEseSxiLCEwKX19ZTp7aWYocD11P0NyKHUpOndpbmRvdyxmPXAubm9kZU5hbWUmJnAubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxmPT09InNlbGVjdCJ8fGY9PT0iaW5wdXQiJiZwLnR5cGU9PT0iZmlsZSIpdmFyIFQ9TjE7ZWxzZSBpZihweShwKSlpZihOUilUPUQxO2Vsc2V7VD1PMTt2YXIgdj1DMX1lbHNlKGY9cC5ub2RlTmFtZSkmJmYudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJihwLnR5cGU9PT0iY2hlY2tib3gifHxwLnR5cGU9PT0icmFkaW8iKSYmKFQ9TDEpO2lmKFQmJihUPVQoZSx1KSkpe0lSKGQsVCxuLGMpO2JyZWFrIGV9diYmdihlLHAsdSksZT09PSJmb2N1c291dCImJih2PXAuX3dyYXBwZXJTdGF0ZSkmJnYuY29udHJvbGxlZCYmcC50eXBlPT09Im51bWJlciImJnVtKHAsIm51bWJlciIscC52YWx1ZSl9c3dpdGNoKHY9dT9Dcih1KTp3aW5kb3csZSl7Y2FzZSJmb2N1c2luIjoocHkodil8fHYuY29udGVudEVkaXRhYmxlPT09InRydWUiKSYmKElyPXYsU209dSxXYT1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0IjpXYT1TbT1Jcj1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp3bT0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6d209ITEsYnkoZCxuLGMpO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihGMSlicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmJ5KGQsbixjKX12YXIgUjtpZihWZyllOntzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgXz0ib25Db21wb3NpdGlvblN0YXJ0IjticmVhayBlO2Nhc2UiY29tcG9zaXRpb25lbmQiOl89Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Xz0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgZX1fPXZvaWQgMH1lbHNlIF9yP1JSKGUsbikmJihfPSJvbkNvbXBvc2l0aW9uRW5kIik6ZT09PSJrZXlkb3duIiYmbi5rZXlDb2RlPT09MjI5JiYoXz0ib25Db21wb3NpdGlvblN0YXJ0Iik7XyYmKHhSJiZuLmxvY2FsZSE9PSJrbyImJihfcnx8XyE9PSJvbkNvbXBvc2l0aW9uU3RhcnQiP189PT0ib25Db21wb3NpdGlvbkVuZCImJl9yJiYoUj1BUigpKTooeG49YyxqZz0idmFsdWUiaW4geG4/eG4udmFsdWU6eG4udGV4dENvbnRlbnQsX3I9ITApKSx2PVZvKHUsXyksMDx2Lmxlbmd0aCYmKF89bmV3IGx5KF8sZSxudWxsLG4sYyksZC5wdXNoKHtldmVudDpfLGxpc3RlbmVyczp2fSksUj9fLmRhdGE9UjooUj1fUihuKSxSIT09bnVsbCYmKF8uZGF0YT1SKSkpKSwoUj1BMT94MShlLG4pOlIxKGUsbikpJiYodT1Wbyh1LCJvbkJlZm9yZUlucHV0IiksMDx1Lmxlbmd0aCYmKGM9bmV3IGx5KCJvbkJlZm9yZUlucHV0IiwiYmVmb3JlaW5wdXQiLG51bGwsbixjKSxkLnB1c2goe2V2ZW50OmMsbGlzdGVuZXJzOnV9KSxjLmRhdGE9UikpfSRSKGQsdCl9KX1mdW5jdGlvbiBtaShlLHQsbil7cmV0dXJue2luc3RhbmNlOmUsbGlzdGVuZXI6dCxjdXJyZW50VGFyZ2V0Om59fWZ1bmN0aW9uIFZvKGUsdCl7Zm9yKHZhciBuPXQrIkNhcHR1cmUiLHI9W107ZSE9PW51bGw7KXt2YXIgYT1lLGk9YS5zdGF0ZU5vZGU7YS50YWc9PT01JiZpIT09bnVsbCYmKGE9aSxpPXNpKGUsbiksaSE9bnVsbCYmci51bnNoaWZ0KG1pKGUsaSxhKSksaT1zaShlLHQpLGkhPW51bGwmJnIucHVzaChtaShlLGksYSkpKSxlPWUucmV0dXJufXJldHVybiByfWZ1bmN0aW9uIHdyKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2RvIGU9ZS5yZXR1cm47d2hpbGUoZSYmZS50YWchPT01KTtyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBFeShlLHQsbixyLGEpe2Zvcih2YXIgaT10Ll9yZWFjdE5hbWUsbz1bXTtuIT09bnVsbCYmbiE9PXI7KXt2YXIgcz1uLGw9cy5hbHRlcm5hdGUsdT1zLnN0YXRlTm9kZTtpZihsIT09bnVsbCYmbD09PXIpYnJlYWs7cy50YWc9PT01JiZ1IT09bnVsbCYmKHM9dSxhPyhsPXNpKG4saSksbCE9bnVsbCYmby51bnNoaWZ0KG1pKG4sbCxzKSkpOmF8fChsPXNpKG4saSksbCE9bnVsbCYmby5wdXNoKG1pKG4sbCxzKSkpKSxuPW4ucmV0dXJufW8ubGVuZ3RoIT09MCYmZS5wdXNoKHtldmVudDp0LGxpc3RlbmVyczpvfSl9dmFyIHoxPS9cclxuPy9nLGoxPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gU3koZSl7cmV0dXJuKHR5cGVvZiBlPT0ic3RyaW5nIj9lOiIiK2UpLnJlcGxhY2UoejEsYApgKS5yZXBsYWNlKGoxLCIiKX1mdW5jdGlvbiB0byhlLHQsbil7aWYodD1TeSh0KSxTeShlKSE9PXQmJm4pdGhyb3cgRXJyb3IoRCg0MjUpKX1mdW5jdGlvbiBIbygpe312YXIgVG09bnVsbCxrbT1udWxsO2Z1bmN0aW9uIEFtKGUsdCl7cmV0dXJuIGU9PT0idGV4dGFyZWEifHxlPT09Im5vc2NyaXB0Inx8dHlwZW9mIHQuY2hpbGRyZW49PSJzdHJpbmcifHx0eXBlb2YgdC5jaGlsZHJlbj09Im51bWJlciJ8fHR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPT0ib2JqZWN0IiYmdC5kYW5nZXJvdXNseVNldElubmVySFRNTCE9PW51bGwmJnQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIT1udWxsfXZhciB4bT10eXBlb2Ygc2V0VGltZW91dD09ImZ1bmN0aW9uIj9zZXRUaW1lb3V0OnZvaWQgMCxHMT10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDp2b2lkIDAsd3k9dHlwZW9mIFByb21pc2U9PSJmdW5jdGlvbiI/UHJvbWlzZTp2b2lkIDAscTE9dHlwZW9mIHF1ZXVlTWljcm90YXNrPT0iZnVuY3Rpb24iP3F1ZXVlTWljcm90YXNrOnR5cGVvZiB3eTwidSI/ZnVuY3Rpb24oZSl7cmV0dXJuIHd5LnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChWMSl9OnhtO2Z1bmN0aW9uIFYxKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gbWwoZSx0KXt2YXIgbj10LHI9MDtkb3t2YXIgYT1uLm5leHRTaWJsaW5nO2lmKGUucmVtb3ZlQ2hpbGQobiksYSYmYS5ub2RlVHlwZT09PTgpaWYobj1hLmRhdGEsbj09PSIvJCIpe2lmKHI9PT0wKXtlLnJlbW92ZUNoaWxkKGEpLGNpKHQpO3JldHVybn1yLS19ZWxzZSBuIT09IiQiJiZuIT09IiQ/IiYmbiE9PSIkISJ8fHIrKztuPWF9d2hpbGUobik7Y2kodCl9ZnVuY3Rpb24gT24oZSl7Zm9yKDtlIT1udWxsO2U9ZS5uZXh0U2libGluZyl7dmFyIHQ9ZS5ub2RlVHlwZTtpZih0PT09MXx8dD09PTMpYnJlYWs7aWYodD09PTgpe2lmKHQ9ZS5kYXRhLHQ9PT0iJCJ8fHQ9PT0iJCEifHx0PT09IiQ/IilicmVhaztpZih0PT09Ii8kIilyZXR1cm4gbnVsbH19cmV0dXJuIGV9ZnVuY3Rpb24gVHkoZSl7ZT1lLnByZXZpb3VzU2libGluZztmb3IodmFyIHQ9MDtlOyl7aWYoZS5ub2RlVHlwZT09PTgpe3ZhciBuPWUuZGF0YTtpZihuPT09IiQifHxuPT09IiQhInx8bj09PSIkPyIpe2lmKHQ9PT0wKXJldHVybiBlO3QtLX1lbHNlIG49PT0iLyQiJiZ0Kyt9ZT1lLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgZGE9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksS3Q9Il9fcmVhY3RGaWJlciQiK2RhLGdpPSJfX3JlYWN0UHJvcHMkIitkYSxtbj0iX19yZWFjdENvbnRhaW5lciQiK2RhLFJtPSJfX3JlYWN0RXZlbnRzJCIrZGEsSDE9Il9fcmVhY3RMaXN0ZW5lcnMkIitkYSxXMT0iX19yZWFjdEhhbmRsZXMkIitkYTtmdW5jdGlvbiBucihlKXt2YXIgdD1lW0t0XTtpZih0KXJldHVybiB0O2Zvcih2YXIgbj1lLnBhcmVudE5vZGU7bjspe2lmKHQ9blttbl18fG5bS3RdKXtpZihuPXQuYWx0ZXJuYXRlLHQuY2hpbGQhPT1udWxsfHxuIT09bnVsbCYmbi5jaGlsZCE9PW51bGwpZm9yKGU9VHkoZSk7ZSE9PW51bGw7KXtpZihuPWVbS3RdKXJldHVybiBuO2U9VHkoZSl9cmV0dXJuIHR9ZT1uLG49ZS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIERpKGUpe3JldHVybiBlPWVbS3RdfHxlW21uXSwhZXx8ZS50YWchPT01JiZlLnRhZyE9PTYmJmUudGFnIT09MTMmJmUudGFnIT09Mz9udWxsOmV9ZnVuY3Rpb24gQ3IoZSl7aWYoZS50YWc9PT01fHxlLnRhZz09PTYpcmV0dXJuIGUuc3RhdGVOb2RlO3Rocm93IEVycm9yKEQoMzMpKX1mdW5jdGlvbiBUcyhlKXtyZXR1cm4gZVtnaV18fG51bGx9dmFyIF9tPVtdLE9yPS0xO2Z1bmN0aW9uIEduKGUpe3JldHVybntjdXJyZW50OmV9fWZ1bmN0aW9uIGZlKGUpezA+T3J8fChlLmN1cnJlbnQ9X21bT3JdLF9tW09yXT1udWxsLE9yLS0pfWZ1bmN0aW9uIGxlKGUsdCl7T3IrKyxfbVtPcl09ZS5jdXJyZW50LGUuY3VycmVudD10fXZhciBCbj17fSxxZT1HbihCbikscnQ9R24oITEpLGNyPUJuO2Z1bmN0aW9uIEpyKGUsdCl7dmFyIG49ZS50eXBlLmNvbnRleHRUeXBlcztpZighbilyZXR1cm4gQm47dmFyIHI9ZS5zdGF0ZU5vZGU7aWYociYmci5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09dClyZXR1cm4gci5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgYT17fSxpO2ZvcihpIGluIG4pYVtpXT10W2ldO3JldHVybiByJiYoZT1lLnN0YXRlTm9kZSxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9dCxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWEpLGF9ZnVuY3Rpb24gYXQoZSl7cmV0dXJuIGU9ZS5jaGlsZENvbnRleHRUeXBlcyxlIT1udWxsfWZ1bmN0aW9uIFdvKCl7ZmUocnQpLGZlKHFlKX1mdW5jdGlvbiBreShlLHQsbil7aWYocWUuY3VycmVudCE9PUJuKXRocm93IEVycm9yKEQoMTY4KSk7bGUocWUsdCksbGUocnQsbil9ZnVuY3Rpb24galIoZSx0LG4pe3ZhciByPWUuc3RhdGVOb2RlO2lmKHQ9dC5jaGlsZENvbnRleHRUeXBlcyx0eXBlb2Ygci5nZXRDaGlsZENvbnRleHQhPSJmdW5jdGlvbiIpcmV0dXJuIG47cj1yLmdldENoaWxkQ29udGV4dCgpO2Zvcih2YXIgYSBpbiByKWlmKCEoYSBpbiB0KSl0aHJvdyBFcnJvcihEKDEwOCxDMChlKXx8IlVua25vd24iLGEpKTtyZXR1cm4gRWUoe30sbixyKX1mdW5jdGlvbiBZbyhlKXtyZXR1cm4gZT0oZT1lLnN0YXRlTm9kZSkmJmUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fEJuLGNyPXFlLmN1cnJlbnQsbGUocWUsZSksbGUocnQscnQuY3VycmVudCksITB9ZnVuY3Rpb24gQXkoZSx0LG4pe3ZhciByPWUuc3RhdGVOb2RlO2lmKCFyKXRocm93IEVycm9yKEQoMTY5KSk7bj8oZT1qUihlLHQsY3IpLHIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9ZSxmZShydCksZmUocWUpLGxlKHFlLGUpKTpmZShydCksbGUocnQsbil9dmFyIHNuPW51bGwsa3M9ITEsZ2w9ITE7ZnVuY3Rpb24gR1IoZSl7c249PT1udWxsP3NuPVtlXTpzbi5wdXNoKGUpfWZ1bmN0aW9uIFkxKGUpe2tzPSEwLEdSKGUpfWZ1bmN0aW9uIHFuKCl7aWYoIWdsJiZzbiE9PW51bGwpe2dsPSEwO3ZhciBlPTAsdD1pZTt0cnl7dmFyIG49c247Zm9yKGllPTE7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07ZG8gcj1yKCEwKTt3aGlsZShyIT09bnVsbCl9c249bnVsbCxrcz0hMX1jYXRjaChhKXt0aHJvdyBzbiE9PW51bGwmJihzbj1zbi5zbGljZShlKzEpKSxtUihVZyxxbiksYX1maW5hbGx5e2llPXQsZ2w9ITF9fXJldHVybiBudWxsfXZhciBMcj1bXSxEcj0wLEtvPW51bGwsWG89MCxBdD1bXSx4dD0wLGRyPW51bGwsbG49MSx1bj0iIjtmdW5jdGlvbiBabihlLHQpe0xyW0RyKytdPVhvLExyW0RyKytdPUtvLEtvPWUsWG89dH1mdW5jdGlvbiBxUihlLHQsbil7QXRbeHQrK109bG4sQXRbeHQrK109dW4sQXRbeHQrK109ZHIsZHI9ZTt2YXIgcj1sbjtlPXVuO3ZhciBhPTMyLWp0KHIpLTE7ciY9figxPDxhKSxuKz0xO3ZhciBpPTMyLWp0KHQpK2E7aWYoMzA8aSl7dmFyIG89YS1hJTU7aT0ociYoMTw8byktMSkudG9TdHJpbmcoMzIpLHI+Pj1vLGEtPW8sbG49MTw8MzItanQodCkrYXxuPDxhfHIsdW49aStlfWVsc2UgbG49MTw8aXxuPDxhfHIsdW49ZX1mdW5jdGlvbiBXZyhlKXtlLnJldHVybiE9PW51bGwmJihabihlLDEpLHFSKGUsMSwwKSl9ZnVuY3Rpb24gWWcoZSl7Zm9yKDtlPT09S287KUtvPUxyWy0tRHJdLExyW0RyXT1udWxsLFhvPUxyWy0tRHJdLExyW0RyXT1udWxsO2Zvcig7ZT09PWRyOylkcj1BdFstLXh0XSxBdFt4dF09bnVsbCx1bj1BdFstLXh0XSxBdFt4dF09bnVsbCxsbj1BdFstLXh0XSxBdFt4dF09bnVsbH12YXIgbXQ9bnVsbCxwdD1udWxsLGdlPSExLHp0PW51bGw7ZnVuY3Rpb24gVlIoZSx0KXt2YXIgbj1fdCg1LG51bGwsbnVsbCwwKTtuLmVsZW1lbnRUeXBlPSJERUxFVEVEIixuLnN0YXRlTm9kZT10LG4ucmV0dXJuPWUsdD1lLmRlbGV0aW9ucyx0PT09bnVsbD8oZS5kZWxldGlvbnM9W25dLGUuZmxhZ3N8PTE2KTp0LnB1c2gobil9ZnVuY3Rpb24geHkoZSx0KXtzd2l0Y2goZS50YWcpe2Nhc2UgNTp2YXIgbj1lLnR5cGU7cmV0dXJuIHQ9dC5ub2RlVHlwZSE9PTF8fG4udG9Mb3dlckNhc2UoKSE9PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOnQsdCE9PW51bGw/KGUuc3RhdGVOb2RlPXQsbXQ9ZSxwdD1Pbih0LmZpcnN0Q2hpbGQpLCEwKTohMTtjYXNlIDY6cmV0dXJuIHQ9ZS5wZW5kaW5nUHJvcHM9PT0iInx8dC5ub2RlVHlwZSE9PTM/bnVsbDp0LHQhPT1udWxsPyhlLnN0YXRlTm9kZT10LG10PWUscHQ9bnVsbCwhMCk6ITE7Y2FzZSAxMzpyZXR1cm4gdD10Lm5vZGVUeXBlIT09OD9udWxsOnQsdCE9PW51bGw/KG49ZHIhPT1udWxsP3tpZDpsbixvdmVyZmxvdzp1bn06bnVsbCxlLm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6dCx0cmVlQ29udGV4dDpuLHJldHJ5TGFuZToxMDczNzQxODI0fSxuPV90KDE4LG51bGwsbnVsbCwwKSxuLnN0YXRlTm9kZT10LG4ucmV0dXJuPWUsZS5jaGlsZD1uLG10PWUscHQ9bnVsbCwhMCk6ITE7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gSW0oZSl7cmV0dXJuKGUubW9kZSYxKSE9PTAmJihlLmZsYWdzJjEyOCk9PT0wfWZ1bmN0aW9uIE5tKGUpe2lmKGdlKXt2YXIgdD1wdDtpZih0KXt2YXIgbj10O2lmKCF4eShlLHQpKXtpZihJbShlKSl0aHJvdyBFcnJvcihEKDQxOCkpO3Q9T24obi5uZXh0U2libGluZyk7dmFyIHI9bXQ7dCYmeHkoZSx0KT9WUihyLG4pOihlLmZsYWdzPWUuZmxhZ3MmLTQwOTd8MixnZT0hMSxtdD1lKX19ZWxzZXtpZihJbShlKSl0aHJvdyBFcnJvcihEKDQxOCkpO2UuZmxhZ3M9ZS5mbGFncyYtNDA5N3wyLGdlPSExLG10PWV9fX1mdW5jdGlvbiBSeShlKXtmb3IoZT1lLnJldHVybjtlIT09bnVsbCYmZS50YWchPT01JiZlLnRhZyE9PTMmJmUudGFnIT09MTM7KWU9ZS5yZXR1cm47bXQ9ZX1mdW5jdGlvbiBubyhlKXtpZihlIT09bXQpcmV0dXJuITE7aWYoIWdlKXJldHVybiBSeShlKSxnZT0hMCwhMTt2YXIgdDtpZigodD1lLnRhZyE9PTMpJiYhKHQ9ZS50YWchPT01KSYmKHQ9ZS50eXBlLHQ9dCE9PSJoZWFkIiYmdCE9PSJib2R5IiYmIUFtKGUudHlwZSxlLm1lbW9pemVkUHJvcHMpKSx0JiYodD1wdCkpe2lmKEltKGUpKXRocm93IEhSKCksRXJyb3IoRCg0MTgpKTtmb3IoO3Q7KVZSKGUsdCksdD1Pbih0Lm5leHRTaWJsaW5nKX1pZihSeShlKSxlLnRhZz09PTEzKXtpZihlPWUubWVtb2l6ZWRTdGF0ZSxlPWUhPT1udWxsP2UuZGVoeWRyYXRlZDpudWxsLCFlKXRocm93IEVycm9yKEQoMzE3KSk7ZTp7Zm9yKGU9ZS5uZXh0U2libGluZyx0PTA7ZTspe2lmKGUubm9kZVR5cGU9PT04KXt2YXIgbj1lLmRhdGE7aWYobj09PSIvJCIpe2lmKHQ9PT0wKXtwdD1PbihlLm5leHRTaWJsaW5nKTticmVhayBlfXQtLX1lbHNlIG4hPT0iJCImJm4hPT0iJCEiJiZuIT09IiQ/Inx8dCsrfWU9ZS5uZXh0U2libGluZ31wdD1udWxsfX1lbHNlIHB0PW10P09uKGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIEhSKCl7Zm9yKHZhciBlPXB0O2U7KWU9T24oZS5uZXh0U2libGluZyl9ZnVuY3Rpb24gZWEoKXtwdD1tdD1udWxsLGdlPSExfWZ1bmN0aW9uIEtnKGUpe3p0PT09bnVsbD96dD1bZV06enQucHVzaChlKX12YXIgSzE9eW4uUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gQWEoZSx0LG4pe2lmKGU9bi5yZWYsZSE9PW51bGwmJnR5cGVvZiBlIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZSE9Im9iamVjdCIpe2lmKG4uX293bmVyKXtpZihuPW4uX293bmVyLG4pe2lmKG4udGFnIT09MSl0aHJvdyBFcnJvcihEKDMwOSkpO3ZhciByPW4uc3RhdGVOb2RlfWlmKCFyKXRocm93IEVycm9yKEQoMTQ3LGUpKTt2YXIgYT1yLGk9IiIrZTtyZXR1cm4gdCE9PW51bGwmJnQucmVmIT09bnVsbCYmdHlwZW9mIHQucmVmPT0iZnVuY3Rpb24iJiZ0LnJlZi5fc3RyaW5nUmVmPT09aT90LnJlZjoodD1mdW5jdGlvbihvKXt2YXIgcz1hLnJlZnM7bz09PW51bGw/ZGVsZXRlIHNbaV06c1tpXT1vfSx0Ll9zdHJpbmdSZWY9aSx0KX1pZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgRXJyb3IoRCgyODQpKTtpZighbi5fb3duZXIpdGhyb3cgRXJyb3IoRCgyOTAsZSkpfXJldHVybiBlfWZ1bmN0aW9uIHJvKGUsdCl7dGhyb3cgZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksRXJyb3IoRCgzMSxlPT09IltvYmplY3QgT2JqZWN0XSI/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXModCkuam9pbigiLCAiKSsifSI6ZSkpfWZ1bmN0aW9uIF95KGUpe3ZhciB0PWUuX2luaXQ7cmV0dXJuIHQoZS5fcGF5bG9hZCl9ZnVuY3Rpb24gV1IoZSl7ZnVuY3Rpb24gdChoLG0pe2lmKGUpe3ZhciBnPWguZGVsZXRpb25zO2c9PT1udWxsPyhoLmRlbGV0aW9ucz1bbV0saC5mbGFnc3w9MTYpOmcucHVzaChtKX19ZnVuY3Rpb24gbihoLG0pe2lmKCFlKXJldHVybiBudWxsO2Zvcig7bSE9PW51bGw7KXQoaCxtKSxtPW0uc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiByKGgsbSl7Zm9yKGg9bmV3IE1hcDttIT09bnVsbDspbS5rZXkhPT1udWxsP2guc2V0KG0ua2V5LG0pOmguc2V0KG0uaW5kZXgsbSksbT1tLnNpYmxpbmc7cmV0dXJuIGh9ZnVuY3Rpb24gYShoLG0pe3JldHVybiBoPVBuKGgsbSksaC5pbmRleD0wLGguc2libGluZz1udWxsLGh9ZnVuY3Rpb24gaShoLG0sZyl7cmV0dXJuIGguaW5kZXg9ZyxlPyhnPWguYWx0ZXJuYXRlLGchPT1udWxsPyhnPWcuaW5kZXgsZzxtPyhoLmZsYWdzfD0yLG0pOmcpOihoLmZsYWdzfD0yLG0pKTooaC5mbGFnc3w9MTA0ODU3NixtKX1mdW5jdGlvbiBvKGgpe3JldHVybiBlJiZoLmFsdGVybmF0ZT09PW51bGwmJihoLmZsYWdzfD0yKSxofWZ1bmN0aW9uIHMoaCxtLGcsRSl7cmV0dXJuIG09PT1udWxsfHxtLnRhZyE9PTY/KG09d2woZyxoLm1vZGUsRSksbS5yZXR1cm49aCxtKToobT1hKG0sZyksbS5yZXR1cm49aCxtKX1mdW5jdGlvbiBsKGgsbSxnLEUpe3ZhciBUPWcudHlwZTtyZXR1cm4gVD09PVJyP2MoaCxtLGcucHJvcHMuY2hpbGRyZW4sRSxnLmtleSk6bSE9PW51bGwmJihtLmVsZW1lbnRUeXBlPT09VHx8dHlwZW9mIFQ9PSJvYmplY3QiJiZUIT09bnVsbCYmVC4kJHR5cGVvZj09PXduJiZfeShUKT09PW0udHlwZSk/KEU9YShtLGcucHJvcHMpLEUucmVmPUFhKGgsbSxnKSxFLnJldHVybj1oLEUpOihFPU5vKGcudHlwZSxnLmtleSxnLnByb3BzLG51bGwsaC5tb2RlLEUpLEUucmVmPUFhKGgsbSxnKSxFLnJldHVybj1oLEUpfWZ1bmN0aW9uIHUoaCxtLGcsRSl7cmV0dXJuIG09PT1udWxsfHxtLnRhZyE9PTR8fG0uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1nLmNvbnRhaW5lckluZm98fG0uc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09Zy5pbXBsZW1lbnRhdGlvbj8obT1UbChnLGgubW9kZSxFKSxtLnJldHVybj1oLG0pOihtPWEobSxnLmNoaWxkcmVufHxbXSksbS5yZXR1cm49aCxtKX1mdW5jdGlvbiBjKGgsbSxnLEUsVCl7cmV0dXJuIG09PT1udWxsfHxtLnRhZyE9PTc/KG09bHIoZyxoLm1vZGUsRSxUKSxtLnJldHVybj1oLG0pOihtPWEobSxnKSxtLnJldHVybj1oLG0pfWZ1bmN0aW9uIGQoaCxtLGcpe2lmKHR5cGVvZiBtPT0ic3RyaW5nIiYmbSE9PSIifHx0eXBlb2YgbT09Im51bWJlciIpcmV0dXJuIG09d2woIiIrbSxoLm1vZGUsZyksbS5yZXR1cm49aCxtO2lmKHR5cGVvZiBtPT0ib2JqZWN0IiYmbSE9PW51bGwpe3N3aXRjaChtLiQkdHlwZW9mKXtjYXNlIEhpOnJldHVybiBnPU5vKG0udHlwZSxtLmtleSxtLnByb3BzLG51bGwsaC5tb2RlLGcpLGcucmVmPUFhKGgsbnVsbCxtKSxnLnJldHVybj1oLGc7Y2FzZSB4cjpyZXR1cm4gbT1UbChtLGgubW9kZSxnKSxtLnJldHVybj1oLG07Y2FzZSB3bjp2YXIgRT1tLl9pbml0O3JldHVybiBkKGgsRShtLl9wYXlsb2FkKSxnKX1pZihNYShtKXx8RWEobSkpcmV0dXJuIG09bHIobSxoLm1vZGUsZyxudWxsKSxtLnJldHVybj1oLG07cm8oaCxtKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGgsbSxnLEUpe3ZhciBUPW0hPT1udWxsP20ua2V5Om51bGw7aWYodHlwZW9mIGc9PSJzdHJpbmciJiZnIT09IiJ8fHR5cGVvZiBnPT0ibnVtYmVyIilyZXR1cm4gVCE9PW51bGw/bnVsbDpzKGgsbSwiIitnLEUpO2lmKHR5cGVvZiBnPT0ib2JqZWN0IiYmZyE9PW51bGwpe3N3aXRjaChnLiQkdHlwZW9mKXtjYXNlIEhpOnJldHVybiBnLmtleT09PVQ/bChoLG0sZyxFKTpudWxsO2Nhc2UgeHI6cmV0dXJuIGcua2V5PT09VD91KGgsbSxnLEUpOm51bGw7Y2FzZSB3bjpyZXR1cm4gVD1nLl9pbml0LHAoaCxtLFQoZy5fcGF5bG9hZCksRSl9aWYoTWEoZyl8fEVhKGcpKXJldHVybiBUIT09bnVsbD9udWxsOmMoaCxtLGcsRSxudWxsKTtybyhoLGcpfXJldHVybiBudWxsfWZ1bmN0aW9uIGYoaCxtLGcsRSxUKXtpZih0eXBlb2YgRT09InN0cmluZyImJkUhPT0iInx8dHlwZW9mIEU9PSJudW1iZXIiKXJldHVybiBoPWguZ2V0KGcpfHxudWxsLHMobSxoLCIiK0UsVCk7aWYodHlwZW9mIEU9PSJvYmplY3QiJiZFIT09bnVsbCl7c3dpdGNoKEUuJCR0eXBlb2Ype2Nhc2UgSGk6cmV0dXJuIGg9aC5nZXQoRS5rZXk9PT1udWxsP2c6RS5rZXkpfHxudWxsLGwobSxoLEUsVCk7Y2FzZSB4cjpyZXR1cm4gaD1oLmdldChFLmtleT09PW51bGw/ZzpFLmtleSl8fG51bGwsdShtLGgsRSxUKTtjYXNlIHduOnZhciB2PUUuX2luaXQ7cmV0dXJuIGYoaCxtLGcsdihFLl9wYXlsb2FkKSxUKX1pZihNYShFKXx8RWEoRSkpcmV0dXJuIGg9aC5nZXQoZyl8fG51bGwsYyhtLGgsRSxULG51bGwpO3JvKG0sRSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geShoLG0sZyxFKXtmb3IodmFyIFQ9bnVsbCx2PW51bGwsUj1tLF89bT0wLEk9bnVsbDtSIT09bnVsbCYmXzxnLmxlbmd0aDtfKyspe1IuaW5kZXg+Xz8oST1SLFI9bnVsbCk6ST1SLnNpYmxpbmc7dmFyIEM9cChoLFIsZ1tfXSxFKTtpZihDPT09bnVsbCl7Uj09PW51bGwmJihSPUkpO2JyZWFrfWUmJlImJkMuYWx0ZXJuYXRlPT09bnVsbCYmdChoLFIpLG09aShDLG0sXyksdj09PW51bGw/VD1DOnYuc2libGluZz1DLHY9QyxSPUl9aWYoXz09PWcubGVuZ3RoKXJldHVybiBuKGgsUiksZ2UmJlpuKGgsXyksVDtpZihSPT09bnVsbCl7Zm9yKDtfPGcubGVuZ3RoO18rKylSPWQoaCxnW19dLEUpLFIhPT1udWxsJiYobT1pKFIsbSxfKSx2PT09bnVsbD9UPVI6di5zaWJsaW5nPVIsdj1SKTtyZXR1cm4gZ2UmJlpuKGgsXyksVH1mb3IoUj1yKGgsUik7XzxnLmxlbmd0aDtfKyspST1mKFIsaCxfLGdbX10sRSksSSE9PW51bGwmJihlJiZJLmFsdGVybmF0ZSE9PW51bGwmJlIuZGVsZXRlKEkua2V5PT09bnVsbD9fOkkua2V5KSxtPWkoSSxtLF8pLHY9PT1udWxsP1Q9STp2LnNpYmxpbmc9SSx2PUkpO3JldHVybiBlJiZSLmZvckVhY2goZnVuY3Rpb24oTCl7cmV0dXJuIHQoaCxMKX0pLGdlJiZabihoLF8pLFR9ZnVuY3Rpb24gYihoLG0sZyxFKXt2YXIgVD1FYShnKTtpZih0eXBlb2YgVCE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihEKDE1MCkpO2lmKGc9VC5jYWxsKGcpLGc9PW51bGwpdGhyb3cgRXJyb3IoRCgxNTEpKTtmb3IodmFyIHY9VD1udWxsLFI9bSxfPW09MCxJPW51bGwsQz1nLm5leHQoKTtSIT09bnVsbCYmIUMuZG9uZTtfKyssQz1nLm5leHQoKSl7Ui5pbmRleD5fPyhJPVIsUj1udWxsKTpJPVIuc2libGluZzt2YXIgTD1wKGgsUixDLnZhbHVlLEUpO2lmKEw9PT1udWxsKXtSPT09bnVsbCYmKFI9SSk7YnJlYWt9ZSYmUiYmTC5hbHRlcm5hdGU9PT1udWxsJiZ0KGgsUiksbT1pKEwsbSxfKSx2PT09bnVsbD9UPUw6di5zaWJsaW5nPUwsdj1MLFI9SX1pZihDLmRvbmUpcmV0dXJuIG4oaCxSKSxnZSYmWm4oaCxfKSxUO2lmKFI9PT1udWxsKXtmb3IoOyFDLmRvbmU7XysrLEM9Zy5uZXh0KCkpQz1kKGgsQy52YWx1ZSxFKSxDIT09bnVsbCYmKG09aShDLG0sXyksdj09PW51bGw/VD1DOnYuc2libGluZz1DLHY9Qyk7cmV0dXJuIGdlJiZabihoLF8pLFR9Zm9yKFI9cihoLFIpOyFDLmRvbmU7XysrLEM9Zy5uZXh0KCkpQz1mKFIsaCxfLEMudmFsdWUsRSksQyE9PW51bGwmJihlJiZDLmFsdGVybmF0ZSE9PW51bGwmJlIuZGVsZXRlKEMua2V5PT09bnVsbD9fOkMua2V5KSxtPWkoQyxtLF8pLHY9PT1udWxsP1Q9Qzp2LnNpYmxpbmc9Qyx2PUMpO3JldHVybiBlJiZSLmZvckVhY2goZnVuY3Rpb24oRil7cmV0dXJuIHQoaCxGKX0pLGdlJiZabihoLF8pLFR9ZnVuY3Rpb24gQShoLG0sZyxFKXtpZih0eXBlb2YgZz09Im9iamVjdCImJmchPT1udWxsJiZnLnR5cGU9PT1SciYmZy5rZXk9PT1udWxsJiYoZz1nLnByb3BzLmNoaWxkcmVuKSx0eXBlb2YgZz09Im9iamVjdCImJmchPT1udWxsKXtzd2l0Y2goZy4kJHR5cGVvZil7Y2FzZSBIaTplOntmb3IodmFyIFQ9Zy5rZXksdj1tO3YhPT1udWxsOyl7aWYodi5rZXk9PT1UKXtpZihUPWcudHlwZSxUPT09UnIpe2lmKHYudGFnPT09Nyl7bihoLHYuc2libGluZyksbT1hKHYsZy5wcm9wcy5jaGlsZHJlbiksbS5yZXR1cm49aCxoPW07YnJlYWsgZX19ZWxzZSBpZih2LmVsZW1lbnRUeXBlPT09VHx8dHlwZW9mIFQ9PSJvYmplY3QiJiZUIT09bnVsbCYmVC4kJHR5cGVvZj09PXduJiZfeShUKT09PXYudHlwZSl7bihoLHYuc2libGluZyksbT1hKHYsZy5wcm9wcyksbS5yZWY9QWEoaCx2LGcpLG0ucmV0dXJuPWgsaD1tO2JyZWFrIGV9bihoLHYpO2JyZWFrfWVsc2UgdChoLHYpO3Y9di5zaWJsaW5nfWcudHlwZT09PVJyPyhtPWxyKGcucHJvcHMuY2hpbGRyZW4saC5tb2RlLEUsZy5rZXkpLG0ucmV0dXJuPWgsaD1tKTooRT1ObyhnLnR5cGUsZy5rZXksZy5wcm9wcyxudWxsLGgubW9kZSxFKSxFLnJlZj1BYShoLG0sZyksRS5yZXR1cm49aCxoPUUpfXJldHVybiBvKGgpO2Nhc2UgeHI6ZTp7Zm9yKHY9Zy5rZXk7bSE9PW51bGw7KXtpZihtLmtleT09PXYpaWYobS50YWc9PT00JiZtLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09Zy5jb250YWluZXJJbmZvJiZtLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PWcuaW1wbGVtZW50YXRpb24pe24oaCxtLnNpYmxpbmcpLG09YShtLGcuY2hpbGRyZW58fFtdKSxtLnJldHVybj1oLGg9bTticmVhayBlfWVsc2V7bihoLG0pO2JyZWFrfWVsc2UgdChoLG0pO209bS5zaWJsaW5nfW09VGwoZyxoLm1vZGUsRSksbS5yZXR1cm49aCxoPW19cmV0dXJuIG8oaCk7Y2FzZSB3bjpyZXR1cm4gdj1nLl9pbml0LEEoaCxtLHYoZy5fcGF5bG9hZCksRSl9aWYoTWEoZykpcmV0dXJuIHkoaCxtLGcsRSk7aWYoRWEoZykpcmV0dXJuIGIoaCxtLGcsRSk7cm8oaCxnKX1yZXR1cm4gdHlwZW9mIGc9PSJzdHJpbmciJiZnIT09IiJ8fHR5cGVvZiBnPT0ibnVtYmVyIj8oZz0iIitnLG0hPT1udWxsJiZtLnRhZz09PTY/KG4oaCxtLnNpYmxpbmcpLG09YShtLGcpLG0ucmV0dXJuPWgsaD1tKToobihoLG0pLG09d2woZyxoLm1vZGUsRSksbS5yZXR1cm49aCxoPW0pLG8oaCkpOm4oaCxtKX1yZXR1cm4gQX12YXIgdGE9V1IoITApLFlSPVdSKCExKSxabz1HbihudWxsKSxRbz1udWxsLE1yPW51bGwsWGc9bnVsbDtmdW5jdGlvbiBaZygpe1hnPU1yPVFvPW51bGx9ZnVuY3Rpb24gUWcoZSl7dmFyIHQ9Wm8uY3VycmVudDtmZShabyksZS5fY3VycmVudFZhbHVlPXR9ZnVuY3Rpb24gQ20oZSx0LG4pe2Zvcig7ZSE9PW51bGw7KXt2YXIgcj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJnQpIT09dD8oZS5jaGlsZExhbmVzfD10LHIhPT1udWxsJiYoci5jaGlsZExhbmVzfD10KSk6ciE9PW51bGwmJihyLmNoaWxkTGFuZXMmdCkhPT10JiYoci5jaGlsZExhbmVzfD10KSxlPT09bilicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBZcihlLHQpe1FvPWUsWGc9TXI9bnVsbCxlPWUuZGVwZW5kZW5jaWVzLGUhPT1udWxsJiZlLmZpcnN0Q29udGV4dCE9PW51bGwmJihlLmxhbmVzJnQmJih0dD0hMCksZS5maXJzdENvbnRleHQ9bnVsbCl9ZnVuY3Rpb24gQ3QoZSl7dmFyIHQ9ZS5fY3VycmVudFZhbHVlO2lmKFhnIT09ZSlpZihlPXtjb250ZXh0OmUsbWVtb2l6ZWRWYWx1ZTp0LG5leHQ6bnVsbH0sTXI9PT1udWxsKXtpZihRbz09PW51bGwpdGhyb3cgRXJyb3IoRCgzMDgpKTtNcj1lLFFvLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6ZX19ZWxzZSBNcj1Nci5uZXh0PWU7cmV0dXJuIHR9dmFyIHJyPW51bGw7ZnVuY3Rpb24gSmcoZSl7cnI9PT1udWxsP3JyPVtlXTpyci5wdXNoKGUpfWZ1bmN0aW9uIEtSKGUsdCxuLHIpe3ZhciBhPXQuaW50ZXJsZWF2ZWQ7cmV0dXJuIGE9PT1udWxsPyhuLm5leHQ9bixKZyh0KSk6KG4ubmV4dD1hLm5leHQsYS5uZXh0PW4pLHQuaW50ZXJsZWF2ZWQ9bixnbihlLHIpfWZ1bmN0aW9uIGduKGUsdCl7ZS5sYW5lc3w9dDt2YXIgbj1lLmFsdGVybmF0ZTtmb3IobiE9PW51bGwmJihuLmxhbmVzfD10KSxuPWUsZT1lLnJldHVybjtlIT09bnVsbDspZS5jaGlsZExhbmVzfD10LG49ZS5hbHRlcm5hdGUsbiE9PW51bGwmJihuLmNoaWxkTGFuZXN8PXQpLG49ZSxlPWUucmV0dXJuO3JldHVybiBuLnRhZz09PTM/bi5zdGF0ZU5vZGU6bnVsbH12YXIgVG49ITE7ZnVuY3Rpb24gZWgoZSl7ZS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1mdW5jdGlvbiBYUihlLHQpe2U9ZS51cGRhdGVRdWV1ZSx0LnVwZGF0ZVF1ZXVlPT09ZSYmKHQudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6ZS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6ZS5zaGFyZWQsZWZmZWN0czplLmVmZmVjdHN9KX1mdW5jdGlvbiBjbihlLHQpe3JldHVybntldmVudFRpbWU6ZSxsYW5lOnQsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBMbihlLHQsbil7dmFyIHI9ZS51cGRhdGVRdWV1ZTtpZihyPT09bnVsbClyZXR1cm4gbnVsbDtpZihyPXIuc2hhcmVkLHJlJjIpe3ZhciBhPXIucGVuZGluZztyZXR1cm4gYT09PW51bGw/dC5uZXh0PXQ6KHQubmV4dD1hLm5leHQsYS5uZXh0PXQpLHIucGVuZGluZz10LGduKGUsbil9cmV0dXJuIGE9ci5pbnRlcmxlYXZlZCxhPT09bnVsbD8odC5uZXh0PXQsSmcocikpOih0Lm5leHQ9YS5uZXh0LGEubmV4dD10KSxyLmludGVybGVhdmVkPXQsZ24oZSxuKX1mdW5jdGlvbiBrbyhlLHQsbil7aWYodD10LnVwZGF0ZVF1ZXVlLHQhPT1udWxsJiYodD10LnNoYXJlZCwobiY0MTk0MjQwKSE9PTApKXt2YXIgcj10LmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLG58PXIsdC5sYW5lcz1uLEJnKGUsbil9fWZ1bmN0aW9uIEl5KGUsdCl7dmFyIG49ZS51cGRhdGVRdWV1ZSxyPWUuYWx0ZXJuYXRlO2lmKHIhPT1udWxsJiYocj1yLnVwZGF0ZVF1ZXVlLG49PT1yKSl7dmFyIGE9bnVsbCxpPW51bGw7aWYobj1uLmZpcnN0QmFzZVVwZGF0ZSxuIT09bnVsbCl7ZG97dmFyIG89e2V2ZW50VGltZTpuLmV2ZW50VGltZSxsYW5lOm4ubGFuZSx0YWc6bi50YWcscGF5bG9hZDpuLnBheWxvYWQsY2FsbGJhY2s6bi5jYWxsYmFjayxuZXh0Om51bGx9O2k9PT1udWxsP2E9aT1vOmk9aS5uZXh0PW8sbj1uLm5leHR9d2hpbGUobiE9PW51bGwpO2k9PT1udWxsP2E9aT10Omk9aS5uZXh0PXR9ZWxzZSBhPWk9dDtuPXtiYXNlU3RhdGU6ci5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmEsbGFzdEJhc2VVcGRhdGU6aSxzaGFyZWQ6ci5zaGFyZWQsZWZmZWN0czpyLmVmZmVjdHN9LGUudXBkYXRlUXVldWU9bjtyZXR1cm59ZT1uLmxhc3RCYXNlVXBkYXRlLGU9PT1udWxsP24uZmlyc3RCYXNlVXBkYXRlPXQ6ZS5uZXh0PXQsbi5sYXN0QmFzZVVwZGF0ZT10fWZ1bmN0aW9uIEpvKGUsdCxuLHIpe3ZhciBhPWUudXBkYXRlUXVldWU7VG49ITE7dmFyIGk9YS5maXJzdEJhc2VVcGRhdGUsbz1hLmxhc3RCYXNlVXBkYXRlLHM9YS5zaGFyZWQucGVuZGluZztpZihzIT09bnVsbCl7YS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBsPXMsdT1sLm5leHQ7bC5uZXh0PW51bGwsbz09PW51bGw/aT11Om8ubmV4dD11LG89bDt2YXIgYz1lLmFsdGVybmF0ZTtjIT09bnVsbCYmKGM9Yy51cGRhdGVRdWV1ZSxzPWMubGFzdEJhc2VVcGRhdGUscyE9PW8mJihzPT09bnVsbD9jLmZpcnN0QmFzZVVwZGF0ZT11OnMubmV4dD11LGMubGFzdEJhc2VVcGRhdGU9bCkpfWlmKGkhPT1udWxsKXt2YXIgZD1hLmJhc2VTdGF0ZTtvPTAsYz11PWw9bnVsbCxzPWk7ZG97dmFyIHA9cy5sYW5lLGY9cy5ldmVudFRpbWU7aWYoKHImcCk9PT1wKXtjIT09bnVsbCYmKGM9Yy5uZXh0PXtldmVudFRpbWU6ZixsYW5lOjAsdGFnOnMudGFnLHBheWxvYWQ6cy5wYXlsb2FkLGNhbGxiYWNrOnMuY2FsbGJhY2ssbmV4dDpudWxsfSk7ZTp7dmFyIHk9ZSxiPXM7c3dpdGNoKHA9dCxmPW4sYi50YWcpe2Nhc2UgMTppZih5PWIucGF5bG9hZCx0eXBlb2YgeT09ImZ1bmN0aW9uIil7ZD15LmNhbGwoZixkLHApO2JyZWFrIGV9ZD15O2JyZWFrIGU7Y2FzZSAzOnkuZmxhZ3M9eS5mbGFncyYtNjU1Mzd8MTI4O2Nhc2UgMDppZih5PWIucGF5bG9hZCxwPXR5cGVvZiB5PT0iZnVuY3Rpb24iP3kuY2FsbChmLGQscCk6eSxwPT1udWxsKWJyZWFrIGU7ZD1FZSh7fSxkLHApO2JyZWFrIGU7Y2FzZSAyOlRuPSEwfX1zLmNhbGxiYWNrIT09bnVsbCYmcy5sYW5lIT09MCYmKGUuZmxhZ3N8PTY0LHA9YS5lZmZlY3RzLHA9PT1udWxsP2EuZWZmZWN0cz1bc106cC5wdXNoKHMpKX1lbHNlIGY9e2V2ZW50VGltZTpmLGxhbmU6cCx0YWc6cy50YWcscGF5bG9hZDpzLnBheWxvYWQsY2FsbGJhY2s6cy5jYWxsYmFjayxuZXh0Om51bGx9LGM9PT1udWxsPyh1PWM9ZixsPWQpOmM9Yy5uZXh0PWYsb3w9cDtpZihzPXMubmV4dCxzPT09bnVsbCl7aWYocz1hLnNoYXJlZC5wZW5kaW5nLHM9PT1udWxsKWJyZWFrO3A9cyxzPXAubmV4dCxwLm5leHQ9bnVsbCxhLmxhc3RCYXNlVXBkYXRlPXAsYS5zaGFyZWQucGVuZGluZz1udWxsfX13aGlsZSghMCk7aWYoYz09PW51bGwmJihsPWQpLGEuYmFzZVN0YXRlPWwsYS5maXJzdEJhc2VVcGRhdGU9dSxhLmxhc3RCYXNlVXBkYXRlPWMsdD1hLnNoYXJlZC5pbnRlcmxlYXZlZCx0IT09bnVsbCl7YT10O2RvIG98PWEubGFuZSxhPWEubmV4dDt3aGlsZShhIT09dCl9ZWxzZSBpPT09bnVsbCYmKGEuc2hhcmVkLmxhbmVzPTApO2ZyfD1vLGUubGFuZXM9byxlLm1lbW9pemVkU3RhdGU9ZH19ZnVuY3Rpb24gTnkoZSx0LG4pe2lmKGU9dC5lZmZlY3RzLHQuZWZmZWN0cz1udWxsLGUhPT1udWxsKWZvcih0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF0sYT1yLmNhbGxiYWNrO2lmKGEhPT1udWxsKXtpZihyLmNhbGxiYWNrPW51bGwscj1uLHR5cGVvZiBhIT0iZnVuY3Rpb24iKXRocm93IEVycm9yKEQoMTkxLGEpKTthLmNhbGwocil9fX12YXIgTWk9e30sUXQ9R24oTWkpLGhpPUduKE1pKSxiaT1HbihNaSk7ZnVuY3Rpb24gYXIoZSl7aWYoZT09PU1pKXRocm93IEVycm9yKEQoMTc0KSk7cmV0dXJuIGV9ZnVuY3Rpb24gdGgoZSx0KXtzd2l0Y2gobGUoYmksdCksbGUoaGksZSksbGUoUXQsTWkpLGU9dC5ub2RlVHlwZSxlKXtjYXNlIDk6Y2FzZSAxMTp0PSh0PXQuZG9jdW1lbnRFbGVtZW50KT90Lm5hbWVzcGFjZVVSSTpkbShudWxsLCIiKTticmVhaztkZWZhdWx0OmU9ZT09PTg/dC5wYXJlbnROb2RlOnQsdD1lLm5hbWVzcGFjZVVSSXx8bnVsbCxlPWUudGFnTmFtZSx0PWRtKHQsZSl9ZmUoUXQpLGxlKFF0LHQpfWZ1bmN0aW9uIG5hKCl7ZmUoUXQpLGZlKGhpKSxmZShiaSl9ZnVuY3Rpb24gWlIoZSl7YXIoYmkuY3VycmVudCk7dmFyIHQ9YXIoUXQuY3VycmVudCksbj1kbSh0LGUudHlwZSk7dCE9PW4mJihsZShoaSxlKSxsZShRdCxuKSl9ZnVuY3Rpb24gbmgoZSl7aGkuY3VycmVudD09PWUmJihmZShRdCksZmUoaGkpKX12YXIgYmU9R24oMCk7ZnVuY3Rpb24gZXMoZSl7Zm9yKHZhciB0PWU7dCE9PW51bGw7KXtpZih0LnRhZz09PTEzKXt2YXIgbj10Lm1lbW9pemVkU3RhdGU7aWYobiE9PW51bGwmJihuPW4uZGVoeWRyYXRlZCxuPT09bnVsbHx8bi5kYXRhPT09IiQ/Inx8bi5kYXRhPT09IiQhIikpcmV0dXJuIHR9ZWxzZSBpZih0LnRhZz09PTE5JiZ0Lm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIhPT12b2lkIDApe2lmKHQuZmxhZ3MmMTI4KXJldHVybiB0fWVsc2UgaWYodC5jaGlsZCE9PW51bGwpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1lKWJyZWFrO2Zvcig7dC5zaWJsaW5nPT09bnVsbDspe2lmKHQucmV0dXJuPT09bnVsbHx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ31yZXR1cm4gbnVsbH12YXIgaGw9W107ZnVuY3Rpb24gcmgoKXtmb3IodmFyIGU9MDtlPGhsLmxlbmd0aDtlKyspaGxbZV0uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDtobC5sZW5ndGg9MH12YXIgQW89eW4uUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixibD15bi5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxwcj0wLHZlPW51bGwsSWU9bnVsbCxDZT1udWxsLHRzPSExLFlhPSExLHlpPTAsWDE9MDtmdW5jdGlvbiBCZSgpe3Rocm93IEVycm9yKEQoMzIxKSl9ZnVuY3Rpb24gYWgoZSx0KXtpZih0PT09bnVsbClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoJiZuPGUubGVuZ3RoO24rKylpZighcXQoZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBpaChlLHQsbixyLGEsaSl7aWYocHI9aSx2ZT10LHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCx0LmxhbmVzPTAsQW8uY3VycmVudD1lPT09bnVsbHx8ZS5tZW1vaXplZFN0YXRlPT09bnVsbD9lTzp0TyxlPW4ocixhKSxZYSl7aT0wO2Rve2lmKFlhPSExLHlpPTAsMjU8PWkpdGhyb3cgRXJyb3IoRCgzMDEpKTtpKz0xLENlPUllPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLEFvLmN1cnJlbnQ9bk8sZT1uKHIsYSl9d2hpbGUoWWEpfWlmKEFvLmN1cnJlbnQ9bnMsdD1JZSE9PW51bGwmJkllLm5leHQhPT1udWxsLHByPTAsQ2U9SWU9dmU9bnVsbCx0cz0hMSx0KXRocm93IEVycm9yKEQoMzAwKSk7cmV0dXJuIGV9ZnVuY3Rpb24gb2goKXt2YXIgZT15aSE9PTA7cmV0dXJuIHlpPTAsZX1mdW5jdGlvbiBIdCgpe3ZhciBlPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O3JldHVybiBDZT09PW51bGw/dmUubWVtb2l6ZWRTdGF0ZT1DZT1lOkNlPUNlLm5leHQ9ZSxDZX1mdW5jdGlvbiBPdCgpe2lmKEllPT09bnVsbCl7dmFyIGU9dmUuYWx0ZXJuYXRlO2U9ZSE9PW51bGw/ZS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBlPUllLm5leHQ7dmFyIHQ9Q2U9PT1udWxsP3ZlLm1lbW9pemVkU3RhdGU6Q2UubmV4dDtpZih0IT09bnVsbClDZT10LEllPWU7ZWxzZXtpZihlPT09bnVsbCl0aHJvdyBFcnJvcihEKDMxMCkpO0llPWUsZT17bWVtb2l6ZWRTdGF0ZTpJZS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpJZS5iYXNlU3RhdGUsYmFzZVF1ZXVlOkllLmJhc2VRdWV1ZSxxdWV1ZTpJZS5xdWV1ZSxuZXh0Om51bGx9LENlPT09bnVsbD92ZS5tZW1vaXplZFN0YXRlPUNlPWU6Q2U9Q2UubmV4dD1lfXJldHVybiBDZX1mdW5jdGlvbiB2aShlLHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOnR9ZnVuY3Rpb24geWwoZSl7dmFyIHQ9T3QoKSxuPXQucXVldWU7aWYobj09PW51bGwpdGhyb3cgRXJyb3IoRCgzMTEpKTtuLmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj1JZSxhPXIuYmFzZVF1ZXVlLGk9bi5wZW5kaW5nO2lmKGkhPT1udWxsKXtpZihhIT09bnVsbCl7dmFyIG89YS5uZXh0O2EubmV4dD1pLm5leHQsaS5uZXh0PW99ci5iYXNlUXVldWU9YT1pLG4ucGVuZGluZz1udWxsfWlmKGEhPT1udWxsKXtpPWEubmV4dCxyPXIuYmFzZVN0YXRlO3ZhciBzPW89bnVsbCxsPW51bGwsdT1pO2Rve3ZhciBjPXUubGFuZTtpZigocHImYyk9PT1jKWwhPT1udWxsJiYobD1sLm5leHQ9e2xhbmU6MCxhY3Rpb246dS5hY3Rpb24saGFzRWFnZXJTdGF0ZTp1Lmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTp1LmVhZ2VyU3RhdGUsbmV4dDpudWxsfSkscj11Lmhhc0VhZ2VyU3RhdGU/dS5lYWdlclN0YXRlOmUocix1LmFjdGlvbik7ZWxzZXt2YXIgZD17bGFuZTpjLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9O2w9PT1udWxsPyhzPWw9ZCxvPXIpOmw9bC5uZXh0PWQsdmUubGFuZXN8PWMsZnJ8PWN9dT11Lm5leHR9d2hpbGUodSE9PW51bGwmJnUhPT1pKTtsPT09bnVsbD9vPXI6bC5uZXh0PXMscXQocix0Lm1lbW9pemVkU3RhdGUpfHwodHQ9ITApLHQubWVtb2l6ZWRTdGF0ZT1yLHQuYmFzZVN0YXRlPW8sdC5iYXNlUXVldWU9bCxuLmxhc3RSZW5kZXJlZFN0YXRlPXJ9aWYoZT1uLmludGVybGVhdmVkLGUhPT1udWxsKXthPWU7ZG8gaT1hLmxhbmUsdmUubGFuZXN8PWksZnJ8PWksYT1hLm5leHQ7d2hpbGUoYSE9PWUpfWVsc2UgYT09PW51bGwmJihuLmxhbmVzPTApO3JldHVyblt0Lm1lbW9pemVkU3RhdGUsbi5kaXNwYXRjaF19ZnVuY3Rpb24gdmwoZSl7dmFyIHQ9T3QoKSxuPXQucXVldWU7aWYobj09PW51bGwpdGhyb3cgRXJyb3IoRCgzMTEpKTtuLmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj1uLmRpc3BhdGNoLGE9bi5wZW5kaW5nLGk9dC5tZW1vaXplZFN0YXRlO2lmKGEhPT1udWxsKXtuLnBlbmRpbmc9bnVsbDt2YXIgbz1hPWEubmV4dDtkbyBpPWUoaSxvLmFjdGlvbiksbz1vLm5leHQ7d2hpbGUobyE9PWEpO3F0KGksdC5tZW1vaXplZFN0YXRlKXx8KHR0PSEwKSx0Lm1lbW9pemVkU3RhdGU9aSx0LmJhc2VRdWV1ZT09PW51bGwmJih0LmJhc2VTdGF0ZT1pKSxuLmxhc3RSZW5kZXJlZFN0YXRlPWl9cmV0dXJuW2kscl19ZnVuY3Rpb24gUVIoKXt9ZnVuY3Rpb24gSlIoZSx0KXt2YXIgbj12ZSxyPU90KCksYT10KCksaT0hcXQoci5tZW1vaXplZFN0YXRlLGEpO2lmKGkmJihyLm1lbW9pemVkU3RhdGU9YSx0dD0hMCkscj1yLnF1ZXVlLHNoKG5fLmJpbmQobnVsbCxuLHIsZSksW2VdKSxyLmdldFNuYXBzaG90IT09dHx8aXx8Q2UhPT1udWxsJiZDZS5tZW1vaXplZFN0YXRlLnRhZyYxKXtpZihuLmZsYWdzfD0yMDQ4LEVpKDksdF8uYmluZChudWxsLG4scixhLHQpLHZvaWQgMCxudWxsKSxPZT09PW51bGwpdGhyb3cgRXJyb3IoRCgzNDkpKTtwciYzMHx8ZV8obix0LGEpfXJldHVybiBhfWZ1bmN0aW9uIGVfKGUsdCxuKXtlLmZsYWdzfD0xNjM4NCxlPXtnZXRTbmFwc2hvdDp0LHZhbHVlOm59LHQ9dmUudXBkYXRlUXVldWUsdD09PW51bGw/KHQ9e2xhc3RFZmZlY3Q6bnVsbCxzdG9yZXM6bnVsbH0sdmUudXBkYXRlUXVldWU9dCx0LnN0b3Jlcz1bZV0pOihuPXQuc3RvcmVzLG49PT1udWxsP3Quc3RvcmVzPVtlXTpuLnB1c2goZSkpfWZ1bmN0aW9uIHRfKGUsdCxuLHIpe3QudmFsdWU9bix0LmdldFNuYXBzaG90PXIscl8odCkmJmFfKGUpfWZ1bmN0aW9uIG5fKGUsdCxuKXtyZXR1cm4gbihmdW5jdGlvbigpe3JfKHQpJiZhXyhlKX0pfWZ1bmN0aW9uIHJfKGUpe3ZhciB0PWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgbj10KCk7cmV0dXJuIXF0KGUsbil9Y2F0Y2h7cmV0dXJuITB9fWZ1bmN0aW9uIGFfKGUpe3ZhciB0PWduKGUsMSk7dCE9PW51bGwmJkd0KHQsZSwxLC0xKX1mdW5jdGlvbiBDeShlKXt2YXIgdD1IdCgpO3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIiYmKGU9ZSgpKSx0Lm1lbW9pemVkU3RhdGU9dC5iYXNlU3RhdGU9ZSxlPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjp2aSxsYXN0UmVuZGVyZWRTdGF0ZTplfSx0LnF1ZXVlPWUsZT1lLmRpc3BhdGNoPUoxLmJpbmQobnVsbCx2ZSxlKSxbdC5tZW1vaXplZFN0YXRlLGVdfWZ1bmN0aW9uIEVpKGUsdCxuLHIpe3JldHVybiBlPXt0YWc6ZSxjcmVhdGU6dCxkZXN0cm95Om4sZGVwczpyLG5leHQ6bnVsbH0sdD12ZS51cGRhdGVRdWV1ZSx0PT09bnVsbD8odD17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSx2ZS51cGRhdGVRdWV1ZT10LHQubGFzdEVmZmVjdD1lLm5leHQ9ZSk6KG49dC5sYXN0RWZmZWN0LG49PT1udWxsP3QubGFzdEVmZmVjdD1lLm5leHQ9ZToocj1uLm5leHQsbi5uZXh0PWUsZS5uZXh0PXIsdC5sYXN0RWZmZWN0PWUpKSxlfWZ1bmN0aW9uIGlfKCl7cmV0dXJuIE90KCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiB4byhlLHQsbixyKXt2YXIgYT1IdCgpO3ZlLmZsYWdzfD1lLGEubWVtb2l6ZWRTdGF0ZT1FaSgxfHQsbix2b2lkIDAscj09PXZvaWQgMD9udWxsOnIpfWZ1bmN0aW9uIEFzKGUsdCxuLHIpe3ZhciBhPU90KCk7cj1yPT09dm9pZCAwP251bGw6cjt2YXIgaT12b2lkIDA7aWYoSWUhPT1udWxsKXt2YXIgbz1JZS5tZW1vaXplZFN0YXRlO2lmKGk9by5kZXN0cm95LHIhPT1udWxsJiZhaChyLG8uZGVwcykpe2EubWVtb2l6ZWRTdGF0ZT1FaSh0LG4saSxyKTtyZXR1cm59fXZlLmZsYWdzfD1lLGEubWVtb2l6ZWRTdGF0ZT1FaSgxfHQsbixpLHIpfWZ1bmN0aW9uIE95KGUsdCl7cmV0dXJuIHhvKDgzOTA2NTYsOCxlLHQpfWZ1bmN0aW9uIHNoKGUsdCl7cmV0dXJuIEFzKDIwNDgsOCxlLHQpfWZ1bmN0aW9uIG9fKGUsdCl7cmV0dXJuIEFzKDQsMixlLHQpfWZ1bmN0aW9uIHNfKGUsdCl7cmV0dXJuIEFzKDQsNCxlLHQpfWZ1bmN0aW9uIGxfKGUsdCl7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIGU9ZSgpLHQoZSksZnVuY3Rpb24oKXt0KG51bGwpfTtpZih0IT1udWxsKXJldHVybiBlPWUoKSx0LmN1cnJlbnQ9ZSxmdW5jdGlvbigpe3QuY3VycmVudD1udWxsfX1mdW5jdGlvbiB1XyhlLHQsbil7cmV0dXJuIG49biE9bnVsbD9uLmNvbmNhdChbZV0pOm51bGwsQXMoNCw0LGxfLmJpbmQobnVsbCx0LGUpLG4pfWZ1bmN0aW9uIGxoKCl7fWZ1bmN0aW9uIGNfKGUsdCl7dmFyIG49T3QoKTt0PXQ9PT12b2lkIDA/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gciE9PW51bGwmJnQhPT1udWxsJiZhaCh0LHJbMV0pP3JbMF06KG4ubWVtb2l6ZWRTdGF0ZT1bZSx0XSxlKX1mdW5jdGlvbiBkXyhlLHQpe3ZhciBuPU90KCk7dD10PT09dm9pZCAwP251bGw6dDt2YXIgcj1uLm1lbW9pemVkU3RhdGU7cmV0dXJuIHIhPT1udWxsJiZ0IT09bnVsbCYmYWgodCxyWzFdKT9yWzBdOihlPWUoKSxuLm1lbW9pemVkU3RhdGU9W2UsdF0sZSl9ZnVuY3Rpb24gcF8oZSx0LG4pe3JldHVybiBwciYyMT8ocXQobix0KXx8KG49YlIoKSx2ZS5sYW5lc3w9bixmcnw9bixlLmJhc2VTdGF0ZT0hMCksdCk6KGUuYmFzZVN0YXRlJiYoZS5iYXNlU3RhdGU9ITEsdHQ9ITApLGUubWVtb2l6ZWRTdGF0ZT1uKX1mdW5jdGlvbiBaMShlLHQpe3ZhciBuPWllO2llPW4hPT0wJiY0Pm4/bjo0LGUoITApO3ZhciByPWJsLnRyYW5zaXRpb247YmwudHJhbnNpdGlvbj17fTt0cnl7ZSghMSksdCgpfWZpbmFsbHl7aWU9bixibC50cmFuc2l0aW9uPXJ9fWZ1bmN0aW9uIGZfKCl7cmV0dXJuIE90KCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBRMShlLHQsbil7dmFyIHI9TW4oZSk7aWYobj17bGFuZTpyLGFjdGlvbjpuLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sbV8oZSkpZ18odCxuKTtlbHNlIGlmKG49S1IoZSx0LG4sciksbiE9PW51bGwpe3ZhciBhPUtlKCk7R3QobixlLHIsYSksaF8obix0LHIpfX1mdW5jdGlvbiBKMShlLHQsbil7dmFyIHI9TW4oZSksYT17bGFuZTpyLGFjdGlvbjpuLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYobV8oZSkpZ18odCxhKTtlbHNle3ZhciBpPWUuYWx0ZXJuYXRlO2lmKGUubGFuZXM9PT0wJiYoaT09PW51bGx8fGkubGFuZXM9PT0wKSYmKGk9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyLGkhPT1udWxsKSl0cnl7dmFyIG89dC5sYXN0UmVuZGVyZWRTdGF0ZSxzPWkobyxuKTtpZihhLmhhc0VhZ2VyU3RhdGU9ITAsYS5lYWdlclN0YXRlPXMscXQocyxvKSl7dmFyIGw9dC5pbnRlcmxlYXZlZDtsPT09bnVsbD8oYS5uZXh0PWEsSmcodCkpOihhLm5leHQ9bC5uZXh0LGwubmV4dD1hKSx0LmludGVybGVhdmVkPWE7cmV0dXJufX1jYXRjaHt9ZmluYWxseXt9bj1LUihlLHQsYSxyKSxuIT09bnVsbCYmKGE9S2UoKSxHdChuLGUscixhKSxoXyhuLHQscikpfX1mdW5jdGlvbiBtXyhlKXt2YXIgdD1lLmFsdGVybmF0ZTtyZXR1cm4gZT09PXZlfHx0IT09bnVsbCYmdD09PXZlfWZ1bmN0aW9uIGdfKGUsdCl7WWE9dHM9ITA7dmFyIG49ZS5wZW5kaW5nO249PT1udWxsP3QubmV4dD10Oih0Lm5leHQ9bi5uZXh0LG4ubmV4dD10KSxlLnBlbmRpbmc9dH1mdW5jdGlvbiBoXyhlLHQsbil7aWYobiY0MTk0MjQwKXt2YXIgcj10LmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLG58PXIsdC5sYW5lcz1uLEJnKGUsbil9fXZhciBucz17cmVhZENvbnRleHQ6Q3QsdXNlQ2FsbGJhY2s6QmUsdXNlQ29udGV4dDpCZSx1c2VFZmZlY3Q6QmUsdXNlSW1wZXJhdGl2ZUhhbmRsZTpCZSx1c2VJbnNlcnRpb25FZmZlY3Q6QmUsdXNlTGF5b3V0RWZmZWN0OkJlLHVzZU1lbW86QmUsdXNlUmVkdWNlcjpCZSx1c2VSZWY6QmUsdXNlU3RhdGU6QmUsdXNlRGVidWdWYWx1ZTpCZSx1c2VEZWZlcnJlZFZhbHVlOkJlLHVzZVRyYW5zaXRpb246QmUsdXNlTXV0YWJsZVNvdXJjZTpCZSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpCZSx1c2VJZDpCZSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LGVPPXtyZWFkQ29udGV4dDpDdCx1c2VDYWxsYmFjazpmdW5jdGlvbihlLHQpe3JldHVybiBIdCgpLm1lbW9pemVkU3RhdGU9W2UsdD09PXZvaWQgMD9udWxsOnRdLGV9LHVzZUNvbnRleHQ6Q3QsdXNlRWZmZWN0Ok95LHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuPW4hPW51bGw/bi5jb25jYXQoW2VdKTpudWxsLHhvKDQxOTQzMDgsNCxsXy5iaW5kKG51bGwsdCxlKSxuKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHhvKDQxOTQzMDgsNCxlLHQpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4geG8oNCwyLGUsdCl9LHVzZU1lbW86ZnVuY3Rpb24oZSx0KXt2YXIgbj1IdCgpO3JldHVybiB0PXQ9PT12b2lkIDA/bnVsbDp0LGU9ZSgpLG4ubWVtb2l6ZWRTdGF0ZT1bZSx0XSxlfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1IdCgpO3JldHVybiB0PW4hPT12b2lkIDA/bih0KTp0LHIubWVtb2l6ZWRTdGF0ZT1yLmJhc2VTdGF0ZT10LGU9e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmUsbGFzdFJlbmRlcmVkU3RhdGU6dH0sci5xdWV1ZT1lLGU9ZS5kaXNwYXRjaD1RMS5iaW5kKG51bGwsdmUsZSksW3IubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3ZhciB0PUh0KCk7cmV0dXJuIGU9e2N1cnJlbnQ6ZX0sdC5tZW1vaXplZFN0YXRlPWV9LHVzZVN0YXRlOkN5LHVzZURlYnVnVmFsdWU6bGgsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gSHQoKS5tZW1vaXplZFN0YXRlPWV9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1DeSghMSksdD1lWzBdO3JldHVybiBlPVoxLmJpbmQobnVsbCxlWzFdKSxIdCgpLm1lbW9pemVkU3RhdGU9ZSxbdCxlXX0sdXNlTXV0YWJsZVNvdXJjZTpmdW5jdGlvbigpe30sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXZlLGE9SHQoKTtpZihnZSl7aWYobj09PXZvaWQgMCl0aHJvdyBFcnJvcihEKDQwNykpO249bigpfWVsc2V7aWYobj10KCksT2U9PT1udWxsKXRocm93IEVycm9yKEQoMzQ5KSk7cHImMzB8fGVfKHIsdCxuKX1hLm1lbW9pemVkU3RhdGU9bjt2YXIgaT17dmFsdWU6bixnZXRTbmFwc2hvdDp0fTtyZXR1cm4gYS5xdWV1ZT1pLE95KG5fLmJpbmQobnVsbCxyLGksZSksW2VdKSxyLmZsYWdzfD0yMDQ4LEVpKDksdF8uYmluZChudWxsLHIsaSxuLHQpLHZvaWQgMCxudWxsKSxufSx1c2VJZDpmdW5jdGlvbigpe3ZhciBlPUh0KCksdD1PZS5pZGVudGlmaWVyUHJlZml4O2lmKGdlKXt2YXIgbj11bixyPWxuO249KHImfigxPDwzMi1qdChyKS0xKSkudG9TdHJpbmcoMzIpK24sdD0iOiIrdCsiUiIrbixuPXlpKyssMDxuJiYodCs9IkgiK24udG9TdHJpbmcoMzIpKSx0Kz0iOiJ9ZWxzZSBuPVgxKyssdD0iOiIrdCsiciIrbi50b1N0cmluZygzMikrIjoiO3JldHVybiBlLm1lbW9pemVkU3RhdGU9dH0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSx0Tz17cmVhZENvbnRleHQ6Q3QsdXNlQ2FsbGJhY2s6Y18sdXNlQ29udGV4dDpDdCx1c2VFZmZlY3Q6c2gsdXNlSW1wZXJhdGl2ZUhhbmRsZTp1Xyx1c2VJbnNlcnRpb25FZmZlY3Q6b18sdXNlTGF5b3V0RWZmZWN0OnNfLHVzZU1lbW86ZF8sdXNlUmVkdWNlcjp5bCx1c2VSZWY6aV8sdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4geWwodmkpfSx1c2VEZWJ1Z1ZhbHVlOmxoLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9T3QoKTtyZXR1cm4gcF8odCxJZS5tZW1vaXplZFN0YXRlLGUpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9eWwodmkpWzBdLHQ9T3QoKS5tZW1vaXplZFN0YXRlO3JldHVybltlLHRdfSx1c2VNdXRhYmxlU291cmNlOlFSLHVzZVN5bmNFeHRlcm5hbFN0b3JlOkpSLHVzZUlkOmZfLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sbk89e3JlYWRDb250ZXh0OkN0LHVzZUNhbGxiYWNrOmNfLHVzZUNvbnRleHQ6Q3QsdXNlRWZmZWN0OnNoLHVzZUltcGVyYXRpdmVIYW5kbGU6dV8sdXNlSW5zZXJ0aW9uRWZmZWN0Om9fLHVzZUxheW91dEVmZmVjdDpzXyx1c2VNZW1vOmRfLHVzZVJlZHVjZXI6dmwsdXNlUmVmOmlfLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHZsKHZpKX0sdXNlRGVidWdWYWx1ZTpsaCx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PU90KCk7cmV0dXJuIEllPT09bnVsbD90Lm1lbW9pemVkU3RhdGU9ZTpwXyh0LEllLm1lbW9pemVkU3RhdGUsZSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT12bCh2aSlbMF0sdD1PdCgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW2UsdF19LHVzZU11dGFibGVTb3VyY2U6UVIsdXNlU3luY0V4dGVybmFsU3RvcmU6SlIsdXNlSWQ6Zl8sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBCdChlLHQpe2lmKGUmJmUuZGVmYXVsdFByb3BzKXt0PUVlKHt9LHQpLGU9ZS5kZWZhdWx0UHJvcHM7Zm9yKHZhciBuIGluIGUpdFtuXT09PXZvaWQgMCYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9cmV0dXJuIHR9ZnVuY3Rpb24gT20oZSx0LG4scil7dD1lLm1lbW9pemVkU3RhdGUsbj1uKHIsdCksbj1uPT1udWxsP3Q6RWUoe30sdCxuKSxlLm1lbW9pemVkU3RhdGU9bixlLmxhbmVzPT09MCYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW4pfXZhciB4cz17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe3JldHVybihlPWUuX3JlYWN0SW50ZXJuYWxzKT9ocihlKT09PWU6ITF9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1LZSgpLGE9TW4oZSksaT1jbihyLGEpO2kucGF5bG9hZD10LG4hPW51bGwmJihpLmNhbGxiYWNrPW4pLHQ9TG4oZSxpLGEpLHQhPT1udWxsJiYoR3QodCxlLGEsciksa28odCxlLGEpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1LZSgpLGE9TW4oZSksaT1jbihyLGEpO2kudGFnPTEsaS5wYXlsb2FkPXQsbiE9bnVsbCYmKGkuY2FsbGJhY2s9biksdD1MbihlLGksYSksdCE9PW51bGwmJihHdCh0LGUsYSxyKSxrbyh0LGUsYSkpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oZSx0KXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciBuPUtlKCkscj1NbihlKSxhPWNuKG4scik7YS50YWc9Mix0IT1udWxsJiYoYS5jYWxsYmFjaz10KSx0PUxuKGUsYSxyKSx0IT09bnVsbCYmKEd0KHQsZSxyLG4pLGtvKHQsZSxyKSl9fTtmdW5jdGlvbiBMeShlLHQsbixyLGEsaSxvKXtyZXR1cm4gZT1lLnN0YXRlTm9kZSx0eXBlb2YgZS5zaG91bGRDb21wb25lbnRVcGRhdGU9PSJmdW5jdGlvbiI/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixpLG8pOnQucHJvdG90eXBlJiZ0LnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudD8hcGkobixyKXx8IXBpKGEsaSk6ITB9ZnVuY3Rpb24gYl8oZSx0LG4pe3ZhciByPSExLGE9Qm4saT10LmNvbnRleHRUeXBlO3JldHVybiB0eXBlb2YgaT09Im9iamVjdCImJmkhPT1udWxsP2k9Q3QoaSk6KGE9YXQodCk/Y3I6cWUuY3VycmVudCxyPXQuY29udGV4dFR5cGVzLGk9KHI9ciE9bnVsbCk/SnIoZSxhKTpCbiksdD1uZXcgdChuLGkpLGUubWVtb2l6ZWRTdGF0ZT10LnN0YXRlIT09bnVsbCYmdC5zdGF0ZSE9PXZvaWQgMD90LnN0YXRlOm51bGwsdC51cGRhdGVyPXhzLGUuc3RhdGVOb2RlPXQsdC5fcmVhY3RJbnRlcm5hbHM9ZSxyJiYoZT1lLnN0YXRlTm9kZSxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9YSxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWkpLHR9ZnVuY3Rpb24gRHkoZSx0LG4scil7ZT10LnN0YXRlLHR5cGVvZiB0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9PSJmdW5jdGlvbiImJnQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLHIpLHR5cGVvZiB0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzPT0iZnVuY3Rpb24iJiZ0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksdC5zdGF0ZSE9PWUmJnhzLmVucXVldWVSZXBsYWNlU3RhdGUodCx0LnN0YXRlLG51bGwpfWZ1bmN0aW9uIExtKGUsdCxuLHIpe3ZhciBhPWUuc3RhdGVOb2RlO2EucHJvcHM9bixhLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxhLnJlZnM9e30sZWgoZSk7dmFyIGk9dC5jb250ZXh0VHlwZTt0eXBlb2YgaT09Im9iamVjdCImJmkhPT1udWxsP2EuY29udGV4dD1DdChpKTooaT1hdCh0KT9jcjpxZS5jdXJyZW50LGEuY29udGV4dD1KcihlLGkpKSxhLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxpPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLHR5cGVvZiBpPT0iZnVuY3Rpb24iJiYoT20oZSx0LGksbiksYS5zdGF0ZT1lLm1lbW9pemVkU3RhdGUpLHR5cGVvZiB0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcz09ImZ1bmN0aW9uInx8dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiJ8fHR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQhPSJmdW5jdGlvbiImJnR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uInx8KHQ9YS5zdGF0ZSx0eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmEuY29tcG9uZW50V2lsbE1vdW50KCksdHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksdCE9PWEuc3RhdGUmJnhzLmVucXVldWVSZXBsYWNlU3RhdGUoYSxhLnN0YXRlLG51bGwpLEpvKGUsbixhLHIpLGEuc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSx0eXBlb2YgYS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKGUuZmxhZ3N8PTQxOTQzMDgpfWZ1bmN0aW9uIHJhKGUsdCl7dHJ5e3ZhciBuPSIiLHI9dDtkbyBuKz1OMChyKSxyPXIucmV0dXJuO3doaWxlKHIpO3ZhciBhPW59Y2F0Y2goaSl7YT1gCkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IGAraS5tZXNzYWdlK2AKYCtpLnN0YWNrfXJldHVybnt2YWx1ZTplLHNvdXJjZTp0LHN0YWNrOmEsZGlnZXN0Om51bGx9fWZ1bmN0aW9uIEVsKGUsdCxuKXtyZXR1cm57dmFsdWU6ZSxzb3VyY2U6bnVsbCxzdGFjazpuPz9udWxsLGRpZ2VzdDp0Pz9udWxsfX1mdW5jdGlvbiBEbShlLHQpe3RyeXtjb25zb2xlLmVycm9yKHQudmFsdWUpfWNhdGNoKG4pe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBufSl9fXZhciByTz10eXBlb2YgV2Vha01hcD09ImZ1bmN0aW9uIj9XZWFrTWFwOk1hcDtmdW5jdGlvbiB5XyhlLHQsbil7bj1jbigtMSxuKSxuLnRhZz0zLG4ucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgcj10LnZhbHVlO3JldHVybiBuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7YXN8fChhcz0hMCxxbT1yKSxEbShlLHQpfSxufWZ1bmN0aW9uIHZfKGUsdCxuKXtuPWNuKC0xLG4pLG4udGFnPTM7dmFyIHI9ZS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIil7dmFyIGE9dC52YWx1ZTtuLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcihhKX0sbi5jYWxsYmFjaz1mdW5jdGlvbigpe0RtKGUsdCl9fXZhciBpPWUuc3RhdGVOb2RlO3JldHVybiBpIT09bnVsbCYmdHlwZW9mIGkuY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7RG0oZSx0KSx0eXBlb2YgciE9ImZ1bmN0aW9uIiYmKERuPT09bnVsbD9Ebj1uZXcgU2V0KFt0aGlzXSk6RG4uYWRkKHRoaXMpKTt2YXIgbz10LnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2godC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6byE9PW51bGw/bzoiIn0pfSksbn1mdW5jdGlvbiBNeShlLHQsbil7dmFyIHI9ZS5waW5nQ2FjaGU7aWYocj09PW51bGwpe3I9ZS5waW5nQ2FjaGU9bmV3IHJPO3ZhciBhPW5ldyBTZXQ7ci5zZXQodCxhKX1lbHNlIGE9ci5nZXQodCksYT09PXZvaWQgMCYmKGE9bmV3IFNldCxyLnNldCh0LGEpKTthLmhhcyhuKXx8KGEuYWRkKG4pLGU9Yk8uYmluZChudWxsLGUsdCxuKSx0LnRoZW4oZSxlKSl9ZnVuY3Rpb24gUHkoZSl7ZG97dmFyIHQ7aWYoKHQ9ZS50YWc9PT0xMykmJih0PWUubWVtb2l6ZWRTdGF0ZSx0PXQhPT1udWxsP3QuZGVoeWRyYXRlZCE9PW51bGw6ITApLHQpcmV0dXJuIGU7ZT1lLnJldHVybn13aGlsZShlIT09bnVsbCk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gRnkoZSx0LG4scixhKXtyZXR1cm4gZS5tb2RlJjE/KGUuZmxhZ3N8PTY1NTM2LGUubGFuZXM9YSxlKTooZT09PXQ/ZS5mbGFnc3w9NjU1MzY6KGUuZmxhZ3N8PTEyOCxuLmZsYWdzfD0xMzEwNzIsbi5mbGFncyY9LTUyODA1LG4udGFnPT09MSYmKG4uYWx0ZXJuYXRlPT09bnVsbD9uLnRhZz0xNzoodD1jbigtMSwxKSx0LnRhZz0yLExuKG4sdCwxKSkpLG4ubGFuZXN8PTEpLGUpfXZhciBhTz15bi5SZWFjdEN1cnJlbnRPd25lcix0dD0hMTtmdW5jdGlvbiBXZShlLHQsbixyKXt0LmNoaWxkPWU9PT1udWxsP1lSKHQsbnVsbCxuLHIpOnRhKHQsZS5jaGlsZCxuLHIpfWZ1bmN0aW9uIFV5KGUsdCxuLHIsYSl7bj1uLnJlbmRlcjt2YXIgaT10LnJlZjtyZXR1cm4gWXIodCxhKSxyPWloKGUsdCxuLHIsaSxhKSxuPW9oKCksZSE9PW51bGwmJiF0dD8odC51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQuZmxhZ3MmPS0yMDUzLGUubGFuZXMmPX5hLGhuKGUsdCxhKSk6KGdlJiZuJiZXZyh0KSx0LmZsYWdzfD0xLFdlKGUsdCxyLGEpLHQuY2hpbGQpfWZ1bmN0aW9uIEJ5KGUsdCxuLHIsYSl7aWYoZT09PW51bGwpe3ZhciBpPW4udHlwZTtyZXR1cm4gdHlwZW9mIGk9PSJmdW5jdGlvbiImJiFoaChpKSYmaS5kZWZhdWx0UHJvcHM9PT12b2lkIDAmJm4uY29tcGFyZT09PW51bGwmJm4uZGVmYXVsdFByb3BzPT09dm9pZCAwPyh0LnRhZz0xNSx0LnR5cGU9aSxFXyhlLHQsaSxyLGEpKTooZT1ObyhuLnR5cGUsbnVsbCxyLHQsdC5tb2RlLGEpLGUucmVmPXQucmVmLGUucmV0dXJuPXQsdC5jaGlsZD1lKX1pZihpPWUuY2hpbGQsIShlLmxhbmVzJmEpKXt2YXIgbz1pLm1lbW9pemVkUHJvcHM7aWYobj1uLmNvbXBhcmUsbj1uIT09bnVsbD9uOnBpLG4obyxyKSYmZS5yZWY9PT10LnJlZilyZXR1cm4gaG4oZSx0LGEpfXJldHVybiB0LmZsYWdzfD0xLGU9UG4oaSxyKSxlLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZX1mdW5jdGlvbiBFXyhlLHQsbixyLGEpe2lmKGUhPT1udWxsKXt2YXIgaT1lLm1lbW9pemVkUHJvcHM7aWYocGkoaSxyKSYmZS5yZWY9PT10LnJlZilpZih0dD0hMSx0LnBlbmRpbmdQcm9wcz1yPWksKGUubGFuZXMmYSkhPT0wKWUuZmxhZ3MmMTMxMDcyJiYodHQ9ITApO2Vsc2UgcmV0dXJuIHQubGFuZXM9ZS5sYW5lcyxobihlLHQsYSl9cmV0dXJuIE1tKGUsdCxuLHIsYSl9ZnVuY3Rpb24gU18oZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzLGE9ci5jaGlsZHJlbixpPWUhPT1udWxsP2UubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHIubW9kZT09PSJoaWRkZW4iKWlmKCEodC5tb2RlJjEpKXQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sbGUoRnIsZHQpLGR0fD1uO2Vsc2V7aWYoIShuJjEwNzM3NDE4MjQpKXJldHVybiBlPWkhPT1udWxsP2kuYmFzZUxhbmVzfG46bix0LmxhbmVzPXQuY2hpbGRMYW5lcz0xMDczNzQxODI0LHQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmUsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sdC51cGRhdGVRdWV1ZT1udWxsLGxlKEZyLGR0KSxkdHw9ZSxudWxsO3QubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0scj1pIT09bnVsbD9pLmJhc2VMYW5lczpuLGxlKEZyLGR0KSxkdHw9cn1lbHNlIGkhPT1udWxsPyhyPWkuYmFzZUxhbmVzfG4sdC5tZW1vaXplZFN0YXRlPW51bGwpOnI9bixsZShGcixkdCksZHR8PXI7cmV0dXJuIFdlKGUsdCxhLG4pLHQuY2hpbGR9ZnVuY3Rpb24gd18oZSx0KXt2YXIgbj10LnJlZjsoZT09PW51bGwmJm4hPT1udWxsfHxlIT09bnVsbCYmZS5yZWYhPT1uKSYmKHQuZmxhZ3N8PTUxMix0LmZsYWdzfD0yMDk3MTUyKX1mdW5jdGlvbiBNbShlLHQsbixyLGEpe3ZhciBpPWF0KG4pP2NyOnFlLmN1cnJlbnQ7cmV0dXJuIGk9SnIodCxpKSxZcih0LGEpLG49aWgoZSx0LG4scixpLGEpLHI9b2goKSxlIT09bnVsbCYmIXR0Pyh0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdC5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fmEsaG4oZSx0LGEpKTooZ2UmJnImJldnKHQpLHQuZmxhZ3N8PTEsV2UoZSx0LG4sYSksdC5jaGlsZCl9ZnVuY3Rpb24gJHkoZSx0LG4scixhKXtpZihhdChuKSl7dmFyIGk9ITA7WW8odCl9ZWxzZSBpPSExO2lmKFlyKHQsYSksdC5zdGF0ZU5vZGU9PT1udWxsKVJvKGUsdCksYl8odCxuLHIpLExtKHQsbixyLGEpLHI9ITA7ZWxzZSBpZihlPT09bnVsbCl7dmFyIG89dC5zdGF0ZU5vZGUscz10Lm1lbW9pemVkUHJvcHM7by5wcm9wcz1zO3ZhciBsPW8uY29udGV4dCx1PW4uY29udGV4dFR5cGU7dHlwZW9mIHU9PSJvYmplY3QiJiZ1IT09bnVsbD91PUN0KHUpOih1PWF0KG4pP2NyOnFlLmN1cnJlbnQsdT1Kcih0LHUpKTt2YXIgYz1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyxkPXR5cGVvZiBjPT0iZnVuY3Rpb24ifHx0eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIjtkfHx0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KHMhPT1yfHxsIT09dSkmJkR5KHQsbyxyLHUpLFRuPSExO3ZhciBwPXQubWVtb2l6ZWRTdGF0ZTtvLnN0YXRlPXAsSm8odCxyLG8sYSksbD10Lm1lbW9pemVkU3RhdGUscyE9PXJ8fHAhPT1sfHxydC5jdXJyZW50fHxUbj8odHlwZW9mIGM9PSJmdW5jdGlvbiImJihPbSh0LG4sYyxyKSxsPXQubWVtb2l6ZWRTdGF0ZSksKHM9VG58fEx5KHQsbixzLHIscCxsLHUpKT8oZHx8dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwodHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZvLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJm8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSx0eXBlb2Ygby5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQxOTQzMDgpKToodHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJih0LmZsYWdzfD00MTk0MzA4KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9bCksby5wcm9wcz1yLG8uc3RhdGU9bCxvLmNvbnRleHQ9dSxyPXMpOih0eXBlb2Ygby5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQxOTQzMDgpLHI9ITEpfWVsc2V7bz10LnN0YXRlTm9kZSxYUihlLHQpLHM9dC5tZW1vaXplZFByb3BzLHU9dC50eXBlPT09dC5lbGVtZW50VHlwZT9zOkJ0KHQudHlwZSxzKSxvLnByb3BzPXUsZD10LnBlbmRpbmdQcm9wcyxwPW8uY29udGV4dCxsPW4uY29udGV4dFR5cGUsdHlwZW9mIGw9PSJvYmplY3QiJiZsIT09bnVsbD9sPUN0KGwpOihsPWF0KG4pP2NyOnFlLmN1cnJlbnQsbD1Kcih0LGwpKTt2YXIgZj1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsoYz10eXBlb2YgZj09ImZ1bmN0aW9uInx8dHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiIpfHx0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIG8uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KHMhPT1kfHxwIT09bCkmJkR5KHQsbyxyLGwpLFRuPSExLHA9dC5tZW1vaXplZFN0YXRlLG8uc3RhdGU9cCxKbyh0LHIsbyxhKTt2YXIgeT10Lm1lbW9pemVkU3RhdGU7cyE9PWR8fHAhPT15fHxydC5jdXJyZW50fHxUbj8odHlwZW9mIGY9PSJmdW5jdGlvbiImJihPbSh0LG4sZixyKSx5PXQubWVtb2l6ZWRTdGF0ZSksKHU9VG58fEx5KHQsbix1LHIscCx5LGwpfHwhMSk/KGN8fHR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlIT0iZnVuY3Rpb24iJiZ0eXBlb2Ygby5jb21wb25lbnRXaWxsVXBkYXRlIT0iZnVuY3Rpb24ifHwodHlwZW9mIG8uY29tcG9uZW50V2lsbFVwZGF0ZT09ImZ1bmN0aW9uIiYmby5jb21wb25lbnRXaWxsVXBkYXRlKHIseSxsKSx0eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZT09ImZ1bmN0aW9uIiYmby5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShyLHksbCkpLHR5cGVvZiBvLmNvbXBvbmVudERpZFVwZGF0ZT09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQpLHR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlPT0iZnVuY3Rpb24iJiYodC5mbGFnc3w9MTAyNCkpOih0eXBlb2Ygby5jb21wb25lbnREaWRVcGRhdGUhPSJmdW5jdGlvbiJ8fHM9PT1lLm1lbW9pemVkUHJvcHMmJnA9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD00KSx0eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSE9ImZ1bmN0aW9uInx8cz09PWUubWVtb2l6ZWRQcm9wcyYmcD09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTEwMjQpLHQubWVtb2l6ZWRQcm9wcz1yLHQubWVtb2l6ZWRTdGF0ZT15KSxvLnByb3BzPXIsby5zdGF0ZT15LG8uY29udGV4dD1sLHI9dSk6KHR5cGVvZiBvLmNvbXBvbmVudERpZFVwZGF0ZSE9ImZ1bmN0aW9uInx8cz09PWUubWVtb2l6ZWRQcm9wcyYmcD09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLHR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIT0iZnVuY3Rpb24ifHxzPT09ZS5tZW1vaXplZFByb3BzJiZwPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCkscj0hMSl9cmV0dXJuIFBtKGUsdCxuLHIsaSxhKX1mdW5jdGlvbiBQbShlLHQsbixyLGEsaSl7d18oZSx0KTt2YXIgbz0odC5mbGFncyYxMjgpIT09MDtpZighciYmIW8pcmV0dXJuIGEmJkF5KHQsbiwhMSksaG4oZSx0LGkpO3I9dC5zdGF0ZU5vZGUsYU8uY3VycmVudD10O3ZhciBzPW8mJnR5cGVvZiBuLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciE9ImZ1bmN0aW9uIj9udWxsOnIucmVuZGVyKCk7cmV0dXJuIHQuZmxhZ3N8PTEsZSE9PW51bGwmJm8/KHQuY2hpbGQ9dGEodCxlLmNoaWxkLG51bGwsaSksdC5jaGlsZD10YSh0LG51bGwscyxpKSk6V2UoZSx0LHMsaSksdC5tZW1vaXplZFN0YXRlPXIuc3RhdGUsYSYmQXkodCxuLCEwKSx0LmNoaWxkfWZ1bmN0aW9uIFRfKGUpe3ZhciB0PWUuc3RhdGVOb2RlO3QucGVuZGluZ0NvbnRleHQ/a3koZSx0LnBlbmRpbmdDb250ZXh0LHQucGVuZGluZ0NvbnRleHQhPT10LmNvbnRleHQpOnQuY29udGV4dCYma3koZSx0LmNvbnRleHQsITEpLHRoKGUsdC5jb250YWluZXJJbmZvKX1mdW5jdGlvbiB6eShlLHQsbixyLGEpe3JldHVybiBlYSgpLEtnKGEpLHQuZmxhZ3N8PTI1NixXZShlLHQsbixyKSx0LmNoaWxkfXZhciBGbT17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjB9O2Z1bmN0aW9uIFVtKGUpe3JldHVybntiYXNlTGFuZXM6ZSxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfX1mdW5jdGlvbiBrXyhlLHQsbil7dmFyIHI9dC5wZW5kaW5nUHJvcHMsYT1iZS5jdXJyZW50LGk9ITEsbz0odC5mbGFncyYxMjgpIT09MCxzO2lmKChzPW8pfHwocz1lIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlPT09bnVsbD8hMTooYSYyKSE9PTApLHM/KGk9ITAsdC5mbGFncyY9LTEyOSk6KGU9PT1udWxsfHxlLm1lbW9pemVkU3RhdGUhPT1udWxsKSYmKGF8PTEpLGxlKGJlLGEmMSksZT09PW51bGwpcmV0dXJuIE5tKHQpLGU9dC5tZW1vaXplZFN0YXRlLGUhPT1udWxsJiYoZT1lLmRlaHlkcmF0ZWQsZSE9PW51bGwpPyh0Lm1vZGUmMT9lLmRhdGE9PT0iJCEiP3QubGFuZXM9ODp0LmxhbmVzPTEwNzM3NDE4MjQ6dC5sYW5lcz0xLG51bGwpOihvPXIuY2hpbGRyZW4sZT1yLmZhbGxiYWNrLGk/KHI9dC5tb2RlLGk9dC5jaGlsZCxvPXttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOm99LCEociYxKSYmaSE9PW51bGw/KGkuY2hpbGRMYW5lcz0wLGkucGVuZGluZ1Byb3BzPW8pOmk9SXMobyxyLDAsbnVsbCksZT1scihlLHIsbixudWxsKSxpLnJldHVybj10LGUucmV0dXJuPXQsaS5zaWJsaW5nPWUsdC5jaGlsZD1pLHQuY2hpbGQubWVtb2l6ZWRTdGF0ZT1VbShuKSx0Lm1lbW9pemVkU3RhdGU9Rm0sZSk6dWgodCxvKSk7aWYoYT1lLm1lbW9pemVkU3RhdGUsYSE9PW51bGwmJihzPWEuZGVoeWRyYXRlZCxzIT09bnVsbCkpcmV0dXJuIGlPKGUsdCxvLHIscyxhLG4pO2lmKGkpe2k9ci5mYWxsYmFjayxvPXQubW9kZSxhPWUuY2hpbGQscz1hLnNpYmxpbmc7dmFyIGw9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46ci5jaGlsZHJlbn07cmV0dXJuIShvJjEpJiZ0LmNoaWxkIT09YT8ocj10LmNoaWxkLHIuY2hpbGRMYW5lcz0wLHIucGVuZGluZ1Byb3BzPWwsdC5kZWxldGlvbnM9bnVsbCk6KHI9UG4oYSxsKSxyLnN1YnRyZWVGbGFncz1hLnN1YnRyZWVGbGFncyYxNDY4MDA2NCkscyE9PW51bGw/aT1QbihzLGkpOihpPWxyKGksbyxuLG51bGwpLGkuZmxhZ3N8PTIpLGkucmV0dXJuPXQsci5yZXR1cm49dCxyLnNpYmxpbmc9aSx0LmNoaWxkPXIscj1pLGk9dC5jaGlsZCxvPWUuY2hpbGQubWVtb2l6ZWRTdGF0ZSxvPW89PT1udWxsP1VtKG4pOntiYXNlTGFuZXM6by5iYXNlTGFuZXN8bixjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpvLnRyYW5zaXRpb25zfSxpLm1lbW9pemVkU3RhdGU9byxpLmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzJn5uLHQubWVtb2l6ZWRTdGF0ZT1GbSxyfXJldHVybiBpPWUuY2hpbGQsZT1pLnNpYmxpbmcscj1QbihpLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpyLmNoaWxkcmVufSksISh0Lm1vZGUmMSkmJihyLmxhbmVzPW4pLHIucmV0dXJuPXQsci5zaWJsaW5nPW51bGwsZSE9PW51bGwmJihuPXQuZGVsZXRpb25zLG49PT1udWxsPyh0LmRlbGV0aW9ucz1bZV0sdC5mbGFnc3w9MTYpOm4ucHVzaChlKSksdC5jaGlsZD1yLHQubWVtb2l6ZWRTdGF0ZT1udWxsLHJ9ZnVuY3Rpb24gdWgoZSx0KXtyZXR1cm4gdD1Jcyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46dH0sZS5tb2RlLDAsbnVsbCksdC5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gYW8oZSx0LG4scil7cmV0dXJuIHIhPT1udWxsJiZLZyhyKSx0YSh0LGUuY2hpbGQsbnVsbCxuKSxlPXVoKHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLGUuZmxhZ3N8PTIsdC5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiBpTyhlLHQsbixyLGEsaSxvKXtpZihuKXJldHVybiB0LmZsYWdzJjI1Nj8odC5mbGFncyY9LTI1NyxyPUVsKEVycm9yKEQoNDIyKSkpLGFvKGUsdCxvLHIpKTp0Lm1lbW9pemVkU3RhdGUhPT1udWxsPyh0LmNoaWxkPWUuY2hpbGQsdC5mbGFnc3w9MTI4LG51bGwpOihpPXIuZmFsbGJhY2ssYT10Lm1vZGUscj1Jcyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46ci5jaGlsZHJlbn0sYSwwLG51bGwpLGk9bHIoaSxhLG8sbnVsbCksaS5mbGFnc3w9MixyLnJldHVybj10LGkucmV0dXJuPXQsci5zaWJsaW5nPWksdC5jaGlsZD1yLHQubW9kZSYxJiZ0YSh0LGUuY2hpbGQsbnVsbCxvKSx0LmNoaWxkLm1lbW9pemVkU3RhdGU9VW0obyksdC5tZW1vaXplZFN0YXRlPUZtLGkpO2lmKCEodC5tb2RlJjEpKXJldHVybiBhbyhlLHQsbyxudWxsKTtpZihhLmRhdGE9PT0iJCEiKXtpZihyPWEubmV4dFNpYmxpbmcmJmEubmV4dFNpYmxpbmcuZGF0YXNldCxyKXZhciBzPXIuZGdzdDtyZXR1cm4gcj1zLGk9RXJyb3IoRCg0MTkpKSxyPUVsKGkscix2b2lkIDApLGFvKGUsdCxvLHIpfWlmKHM9KG8mZS5jaGlsZExhbmVzKSE9PTAsdHR8fHMpe2lmKHI9T2UsciE9PW51bGwpe3N3aXRjaChvJi1vKXtjYXNlIDQ6YT0yO2JyZWFrO2Nhc2UgMTY6YT04O2JyZWFrO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDphPTMyO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOmE9MjY4NDM1NDU2O2JyZWFrO2RlZmF1bHQ6YT0wfWE9YSYoci5zdXNwZW5kZWRMYW5lc3xvKT8wOmEsYSE9PTAmJmEhPT1pLnJldHJ5TGFuZSYmKGkucmV0cnlMYW5lPWEsZ24oZSxhKSxHdChyLGUsYSwtMSkpfXJldHVybiBnaCgpLHI9RWwoRXJyb3IoRCg0MjEpKSksYW8oZSx0LG8scil9cmV0dXJuIGEuZGF0YT09PSIkPyI/KHQuZmxhZ3N8PTEyOCx0LmNoaWxkPWUuY2hpbGQsdD15Ty5iaW5kKG51bGwsZSksYS5fcmVhY3RSZXRyeT10LG51bGwpOihlPWkudHJlZUNvbnRleHQscHQ9T24oYS5uZXh0U2libGluZyksbXQ9dCxnZT0hMCx6dD1udWxsLGUhPT1udWxsJiYoQXRbeHQrK109bG4sQXRbeHQrK109dW4sQXRbeHQrK109ZHIsbG49ZS5pZCx1bj1lLm92ZXJmbG93LGRyPXQpLHQ9dWgodCxyLmNoaWxkcmVuKSx0LmZsYWdzfD00MDk2LHQpfWZ1bmN0aW9uIGp5KGUsdCxuKXtlLmxhbmVzfD10O3ZhciByPWUuYWx0ZXJuYXRlO3IhPT1udWxsJiYoci5sYW5lc3w9dCksQ20oZS5yZXR1cm4sdCxuKX1mdW5jdGlvbiBTbChlLHQsbixyLGEpe3ZhciBpPWUubWVtb2l6ZWRTdGF0ZTtpPT09bnVsbD9lLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOnQscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpyLHRhaWw6bix0YWlsTW9kZTphfTooaS5pc0JhY2t3YXJkcz10LGkucmVuZGVyaW5nPW51bGwsaS5yZW5kZXJpbmdTdGFydFRpbWU9MCxpLmxhc3Q9cixpLnRhaWw9bixpLnRhaWxNb2RlPWEpfWZ1bmN0aW9uIEFfKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcyxhPXIucmV2ZWFsT3JkZXIsaT1yLnRhaWw7aWYoV2UoZSx0LHIuY2hpbGRyZW4sbikscj1iZS5jdXJyZW50LHImMilyPXImMXwyLHQuZmxhZ3N8PTEyODtlbHNle2lmKGUhPT1udWxsJiZlLmZsYWdzJjEyOCllOmZvcihlPXQuY2hpbGQ7ZSE9PW51bGw7KXtpZihlLnRhZz09PTEzKWUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmp5KGUsbix0KTtlbHNlIGlmKGUudGFnPT09MTkpankoZSxuLHQpO2Vsc2UgaWYoZS5jaGlsZCE9PW51bGwpe2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkO2NvbnRpbnVlfWlmKGU9PT10KWJyZWFrIGU7Zm9yKDtlLnNpYmxpbmc9PT1udWxsOyl7aWYoZS5yZXR1cm49PT1udWxsfHxlLnJldHVybj09PXQpYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9ciY9MX1pZihsZShiZSxyKSwhKHQubW9kZSYxKSl0Lm1lbW9pemVkU3RhdGU9bnVsbDtlbHNlIHN3aXRjaChhKXtjYXNlImZvcndhcmRzIjpmb3Iobj10LmNoaWxkLGE9bnVsbDtuIT09bnVsbDspZT1uLmFsdGVybmF0ZSxlIT09bnVsbCYmZXMoZSk9PT1udWxsJiYoYT1uKSxuPW4uc2libGluZztuPWEsbj09PW51bGw/KGE9dC5jaGlsZCx0LmNoaWxkPW51bGwpOihhPW4uc2libGluZyxuLnNpYmxpbmc9bnVsbCksU2wodCwhMSxhLG4saSk7YnJlYWs7Y2FzZSJiYWNrd2FyZHMiOmZvcihuPW51bGwsYT10LmNoaWxkLHQuY2hpbGQ9bnVsbDthIT09bnVsbDspe2lmKGU9YS5hbHRlcm5hdGUsZSE9PW51bGwmJmVzKGUpPT09bnVsbCl7dC5jaGlsZD1hO2JyZWFrfWU9YS5zaWJsaW5nLGEuc2libGluZz1uLG49YSxhPWV9U2wodCwhMCxuLG51bGwsaSk7YnJlYWs7Y2FzZSJ0b2dldGhlciI6U2wodCwhMSxudWxsLG51bGwsdm9pZCAwKTticmVhaztkZWZhdWx0OnQubWVtb2l6ZWRTdGF0ZT1udWxsfXJldHVybiB0LmNoaWxkfWZ1bmN0aW9uIFJvKGUsdCl7ISh0Lm1vZGUmMSkmJmUhPT1udWxsJiYoZS5hbHRlcm5hdGU9bnVsbCx0LmFsdGVybmF0ZT1udWxsLHQuZmxhZ3N8PTIpfWZ1bmN0aW9uIGhuKGUsdCxuKXtpZihlIT09bnVsbCYmKHQuZGVwZW5kZW5jaWVzPWUuZGVwZW5kZW5jaWVzKSxmcnw9dC5sYW5lcywhKG4mdC5jaGlsZExhbmVzKSlyZXR1cm4gbnVsbDtpZihlIT09bnVsbCYmdC5jaGlsZCE9PWUuY2hpbGQpdGhyb3cgRXJyb3IoRCgxNTMpKTtpZih0LmNoaWxkIT09bnVsbCl7Zm9yKGU9dC5jaGlsZCxuPVBuKGUsZS5wZW5kaW5nUHJvcHMpLHQuY2hpbGQ9bixuLnJldHVybj10O2Uuc2libGluZyE9PW51bGw7KWU9ZS5zaWJsaW5nLG49bi5zaWJsaW5nPVBuKGUsZS5wZW5kaW5nUHJvcHMpLG4ucmV0dXJuPXQ7bi5zaWJsaW5nPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gb08oZSx0LG4pe3N3aXRjaCh0LnRhZyl7Y2FzZSAzOlRfKHQpLGVhKCk7YnJlYWs7Y2FzZSA1OlpSKHQpO2JyZWFrO2Nhc2UgMTphdCh0LnR5cGUpJiZZbyh0KTticmVhaztjYXNlIDQ6dGgodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciByPXQudHlwZS5fY29udGV4dCxhPXQubWVtb2l6ZWRQcm9wcy52YWx1ZTtsZShabyxyLl9jdXJyZW50VmFsdWUpLHIuX2N1cnJlbnRWYWx1ZT1hO2JyZWFrO2Nhc2UgMTM6aWYocj10Lm1lbW9pemVkU3RhdGUsciE9PW51bGwpcmV0dXJuIHIuZGVoeWRyYXRlZCE9PW51bGw/KGxlKGJlLGJlLmN1cnJlbnQmMSksdC5mbGFnc3w9MTI4LG51bGwpOm4mdC5jaGlsZC5jaGlsZExhbmVzP2tfKGUsdCxuKToobGUoYmUsYmUuY3VycmVudCYxKSxlPWhuKGUsdCxuKSxlIT09bnVsbD9lLnNpYmxpbmc6bnVsbCk7bGUoYmUsYmUuY3VycmVudCYxKTticmVhaztjYXNlIDE5OmlmKHI9KG4mdC5jaGlsZExhbmVzKSE9PTAsZS5mbGFncyYxMjgpe2lmKHIpcmV0dXJuIEFfKGUsdCxuKTt0LmZsYWdzfD0xMjh9aWYoYT10Lm1lbW9pemVkU3RhdGUsYSE9PW51bGwmJihhLnJlbmRlcmluZz1udWxsLGEudGFpbD1udWxsLGEubGFzdEVmZmVjdD1udWxsKSxsZShiZSxiZS5jdXJyZW50KSxyKWJyZWFrO3JldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gdC5sYW5lcz0wLFNfKGUsdCxuKX1yZXR1cm4gaG4oZSx0LG4pfXZhciB4XyxCbSxSXyxfXzt4Xz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj10LmNoaWxkO24hPT1udWxsOyl7aWYobi50YWc9PT01fHxuLnRhZz09PTYpZS5hcHBlbmRDaGlsZChuLnN0YXRlTm9kZSk7ZWxzZSBpZihuLnRhZyE9PTQmJm4uY2hpbGQhPT1udWxsKXtuLmNoaWxkLnJldHVybj1uLG49bi5jaGlsZDtjb250aW51ZX1pZihuPT09dClicmVhaztmb3IoO24uc2libGluZz09PW51bGw7KXtpZihuLnJldHVybj09PW51bGx8fG4ucmV0dXJuPT09dClyZXR1cm47bj1uLnJldHVybn1uLnNpYmxpbmcucmV0dXJuPW4ucmV0dXJuLG49bi5zaWJsaW5nfX07Qm09ZnVuY3Rpb24oKXt9O1JfPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBhPWUubWVtb2l6ZWRQcm9wcztpZihhIT09cil7ZT10LnN0YXRlTm9kZSxhcihRdC5jdXJyZW50KTt2YXIgaT1udWxsO3N3aXRjaChuKXtjYXNlImlucHV0IjphPXNtKGUsYSkscj1zbShlLHIpLGk9W107YnJlYWs7Y2FzZSJzZWxlY3QiOmE9RWUoe30sYSx7dmFsdWU6dm9pZCAwfSkscj1FZSh7fSxyLHt2YWx1ZTp2b2lkIDB9KSxpPVtdO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmE9Y20oZSxhKSxyPWNtKGUsciksaT1bXTticmVhaztkZWZhdWx0OnR5cGVvZiBhLm9uQ2xpY2shPSJmdW5jdGlvbiImJnR5cGVvZiByLm9uQ2xpY2s9PSJmdW5jdGlvbiImJihlLm9uY2xpY2s9SG8pfXBtKG4scik7dmFyIG87bj1udWxsO2Zvcih1IGluIGEpaWYoIXIuaGFzT3duUHJvcGVydHkodSkmJmEuaGFzT3duUHJvcGVydHkodSkmJmFbdV0hPW51bGwpaWYodT09PSJzdHlsZSIpe3ZhciBzPWFbdV07Zm9yKG8gaW4gcylzLmhhc093blByb3BlcnR5KG8pJiYobnx8KG49e30pLG5bb109IiIpfWVsc2UgdSE9PSJkYW5nZXJvdXNseVNldElubmVySFRNTCImJnUhPT0iY2hpbGRyZW4iJiZ1IT09InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyImJnUhPT0ic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiYmdSE9PSJhdXRvRm9jdXMiJiYoaWkuaGFzT3duUHJvcGVydHkodSk/aXx8KGk9W10pOihpPWl8fFtdKS5wdXNoKHUsbnVsbCkpO2Zvcih1IGluIHIpe3ZhciBsPXJbdV07aWYocz1hIT1udWxsP2FbdV06dm9pZCAwLHIuaGFzT3duUHJvcGVydHkodSkmJmwhPT1zJiYobCE9bnVsbHx8cyE9bnVsbCkpaWYodT09PSJzdHlsZSIpaWYocyl7Zm9yKG8gaW4gcykhcy5oYXNPd25Qcm9wZXJ0eShvKXx8bCYmbC5oYXNPd25Qcm9wZXJ0eShvKXx8KG58fChuPXt9KSxuW29dPSIiKTtmb3IobyBpbiBsKWwuaGFzT3duUHJvcGVydHkobykmJnNbb10hPT1sW29dJiYobnx8KG49e30pLG5bb109bFtvXSl9ZWxzZSBufHwoaXx8KGk9W10pLGkucHVzaCh1LG4pKSxuPWw7ZWxzZSB1PT09ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj8obD1sP2wuX19odG1sOnZvaWQgMCxzPXM/cy5fX2h0bWw6dm9pZCAwLGwhPW51bGwmJnMhPT1sJiYoaT1pfHxbXSkucHVzaCh1LGwpKTp1PT09ImNoaWxkcmVuIj90eXBlb2YgbCE9InN0cmluZyImJnR5cGVvZiBsIT0ibnVtYmVyInx8KGk9aXx8W10pLnB1c2godSwiIitsKTp1IT09InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyImJnUhPT0ic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiYmKGlpLmhhc093blByb3BlcnR5KHUpPyhsIT1udWxsJiZ1PT09Im9uU2Nyb2xsIiYmcGUoInNjcm9sbCIsZSksaXx8cz09PWx8fChpPVtdKSk6KGk9aXx8W10pLnB1c2godSxsKSl9biYmKGk9aXx8W10pLnB1c2goInN0eWxlIixuKTt2YXIgdT1pOyh0LnVwZGF0ZVF1ZXVlPXUpJiYodC5mbGFnc3w9NCl9fTtfXz1mdW5jdGlvbihlLHQsbixyKXtuIT09ciYmKHQuZmxhZ3N8PTQpfTtmdW5jdGlvbiB4YShlLHQpe2lmKCFnZSlzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZSJoaWRkZW4iOnQ9ZS50YWlsO2Zvcih2YXIgbj1udWxsO3QhPT1udWxsOyl0LmFsdGVybmF0ZSE9PW51bGwmJihuPXQpLHQ9dC5zaWJsaW5nO249PT1udWxsP2UudGFpbD1udWxsOm4uc2libGluZz1udWxsO2JyZWFrO2Nhc2UiY29sbGFwc2VkIjpuPWUudGFpbDtmb3IodmFyIHI9bnVsbDtuIT09bnVsbDspbi5hbHRlcm5hdGUhPT1udWxsJiYocj1uKSxuPW4uc2libGluZztyPT09bnVsbD90fHxlLnRhaWw9PT1udWxsP2UudGFpbD1udWxsOmUudGFpbC5zaWJsaW5nPW51bGw6ci5zaWJsaW5nPW51bGx9fWZ1bmN0aW9uICRlKGUpe3ZhciB0PWUuYWx0ZXJuYXRlIT09bnVsbCYmZS5hbHRlcm5hdGUuY2hpbGQ9PT1lLmNoaWxkLG49MCxyPTA7aWYodClmb3IodmFyIGE9ZS5jaGlsZDthIT09bnVsbDspbnw9YS5sYW5lc3xhLmNoaWxkTGFuZXMscnw9YS5zdWJ0cmVlRmxhZ3MmMTQ2ODAwNjQscnw9YS5mbGFncyYxNDY4MDA2NCxhLnJldHVybj1lLGE9YS5zaWJsaW5nO2Vsc2UgZm9yKGE9ZS5jaGlsZDthIT09bnVsbDspbnw9YS5sYW5lc3xhLmNoaWxkTGFuZXMscnw9YS5zdWJ0cmVlRmxhZ3Mscnw9YS5mbGFncyxhLnJldHVybj1lLGE9YS5zaWJsaW5nO3JldHVybiBlLnN1YnRyZWVGbGFnc3w9cixlLmNoaWxkTGFuZXM9bix0fWZ1bmN0aW9uIHNPKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcztzd2l0Y2goWWcodCksdC50YWcpe2Nhc2UgMjpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiAkZSh0KSxudWxsO2Nhc2UgMTpyZXR1cm4gYXQodC50eXBlKSYmV28oKSwkZSh0KSxudWxsO2Nhc2UgMzpyZXR1cm4gcj10LnN0YXRlTm9kZSxuYSgpLGZlKHJ0KSxmZShxZSkscmgoKSxyLnBlbmRpbmdDb250ZXh0JiYoci5jb250ZXh0PXIucGVuZGluZ0NvbnRleHQsci5wZW5kaW5nQ29udGV4dD1udWxsKSwoZT09PW51bGx8fGUuY2hpbGQ9PT1udWxsKSYmKG5vKHQpP3QuZmxhZ3N8PTQ6ZT09PW51bGx8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJiEodC5mbGFncyYyNTYpfHwodC5mbGFnc3w9MTAyNCx6dCE9PW51bGwmJihXbSh6dCksenQ9bnVsbCkpKSxCbShlLHQpLCRlKHQpLG51bGw7Y2FzZSA1Om5oKHQpO3ZhciBhPWFyKGJpLmN1cnJlbnQpO2lmKG49dC50eXBlLGUhPT1udWxsJiZ0LnN0YXRlTm9kZSE9bnVsbClSXyhlLHQsbixyLGEpLGUucmVmIT09dC5yZWYmJih0LmZsYWdzfD01MTIsdC5mbGFnc3w9MjA5NzE1Mik7ZWxzZXtpZighcil7aWYodC5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKEQoMTY2KSk7cmV0dXJuICRlKHQpLG51bGx9aWYoZT1hcihRdC5jdXJyZW50KSxubyh0KSl7cj10LnN0YXRlTm9kZSxuPXQudHlwZTt2YXIgaT10Lm1lbW9pemVkUHJvcHM7c3dpdGNoKHJbS3RdPXQscltnaV09aSxlPSh0Lm1vZGUmMSkhPT0wLG4pe2Nhc2UiZGlhbG9nIjpwZSgiY2FuY2VsIixyKSxwZSgiY2xvc2UiLHIpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6cGUoImxvYWQiLHIpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihhPTA7YTxGYS5sZW5ndGg7YSsrKXBlKEZhW2FdLHIpO2JyZWFrO2Nhc2Uic291cmNlIjpwZSgiZXJyb3IiLHIpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOnBlKCJlcnJvciIscikscGUoImxvYWQiLHIpO2JyZWFrO2Nhc2UiZGV0YWlscyI6cGUoInRvZ2dsZSIscik7YnJlYWs7Y2FzZSJpbnB1dCI6WmIocixpKSxwZSgiaW52YWxpZCIscik7YnJlYWs7Y2FzZSJzZWxlY3QiOnIuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFpLm11bHRpcGxlfSxwZSgiaW52YWxpZCIscik7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6SmIocixpKSxwZSgiaW52YWxpZCIscil9cG0obixpKSxhPW51bGw7Zm9yKHZhciBvIGluIGkpaWYoaS5oYXNPd25Qcm9wZXJ0eShvKSl7dmFyIHM9aVtvXTtvPT09ImNoaWxkcmVuIj90eXBlb2Ygcz09InN0cmluZyI/ci50ZXh0Q29udGVudCE9PXMmJihpLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyE9PSEwJiZ0byhyLnRleHRDb250ZW50LHMsZSksYT1bImNoaWxkcmVuIixzXSk6dHlwZW9mIHM9PSJudW1iZXIiJiZyLnRleHRDb250ZW50IT09IiIrcyYmKGkuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIT09ITAmJnRvKHIudGV4dENvbnRlbnQscyxlKSxhPVsiY2hpbGRyZW4iLCIiK3NdKTppaS5oYXNPd25Qcm9wZXJ0eShvKSYmcyE9bnVsbCYmbz09PSJvblNjcm9sbCImJnBlKCJzY3JvbGwiLHIpfXN3aXRjaChuKXtjYXNlImlucHV0IjpXaShyKSxRYihyLGksITApO2JyZWFrO2Nhc2UidGV4dGFyZWEiOldpKHIpLGV5KHIpO2JyZWFrO2Nhc2Uic2VsZWN0IjpjYXNlIm9wdGlvbiI6YnJlYWs7ZGVmYXVsdDp0eXBlb2YgaS5vbkNsaWNrPT0iZnVuY3Rpb24iJiYoci5vbmNsaWNrPUhvKX1yPWEsdC51cGRhdGVRdWV1ZT1yLHIhPT1udWxsJiYodC5mbGFnc3w9NCl9ZWxzZXtvPWEubm9kZVR5cGU9PT05P2E6YS5vd25lckRvY3VtZW50LGU9PT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCImJihlPW5SKG4pKSxlPT09Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiP249PT0ic2NyaXB0Ij8oZT1vLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuaW5uZXJIVE1MPSI8c2NyaXB0PjxcL3NjcmlwdD4iLGU9ZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpKTp0eXBlb2Ygci5pcz09InN0cmluZyI/ZT1vLmNyZWF0ZUVsZW1lbnQobix7aXM6ci5pc30pOihlPW8uY3JlYXRlRWxlbWVudChuKSxuPT09InNlbGVjdCImJihvPWUsci5tdWx0aXBsZT9vLm11bHRpcGxlPSEwOnIuc2l6ZSYmKG8uc2l6ZT1yLnNpemUpKSk6ZT1vLmNyZWF0ZUVsZW1lbnROUyhlLG4pLGVbS3RdPXQsZVtnaV09cix4XyhlLHQsITEsITEpLHQuc3RhdGVOb2RlPWU7ZTp7c3dpdGNoKG89Zm0obixyKSxuKXtjYXNlImRpYWxvZyI6cGUoImNhbmNlbCIsZSkscGUoImNsb3NlIixlKSxhPXI7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpwZSgibG9hZCIsZSksYT1yO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihhPTA7YTxGYS5sZW5ndGg7YSsrKXBlKEZhW2FdLGUpO2E9cjticmVhaztjYXNlInNvdXJjZSI6cGUoImVycm9yIixlKSxhPXI7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6cGUoImVycm9yIixlKSxwZSgibG9hZCIsZSksYT1yO2JyZWFrO2Nhc2UiZGV0YWlscyI6cGUoInRvZ2dsZSIsZSksYT1yO2JyZWFrO2Nhc2UiaW5wdXQiOlpiKGUsciksYT1zbShlLHIpLHBlKCJpbnZhbGlkIixlKTticmVhaztjYXNlIm9wdGlvbiI6YT1yO2JyZWFrO2Nhc2Uic2VsZWN0IjplLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhci5tdWx0aXBsZX0sYT1FZSh7fSxyLHt2YWx1ZTp2b2lkIDB9KSxwZSgiaW52YWxpZCIsZSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6SmIoZSxyKSxhPWNtKGUscikscGUoImludmFsaWQiLGUpO2JyZWFrO2RlZmF1bHQ6YT1yfXBtKG4sYSkscz1hO2ZvcihpIGluIHMpaWYocy5oYXNPd25Qcm9wZXJ0eShpKSl7dmFyIGw9c1tpXTtpPT09InN0eWxlIj9pUihlLGwpOmk9PT0iZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPyhsPWw/bC5fX2h0bWw6dm9pZCAwLGwhPW51bGwmJnJSKGUsbCkpOmk9PT0iY2hpbGRyZW4iP3R5cGVvZiBsPT0ic3RyaW5nIj8obiE9PSJ0ZXh0YXJlYSJ8fGwhPT0iIikmJm9pKGUsbCk6dHlwZW9mIGw9PSJudW1iZXIiJiZvaShlLCIiK2wpOmkhPT0ic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiYmaSE9PSJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciJiZpIT09ImF1dG9Gb2N1cyImJihpaS5oYXNPd25Qcm9wZXJ0eShpKT9sIT1udWxsJiZpPT09Im9uU2Nyb2xsIiYmcGUoInNjcm9sbCIsZSk6bCE9bnVsbCYmTGcoZSxpLGwsbykpfXN3aXRjaChuKXtjYXNlImlucHV0IjpXaShlKSxRYihlLHIsITEpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOldpKGUpLGV5KGUpO2JyZWFrO2Nhc2Uib3B0aW9uIjpyLnZhbHVlIT1udWxsJiZlLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiK1VuKHIudmFsdWUpKTticmVhaztjYXNlInNlbGVjdCI6ZS5tdWx0aXBsZT0hIXIubXVsdGlwbGUsaT1yLnZhbHVlLGkhPW51bGw/cXIoZSwhIXIubXVsdGlwbGUsaSwhMSk6ci5kZWZhdWx0VmFsdWUhPW51bGwmJnFyKGUsISFyLm11bHRpcGxlLHIuZGVmYXVsdFZhbHVlLCEwKTticmVhaztkZWZhdWx0OnR5cGVvZiBhLm9uQ2xpY2s9PSJmdW5jdGlvbiImJihlLm9uY2xpY2s9SG8pfXN3aXRjaChuKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOnI9ISFyLmF1dG9Gb2N1czticmVhayBlO2Nhc2UiaW1nIjpyPSEwO2JyZWFrIGU7ZGVmYXVsdDpyPSExfX1yJiYodC5mbGFnc3w9NCl9dC5yZWYhPT1udWxsJiYodC5mbGFnc3w9NTEyLHQuZmxhZ3N8PTIwOTcxNTIpfXJldHVybiAkZSh0KSxudWxsO2Nhc2UgNjppZihlJiZ0LnN0YXRlTm9kZSE9bnVsbClfXyhlLHQsZS5tZW1vaXplZFByb3BzLHIpO2Vsc2V7aWYodHlwZW9mIHIhPSJzdHJpbmciJiZ0LnN0YXRlTm9kZT09PW51bGwpdGhyb3cgRXJyb3IoRCgxNjYpKTtpZihuPWFyKGJpLmN1cnJlbnQpLGFyKFF0LmN1cnJlbnQpLG5vKHQpKXtpZihyPXQuc3RhdGVOb2RlLG49dC5tZW1vaXplZFByb3BzLHJbS3RdPXQsKGk9ci5ub2RlVmFsdWUhPT1uKSYmKGU9bXQsZSE9PW51bGwpKXN3aXRjaChlLnRhZyl7Y2FzZSAzOnRvKHIubm9kZVZhbHVlLG4sKGUubW9kZSYxKSE9PTApO2JyZWFrO2Nhc2UgNTplLm1lbW9pemVkUHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIT09ITAmJnRvKHIubm9kZVZhbHVlLG4sKGUubW9kZSYxKSE9PTApfWkmJih0LmZsYWdzfD00KX1lbHNlIHI9KG4ubm9kZVR5cGU9PT05P246bi5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShyKSxyW0t0XT10LHQuc3RhdGVOb2RlPXJ9cmV0dXJuICRlKHQpLG51bGw7Y2FzZSAxMzppZihmZShiZSkscj10Lm1lbW9pemVkU3RhdGUsZT09PW51bGx8fGUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkIT09bnVsbCl7aWYoZ2UmJnB0IT09bnVsbCYmdC5tb2RlJjEmJiEodC5mbGFncyYxMjgpKUhSKCksZWEoKSx0LmZsYWdzfD05ODU2MCxpPSExO2Vsc2UgaWYoaT1ubyh0KSxyIT09bnVsbCYmci5kZWh5ZHJhdGVkIT09bnVsbCl7aWYoZT09PW51bGwpe2lmKCFpKXRocm93IEVycm9yKEQoMzE4KSk7aWYoaT10Lm1lbW9pemVkU3RhdGUsaT1pIT09bnVsbD9pLmRlaHlkcmF0ZWQ6bnVsbCwhaSl0aHJvdyBFcnJvcihEKDMxNykpO2lbS3RdPXR9ZWxzZSBlYSgpLCEodC5mbGFncyYxMjgpJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7JGUodCksaT0hMX1lbHNlIHp0IT09bnVsbCYmKFdtKHp0KSx6dD1udWxsKSxpPSEwO2lmKCFpKXJldHVybiB0LmZsYWdzJjY1NTM2P3Q6bnVsbH1yZXR1cm4gdC5mbGFncyYxMjg/KHQubGFuZXM9bix0KToocj1yIT09bnVsbCxyIT09KGUhPT1udWxsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsKSYmciYmKHQuY2hpbGQuZmxhZ3N8PTgxOTIsdC5tb2RlJjEmJihlPT09bnVsbHx8YmUuY3VycmVudCYxP05lPT09MCYmKE5lPTMpOmdoKCkpKSx0LnVwZGF0ZVF1ZXVlIT09bnVsbCYmKHQuZmxhZ3N8PTQpLCRlKHQpLG51bGwpO2Nhc2UgNDpyZXR1cm4gbmEoKSxCbShlLHQpLGU9PT1udWxsJiZmaSh0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSwkZSh0KSxudWxsO2Nhc2UgMTA6cmV0dXJuIFFnKHQudHlwZS5fY29udGV4dCksJGUodCksbnVsbDtjYXNlIDE3OnJldHVybiBhdCh0LnR5cGUpJiZXbygpLCRlKHQpLG51bGw7Y2FzZSAxOTppZihmZShiZSksaT10Lm1lbW9pemVkU3RhdGUsaT09PW51bGwpcmV0dXJuICRlKHQpLG51bGw7aWYocj0odC5mbGFncyYxMjgpIT09MCxvPWkucmVuZGVyaW5nLG89PT1udWxsKWlmKHIpeGEoaSwhMSk7ZWxzZXtpZihOZSE9PTB8fGUhPT1udWxsJiZlLmZsYWdzJjEyOClmb3IoZT10LmNoaWxkO2UhPT1udWxsOyl7aWYobz1lcyhlKSxvIT09bnVsbCl7Zm9yKHQuZmxhZ3N8PTEyOCx4YShpLCExKSxyPW8udXBkYXRlUXVldWUsciE9PW51bGwmJih0LnVwZGF0ZVF1ZXVlPXIsdC5mbGFnc3w9NCksdC5zdWJ0cmVlRmxhZ3M9MCxyPW4sbj10LmNoaWxkO24hPT1udWxsOylpPW4sZT1yLGkuZmxhZ3MmPTE0NjgwMDY2LG89aS5hbHRlcm5hdGUsbz09PW51bGw/KGkuY2hpbGRMYW5lcz0wLGkubGFuZXM9ZSxpLmNoaWxkPW51bGwsaS5zdWJ0cmVlRmxhZ3M9MCxpLm1lbW9pemVkUHJvcHM9bnVsbCxpLm1lbW9pemVkU3RhdGU9bnVsbCxpLnVwZGF0ZVF1ZXVlPW51bGwsaS5kZXBlbmRlbmNpZXM9bnVsbCxpLnN0YXRlTm9kZT1udWxsKTooaS5jaGlsZExhbmVzPW8uY2hpbGRMYW5lcyxpLmxhbmVzPW8ubGFuZXMsaS5jaGlsZD1vLmNoaWxkLGkuc3VidHJlZUZsYWdzPTAsaS5kZWxldGlvbnM9bnVsbCxpLm1lbW9pemVkUHJvcHM9by5tZW1vaXplZFByb3BzLGkubWVtb2l6ZWRTdGF0ZT1vLm1lbW9pemVkU3RhdGUsaS51cGRhdGVRdWV1ZT1vLnVwZGF0ZVF1ZXVlLGkudHlwZT1vLnR5cGUsZT1vLmRlcGVuZGVuY2llcyxpLmRlcGVuZGVuY2llcz1lPT09bnVsbD9udWxsOntsYW5lczplLmxhbmVzLGZpcnN0Q29udGV4dDplLmZpcnN0Q29udGV4dH0pLG49bi5zaWJsaW5nO3JldHVybiBsZShiZSxiZS5jdXJyZW50JjF8MiksdC5jaGlsZH1lPWUuc2libGluZ31pLnRhaWwhPT1udWxsJiZBZSgpPmFhJiYodC5mbGFnc3w9MTI4LHI9ITAseGEoaSwhMSksdC5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFyKWlmKGU9ZXMobyksZSE9PW51bGwpe2lmKHQuZmxhZ3N8PTEyOCxyPSEwLG49ZS51cGRhdGVRdWV1ZSxuIT09bnVsbCYmKHQudXBkYXRlUXVldWU9bix0LmZsYWdzfD00KSx4YShpLCEwKSxpLnRhaWw9PT1udWxsJiZpLnRhaWxNb2RlPT09ImhpZGRlbiImJiFvLmFsdGVybmF0ZSYmIWdlKXJldHVybiAkZSh0KSxudWxsfWVsc2UgMipBZSgpLWkucmVuZGVyaW5nU3RhcnRUaW1lPmFhJiZuIT09MTA3Mzc0MTgyNCYmKHQuZmxhZ3N8PTEyOCxyPSEwLHhhKGksITEpLHQubGFuZXM9NDE5NDMwNCk7aS5pc0JhY2t3YXJkcz8oby5zaWJsaW5nPXQuY2hpbGQsdC5jaGlsZD1vKToobj1pLmxhc3QsbiE9PW51bGw/bi5zaWJsaW5nPW86dC5jaGlsZD1vLGkubGFzdD1vKX1yZXR1cm4gaS50YWlsIT09bnVsbD8odD1pLnRhaWwsaS5yZW5kZXJpbmc9dCxpLnRhaWw9dC5zaWJsaW5nLGkucmVuZGVyaW5nU3RhcnRUaW1lPUFlKCksdC5zaWJsaW5nPW51bGwsbj1iZS5jdXJyZW50LGxlKGJlLHI/biYxfDI6biYxKSx0KTooJGUodCksbnVsbCk7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBtaCgpLHI9dC5tZW1vaXplZFN0YXRlIT09bnVsbCxlIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlIT09bnVsbCE9PXImJih0LmZsYWdzfD04MTkyKSxyJiZ0Lm1vZGUmMT9kdCYxMDczNzQxODI0JiYoJGUodCksdC5zdWJ0cmVlRmxhZ3MmNiYmKHQuZmxhZ3N8PTgxOTIpKTokZSh0KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihEKDE1Nix0LnRhZykpfWZ1bmN0aW9uIGxPKGUsdCl7c3dpdGNoKFlnKHQpLHQudGFnKXtjYXNlIDE6cmV0dXJuIGF0KHQudHlwZSkmJldvKCksZT10LmZsYWdzLGUmNjU1MzY/KHQuZmxhZ3M9ZSYtNjU1Mzd8MTI4LHQpOm51bGw7Y2FzZSAzOnJldHVybiBuYSgpLGZlKHJ0KSxmZShxZSkscmgoKSxlPXQuZmxhZ3MsZSY2NTUzNiYmIShlJjEyOCk/KHQuZmxhZ3M9ZSYtNjU1Mzd8MTI4LHQpOm51bGw7Y2FzZSA1OnJldHVybiBuaCh0KSxudWxsO2Nhc2UgMTM6aWYoZmUoYmUpLGU9dC5tZW1vaXplZFN0YXRlLGUhPT1udWxsJiZlLmRlaHlkcmF0ZWQhPT1udWxsKXtpZih0LmFsdGVybmF0ZT09PW51bGwpdGhyb3cgRXJyb3IoRCgzNDApKTtlYSgpfXJldHVybiBlPXQuZmxhZ3MsZSY2NTUzNj8odC5mbGFncz1lJi02NTUzN3wxMjgsdCk6bnVsbDtjYXNlIDE5OnJldHVybiBmZShiZSksbnVsbDtjYXNlIDQ6cmV0dXJuIG5hKCksbnVsbDtjYXNlIDEwOnJldHVybiBRZyh0LnR5cGUuX2NvbnRleHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBtaCgpLG51bGw7Y2FzZSAyNDpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgaW89ITEsamU9ITEsdU89dHlwZW9mIFdlYWtTZXQ9PSJmdW5jdGlvbiI/V2Vha1NldDpTZXQsej1udWxsO2Z1bmN0aW9uIFByKGUsdCl7dmFyIG49ZS5yZWY7aWYobiE9PW51bGwpaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpdHJ5e24obnVsbCl9Y2F0Y2gocil7VGUoZSx0LHIpfWVsc2Ugbi5jdXJyZW50PW51bGx9ZnVuY3Rpb24gJG0oZSx0LG4pe3RyeXtuKCl9Y2F0Y2gocil7VGUoZSx0LHIpfX12YXIgR3k9ITE7ZnVuY3Rpb24gY08oZSx0KXtpZihUbT1HbyxlPUxSKCksSGcoZSkpe2lmKCJzZWxlY3Rpb25TdGFydCJpbiBlKXZhciBuPXtzdGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07ZWxzZSBlOntuPShuPWUub3duZXJEb2N1bWVudCkmJm4uZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgcj1uLmdldFNlbGVjdGlvbiYmbi5nZXRTZWxlY3Rpb24oKTtpZihyJiZyLnJhbmdlQ291bnQhPT0wKXtuPXIuYW5jaG9yTm9kZTt2YXIgYT1yLmFuY2hvck9mZnNldCxpPXIuZm9jdXNOb2RlO3I9ci5mb2N1c09mZnNldDt0cnl7bi5ub2RlVHlwZSxpLm5vZGVUeXBlfWNhdGNoe249bnVsbDticmVhayBlfXZhciBvPTAscz0tMSxsPS0xLHU9MCxjPTAsZD1lLHA9bnVsbDt0OmZvcig7Oyl7Zm9yKHZhciBmO2QhPT1ufHxhIT09MCYmZC5ub2RlVHlwZSE9PTN8fChzPW8rYSksZCE9PWl8fHIhPT0wJiZkLm5vZGVUeXBlIT09M3x8KGw9bytyKSxkLm5vZGVUeXBlPT09MyYmKG8rPWQubm9kZVZhbHVlLmxlbmd0aCksKGY9ZC5maXJzdENoaWxkKSE9PW51bGw7KXA9ZCxkPWY7Zm9yKDs7KXtpZihkPT09ZSlicmVhayB0O2lmKHA9PT1uJiYrK3U9PT1hJiYocz1vKSxwPT09aSYmKytjPT09ciYmKGw9byksKGY9ZC5uZXh0U2libGluZykhPT1udWxsKWJyZWFrO2Q9cCxwPWQucGFyZW50Tm9kZX1kPWZ9bj1zPT09LTF8fGw9PT0tMT9udWxsOntzdGFydDpzLGVuZDpsfX1lbHNlIG49bnVsbH1uPW58fHtzdGFydDowLGVuZDowfX1lbHNlIG49bnVsbDtmb3Ioa209e2ZvY3VzZWRFbGVtOmUsc2VsZWN0aW9uUmFuZ2U6bn0sR289ITEsej10O3ohPT1udWxsOylpZih0PXosZT10LmNoaWxkLCh0LnN1YnRyZWVGbGFncyYxMDI4KSE9PTAmJmUhPT1udWxsKWUucmV0dXJuPXQsej1lO2Vsc2UgZm9yKDt6IT09bnVsbDspe3Q9ejt0cnl7dmFyIHk9dC5hbHRlcm5hdGU7aWYodC5mbGFncyYxMDI0KXN3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpicmVhaztjYXNlIDE6aWYoeSE9PW51bGwpe3ZhciBiPXkubWVtb2l6ZWRQcm9wcyxBPXkubWVtb2l6ZWRTdGF0ZSxoPXQuc3RhdGVOb2RlLG09aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh0LmVsZW1lbnRUeXBlPT09dC50eXBlP2I6QnQodC50eXBlLGIpLEEpO2guX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9bX1icmVhaztjYXNlIDM6dmFyIGc9dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztnLm5vZGVUeXBlPT09MT9nLnRleHRDb250ZW50PSIiOmcubm9kZVR5cGU9PT05JiZnLmRvY3VtZW50RWxlbWVudCYmZy5yZW1vdmVDaGlsZChnLmRvY3VtZW50RWxlbWVudCk7YnJlYWs7Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKEQoMTYzKSl9fWNhdGNoKEUpe1RlKHQsdC5yZXR1cm4sRSl9aWYoZT10LnNpYmxpbmcsZSE9PW51bGwpe2UucmV0dXJuPXQucmV0dXJuLHo9ZTticmVha316PXQucmV0dXJufXJldHVybiB5PUd5LEd5PSExLHl9ZnVuY3Rpb24gS2EoZSx0LG4pe3ZhciByPXQudXBkYXRlUXVldWU7aWYocj1yIT09bnVsbD9yLmxhc3RFZmZlY3Q6bnVsbCxyIT09bnVsbCl7dmFyIGE9cj1yLm5leHQ7ZG97aWYoKGEudGFnJmUpPT09ZSl7dmFyIGk9YS5kZXN0cm95O2EuZGVzdHJveT12b2lkIDAsaSE9PXZvaWQgMCYmJG0odCxuLGkpfWE9YS5uZXh0fXdoaWxlKGEhPT1yKX19ZnVuY3Rpb24gUnMoZSx0KXtpZih0PXQudXBkYXRlUXVldWUsdD10IT09bnVsbD90Lmxhc3RFZmZlY3Q6bnVsbCx0IT09bnVsbCl7dmFyIG49dD10Lm5leHQ7ZG97aWYoKG4udGFnJmUpPT09ZSl7dmFyIHI9bi5jcmVhdGU7bi5kZXN0cm95PXIoKX1uPW4ubmV4dH13aGlsZShuIT09dCl9fWZ1bmN0aW9uIHptKGUpe3ZhciB0PWUucmVmO2lmKHQhPT1udWxsKXt2YXIgbj1lLnN0YXRlTm9kZTtzd2l0Y2goZS50YWcpe2Nhc2UgNTplPW47YnJlYWs7ZGVmYXVsdDplPW59dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0LmN1cnJlbnQ9ZX19ZnVuY3Rpb24gSV8oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7dCE9PW51bGwmJihlLmFsdGVybmF0ZT1udWxsLElfKHQpKSxlLmNoaWxkPW51bGwsZS5kZWxldGlvbnM9bnVsbCxlLnNpYmxpbmc9bnVsbCxlLnRhZz09PTUmJih0PWUuc3RhdGVOb2RlLHQhPT1udWxsJiYoZGVsZXRlIHRbS3RdLGRlbGV0ZSB0W2dpXSxkZWxldGUgdFtSbV0sZGVsZXRlIHRbSDFdLGRlbGV0ZSB0W1cxXSkpLGUuc3RhdGVOb2RlPW51bGwsZS5yZXR1cm49bnVsbCxlLmRlcGVuZGVuY2llcz1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUucGVuZGluZ1Byb3BzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGx9ZnVuY3Rpb24gTl8oZSl7cmV0dXJuIGUudGFnPT09NXx8ZS50YWc9PT0zfHxlLnRhZz09PTR9ZnVuY3Rpb24gcXkoZSl7ZTpmb3IoOzspe2Zvcig7ZS5zaWJsaW5nPT09bnVsbDspe2lmKGUucmV0dXJuPT09bnVsbHx8Tl8oZS5yZXR1cm4pKXJldHVybiBudWxsO2U9ZS5yZXR1cm59Zm9yKGUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmc7ZS50YWchPT01JiZlLnRhZyE9PTYmJmUudGFnIT09MTg7KXtpZihlLmZsYWdzJjJ8fGUuY2hpbGQ9PT1udWxsfHxlLnRhZz09PTQpY29udGludWUgZTtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZH1pZighKGUuZmxhZ3MmMikpcmV0dXJuIGUuc3RhdGVOb2RlfX1mdW5jdGlvbiBqbShlLHQsbil7dmFyIHI9ZS50YWc7aWYocj09PTV8fHI9PT02KWU9ZS5zdGF0ZU5vZGUsdD9uLm5vZGVUeXBlPT09OD9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdCk6bi5pbnNlcnRCZWZvcmUoZSx0KToobi5ub2RlVHlwZT09PTg/KHQ9bi5wYXJlbnROb2RlLHQuaW5zZXJ0QmVmb3JlKGUsbikpOih0PW4sdC5hcHBlbmRDaGlsZChlKSksbj1uLl9yZWFjdFJvb3RDb250YWluZXIsbiE9bnVsbHx8dC5vbmNsaWNrIT09bnVsbHx8KHQub25jbGljaz1IbykpO2Vsc2UgaWYociE9PTQmJihlPWUuY2hpbGQsZSE9PW51bGwpKWZvcihqbShlLHQsbiksZT1lLnNpYmxpbmc7ZSE9PW51bGw7KWptKGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiBHbShlLHQsbil7dmFyIHI9ZS50YWc7aWYocj09PTV8fHI9PT02KWU9ZS5zdGF0ZU5vZGUsdD9uLmluc2VydEJlZm9yZShlLHQpOm4uYXBwZW5kQ2hpbGQoZSk7ZWxzZSBpZihyIT09NCYmKGU9ZS5jaGlsZCxlIT09bnVsbCkpZm9yKEdtKGUsdCxuKSxlPWUuc2libGluZztlIT09bnVsbDspR20oZSx0LG4pLGU9ZS5zaWJsaW5nfXZhciBMZT1udWxsLCR0PSExO2Z1bmN0aW9uIHZuKGUsdCxuKXtmb3Iobj1uLmNoaWxkO24hPT1udWxsOylDXyhlLHQsbiksbj1uLnNpYmxpbmd9ZnVuY3Rpb24gQ18oZSx0LG4pe2lmKFp0JiZ0eXBlb2YgWnQub25Db21taXRGaWJlclVubW91bnQ9PSJmdW5jdGlvbiIpdHJ5e1p0Lm9uQ29tbWl0RmliZXJVbm1vdW50KHZzLG4pfWNhdGNoe31zd2l0Y2gobi50YWcpe2Nhc2UgNTpqZXx8UHIobix0KTtjYXNlIDY6dmFyIHI9TGUsYT0kdDtMZT1udWxsLHZuKGUsdCxuKSxMZT1yLCR0PWEsTGUhPT1udWxsJiYoJHQ/KGU9TGUsbj1uLnN0YXRlTm9kZSxlLm5vZGVUeXBlPT09OD9lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobik6ZS5yZW1vdmVDaGlsZChuKSk6TGUucmVtb3ZlQ2hpbGQobi5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDE4OkxlIT09bnVsbCYmKCR0PyhlPUxlLG49bi5zdGF0ZU5vZGUsZS5ub2RlVHlwZT09PTg/bWwoZS5wYXJlbnROb2RlLG4pOmUubm9kZVR5cGU9PT0xJiZtbChlLG4pLGNpKGUpKTptbChMZSxuLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpyPUxlLGE9JHQsTGU9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbywkdD0hMCx2bihlLHQsbiksTGU9ciwkdD1hO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZighamUmJihyPW4udXBkYXRlUXVldWUsciE9PW51bGwmJihyPXIubGFzdEVmZmVjdCxyIT09bnVsbCkpKXthPXI9ci5uZXh0O2Rve3ZhciBpPWEsbz1pLmRlc3Ryb3k7aT1pLnRhZyxvIT09dm9pZCAwJiYoaSYyfHxpJjQpJiYkbShuLHQsbyksYT1hLm5leHR9d2hpbGUoYSE9PXIpfXZuKGUsdCxuKTticmVhaztjYXNlIDE6aWYoIWplJiYoUHIobix0KSxyPW4uc3RhdGVOb2RlLHR5cGVvZiByLmNvbXBvbmVudFdpbGxVbm1vdW50PT0iZnVuY3Rpb24iKSl0cnl7ci5wcm9wcz1uLm1lbW9pemVkUHJvcHMsci5zdGF0ZT1uLm1lbW9pemVkU3RhdGUsci5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKHMpe1RlKG4sdCxzKX12bihlLHQsbik7YnJlYWs7Y2FzZSAyMTp2bihlLHQsbik7YnJlYWs7Y2FzZSAyMjpuLm1vZGUmMT8oamU9KHI9amUpfHxuLm1lbW9pemVkU3RhdGUhPT1udWxsLHZuKGUsdCxuKSxqZT1yKTp2bihlLHQsbik7YnJlYWs7ZGVmYXVsdDp2bihlLHQsbil9fWZ1bmN0aW9uIFZ5KGUpe3ZhciB0PWUudXBkYXRlUXVldWU7aWYodCE9PW51bGwpe2UudXBkYXRlUXVldWU9bnVsbDt2YXIgbj1lLnN0YXRlTm9kZTtuPT09bnVsbCYmKG49ZS5zdGF0ZU5vZGU9bmV3IHVPKSx0LmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGE9dk8uYmluZChudWxsLGUscik7bi5oYXMocil8fChuLmFkZChyKSxyLnRoZW4oYSxhKSl9KX19ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbj10LmRlbGV0aW9ucztpZihuIT09bnVsbClmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGE9bltyXTt0cnl7dmFyIGk9ZSxvPXQscz1vO2U6Zm9yKDtzIT09bnVsbDspe3N3aXRjaChzLnRhZyl7Y2FzZSA1OkxlPXMuc3RhdGVOb2RlLCR0PSExO2JyZWFrIGU7Y2FzZSAzOkxlPXMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sJHQ9ITA7YnJlYWsgZTtjYXNlIDQ6TGU9cy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbywkdD0hMDticmVhayBlfXM9cy5yZXR1cm59aWYoTGU9PT1udWxsKXRocm93IEVycm9yKEQoMTYwKSk7Q18oaSxvLGEpLExlPW51bGwsJHQ9ITE7dmFyIGw9YS5hbHRlcm5hdGU7bCE9PW51bGwmJihsLnJldHVybj1udWxsKSxhLnJldHVybj1udWxsfWNhdGNoKHUpe1RlKGEsdCx1KX19aWYodC5zdWJ0cmVlRmxhZ3MmMTI4NTQpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspT18odCxlKSx0PXQuc2libGluZ31mdW5jdGlvbiBPXyhlLHQpe3ZhciBuPWUuYWx0ZXJuYXRlLHI9ZS5mbGFncztzd2l0Y2goZS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZihGdCh0LGUpLFZ0KGUpLHImNCl7dHJ5e0thKDMsZSxlLnJldHVybiksUnMoMyxlKX1jYXRjaChiKXtUZShlLGUucmV0dXJuLGIpfXRyeXtLYSg1LGUsZS5yZXR1cm4pfWNhdGNoKGIpe1RlKGUsZS5yZXR1cm4sYil9fWJyZWFrO2Nhc2UgMTpGdCh0LGUpLFZ0KGUpLHImNTEyJiZuIT09bnVsbCYmUHIobixuLnJldHVybik7YnJlYWs7Y2FzZSA1OmlmKEZ0KHQsZSksVnQoZSksciY1MTImJm4hPT1udWxsJiZQcihuLG4ucmV0dXJuKSxlLmZsYWdzJjMyKXt2YXIgYT1lLnN0YXRlTm9kZTt0cnl7b2koYSwiIil9Y2F0Y2goYil7VGUoZSxlLnJldHVybixiKX19aWYociY0JiYoYT1lLnN0YXRlTm9kZSxhIT1udWxsKSl7dmFyIGk9ZS5tZW1vaXplZFByb3BzLG89biE9PW51bGw/bi5tZW1vaXplZFByb3BzOmkscz1lLnR5cGUsbD1lLnVwZGF0ZVF1ZXVlO2lmKGUudXBkYXRlUXVldWU9bnVsbCxsIT09bnVsbCl0cnl7cz09PSJpbnB1dCImJmkudHlwZT09PSJyYWRpbyImJmkubmFtZSE9bnVsbCYmZVIoYSxpKSxmbShzLG8pO3ZhciB1PWZtKHMsaSk7Zm9yKG89MDtvPGwubGVuZ3RoO28rPTIpe3ZhciBjPWxbb10sZD1sW28rMV07Yz09PSJzdHlsZSI/aVIoYSxkKTpjPT09ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj9yUihhLGQpOmM9PT0iY2hpbGRyZW4iP29pKGEsZCk6TGcoYSxjLGQsdSl9c3dpdGNoKHMpe2Nhc2UiaW5wdXQiOmxtKGEsaSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6dFIoYSxpKTticmVhaztjYXNlInNlbGVjdCI6dmFyIHA9YS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlO2EuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIWkubXVsdGlwbGU7dmFyIGY9aS52YWx1ZTtmIT1udWxsP3FyKGEsISFpLm11bHRpcGxlLGYsITEpOnAhPT0hIWkubXVsdGlwbGUmJihpLmRlZmF1bHRWYWx1ZSE9bnVsbD9xcihhLCEhaS5tdWx0aXBsZSxpLmRlZmF1bHRWYWx1ZSwhMCk6cXIoYSwhIWkubXVsdGlwbGUsaS5tdWx0aXBsZT9bXToiIiwhMSkpfWFbZ2ldPWl9Y2F0Y2goYil7VGUoZSxlLnJldHVybixiKX19YnJlYWs7Y2FzZSA2OmlmKEZ0KHQsZSksVnQoZSksciY0KXtpZihlLnN0YXRlTm9kZT09PW51bGwpdGhyb3cgRXJyb3IoRCgxNjIpKTthPWUuc3RhdGVOb2RlLGk9ZS5tZW1vaXplZFByb3BzO3RyeXthLm5vZGVWYWx1ZT1pfWNhdGNoKGIpe1RlKGUsZS5yZXR1cm4sYil9fWJyZWFrO2Nhc2UgMzppZihGdCh0LGUpLFZ0KGUpLHImNCYmbiE9PW51bGwmJm4ubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2NpKHQuY29udGFpbmVySW5mbyl9Y2F0Y2goYil7VGUoZSxlLnJldHVybixiKX1icmVhaztjYXNlIDQ6RnQodCxlKSxWdChlKTticmVhaztjYXNlIDEzOkZ0KHQsZSksVnQoZSksYT1lLmNoaWxkLGEuZmxhZ3MmODE5MiYmKGk9YS5tZW1vaXplZFN0YXRlIT09bnVsbCxhLnN0YXRlTm9kZS5pc0hpZGRlbj1pLCFpfHxhLmFsdGVybmF0ZSE9PW51bGwmJmEuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUhPT1udWxsfHwocGg9QWUoKSkpLHImNCYmVnkoZSk7YnJlYWs7Y2FzZSAyMjppZihjPW4hPT1udWxsJiZuLm1lbW9pemVkU3RhdGUhPT1udWxsLGUubW9kZSYxPyhqZT0odT1qZSl8fGMsRnQodCxlKSxqZT11KTpGdCh0LGUpLFZ0KGUpLHImODE5Mil7aWYodT1lLm1lbW9pemVkU3RhdGUhPT1udWxsLChlLnN0YXRlTm9kZS5pc0hpZGRlbj11KSYmIWMmJmUubW9kZSYxKWZvcih6PWUsYz1lLmNoaWxkO2MhPT1udWxsOyl7Zm9yKGQ9ej1jO3ohPT1udWxsOyl7c3dpdGNoKHA9eixmPXAuY2hpbGQscC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpLYSg0LHAscC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpQcihwLHAucmV0dXJuKTt2YXIgeT1wLnN0YXRlTm9kZTtpZih0eXBlb2YgeS5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIil7cj1wLG49cC5yZXR1cm47dHJ5e3Q9cix5LnByb3BzPXQubWVtb2l6ZWRQcm9wcyx5LnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSx5LmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goYil7VGUocixuLGIpfX1icmVhaztjYXNlIDU6UHIocCxwLnJldHVybik7YnJlYWs7Y2FzZSAyMjppZihwLm1lbW9pemVkU3RhdGUhPT1udWxsKXtXeShkKTtjb250aW51ZX19ZiE9PW51bGw/KGYucmV0dXJuPXAsej1mKTpXeShkKX1jPWMuc2libGluZ31lOmZvcihjPW51bGwsZD1lOzspe2lmKGQudGFnPT09NSl7aWYoYz09PW51bGwpe2M9ZDt0cnl7YT1kLnN0YXRlTm9kZSx1PyhpPWEuc3R5bGUsdHlwZW9mIGkuc2V0UHJvcGVydHk9PSJmdW5jdGlvbiI/aS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIm5vbmUiLCJpbXBvcnRhbnQiKTppLmRpc3BsYXk9Im5vbmUiKToocz1kLnN0YXRlTm9kZSxsPWQubWVtb2l6ZWRQcm9wcy5zdHlsZSxvPWwhPW51bGwmJmwuaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9sLmRpc3BsYXk6bnVsbCxzLnN0eWxlLmRpc3BsYXk9YVIoImRpc3BsYXkiLG8pKX1jYXRjaChiKXtUZShlLGUucmV0dXJuLGIpfX19ZWxzZSBpZihkLnRhZz09PTYpe2lmKGM9PT1udWxsKXRyeXtkLnN0YXRlTm9kZS5ub2RlVmFsdWU9dT8iIjpkLm1lbW9pemVkUHJvcHN9Y2F0Y2goYil7VGUoZSxlLnJldHVybixiKX19ZWxzZSBpZigoZC50YWchPT0yMiYmZC50YWchPT0yM3x8ZC5tZW1vaXplZFN0YXRlPT09bnVsbHx8ZD09PWUpJiZkLmNoaWxkIT09bnVsbCl7ZC5jaGlsZC5yZXR1cm49ZCxkPWQuY2hpbGQ7Y29udGludWV9aWYoZD09PWUpYnJlYWsgZTtmb3IoO2Quc2libGluZz09PW51bGw7KXtpZihkLnJldHVybj09PW51bGx8fGQucmV0dXJuPT09ZSlicmVhayBlO2M9PT1kJiYoYz1udWxsKSxkPWQucmV0dXJufWM9PT1kJiYoYz1udWxsKSxkLnNpYmxpbmcucmV0dXJuPWQucmV0dXJuLGQ9ZC5zaWJsaW5nfX1icmVhaztjYXNlIDE5OkZ0KHQsZSksVnQoZSksciY0JiZWeShlKTticmVhaztjYXNlIDIxOmJyZWFrO2RlZmF1bHQ6RnQodCxlKSxWdChlKX19ZnVuY3Rpb24gVnQoZSl7dmFyIHQ9ZS5mbGFncztpZih0JjIpe3RyeXtlOntmb3IodmFyIG49ZS5yZXR1cm47biE9PW51bGw7KXtpZihOXyhuKSl7dmFyIHI9bjticmVhayBlfW49bi5yZXR1cm59dGhyb3cgRXJyb3IoRCgxNjApKX1zd2l0Y2goci50YWcpe2Nhc2UgNTp2YXIgYT1yLnN0YXRlTm9kZTtyLmZsYWdzJjMyJiYob2koYSwiIiksci5mbGFncyY9LTMzKTt2YXIgaT1xeShlKTtHbShlLGksYSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgbz1yLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLHM9cXkoZSk7am0oZSxzLG8pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoRCgxNjEpKX19Y2F0Y2gobCl7VGUoZSxlLnJldHVybixsKX1lLmZsYWdzJj0tM310JjQwOTYmJihlLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gZE8oZSx0LG4pe3o9ZSxMXyhlKX1mdW5jdGlvbiBMXyhlLHQsbil7Zm9yKHZhciByPShlLm1vZGUmMSkhPT0wO3ohPT1udWxsOyl7dmFyIGE9eixpPWEuY2hpbGQ7aWYoYS50YWc9PT0yMiYmcil7dmFyIG89YS5tZW1vaXplZFN0YXRlIT09bnVsbHx8aW87aWYoIW8pe3ZhciBzPWEuYWx0ZXJuYXRlLGw9cyE9PW51bGwmJnMubWVtb2l6ZWRTdGF0ZSE9PW51bGx8fGplO3M9aW87dmFyIHU9amU7aWYoaW89bywoamU9bCkmJiF1KWZvcih6PWE7eiE9PW51bGw7KW89eixsPW8uY2hpbGQsby50YWc9PT0yMiYmby5tZW1vaXplZFN0YXRlIT09bnVsbD9ZeShhKTpsIT09bnVsbD8obC5yZXR1cm49byx6PWwpOll5KGEpO2Zvcig7aSE9PW51bGw7KXo9aSxMXyhpKSxpPWkuc2libGluZzt6PWEsaW89cyxqZT11fUh5KGUpfWVsc2UgYS5zdWJ0cmVlRmxhZ3MmODc3MiYmaSE9PW51bGw/KGkucmV0dXJuPWEsej1pKTpIeShlKX19ZnVuY3Rpb24gSHkoZSl7Zm9yKDt6IT09bnVsbDspe3ZhciB0PXo7aWYodC5mbGFncyY4NzcyKXt2YXIgbj10LmFsdGVybmF0ZTt0cnl7aWYodC5mbGFncyY4NzcyKXN3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpqZXx8UnMoNSx0KTticmVhaztjYXNlIDE6dmFyIHI9dC5zdGF0ZU5vZGU7aWYodC5mbGFncyY0JiYhamUpaWYobj09PW51bGwpci5jb21wb25lbnREaWRNb3VudCgpO2Vsc2V7dmFyIGE9dC5lbGVtZW50VHlwZT09PXQudHlwZT9uLm1lbW9pemVkUHJvcHM6QnQodC50eXBlLG4ubWVtb2l6ZWRQcm9wcyk7ci5jb21wb25lbnREaWRVcGRhdGUoYSxuLm1lbW9pemVkU3RhdGUsci5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9dmFyIGk9dC51cGRhdGVRdWV1ZTtpIT09bnVsbCYmTnkodCxpLHIpO2JyZWFrO2Nhc2UgMzp2YXIgbz10LnVwZGF0ZVF1ZXVlO2lmKG8hPT1udWxsKXtpZihuPW51bGwsdC5jaGlsZCE9PW51bGwpc3dpdGNoKHQuY2hpbGQudGFnKXtjYXNlIDU6bj10LmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6bj10LmNoaWxkLnN0YXRlTm9kZX1OeSh0LG8sbil9YnJlYWs7Y2FzZSA1OnZhciBzPXQuc3RhdGVOb2RlO2lmKG49PT1udWxsJiZ0LmZsYWdzJjQpe249czt2YXIgbD10Lm1lbW9pemVkUHJvcHM7c3dpdGNoKHQudHlwZSl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpsLmF1dG9Gb2N1cyYmbi5mb2N1cygpO2JyZWFrO2Nhc2UiaW1nIjpsLnNyYyYmKG4uc3JjPWwuc3JjKX19YnJlYWs7Y2FzZSA2OmJyZWFrO2Nhc2UgNDpicmVhaztjYXNlIDEyOmJyZWFrO2Nhc2UgMTM6aWYodC5tZW1vaXplZFN0YXRlPT09bnVsbCl7dmFyIHU9dC5hbHRlcm5hdGU7aWYodSE9PW51bGwpe3ZhciBjPXUubWVtb2l6ZWRTdGF0ZTtpZihjIT09bnVsbCl7dmFyIGQ9Yy5kZWh5ZHJhdGVkO2QhPT1udWxsJiZjaShkKX19fWJyZWFrO2Nhc2UgMTk6Y2FzZSAxNzpjYXNlIDIxOmNhc2UgMjI6Y2FzZSAyMzpjYXNlIDI1OmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoRCgxNjMpKX1qZXx8dC5mbGFncyY1MTImJnptKHQpfWNhdGNoKHApe1RlKHQsdC5yZXR1cm4scCl9fWlmKHQ9PT1lKXt6PW51bGw7YnJlYWt9aWYobj10LnNpYmxpbmcsbiE9PW51bGwpe24ucmV0dXJuPXQucmV0dXJuLHo9bjticmVha316PXQucmV0dXJufX1mdW5jdGlvbiBXeShlKXtmb3IoO3ohPT1udWxsOyl7dmFyIHQ9ejtpZih0PT09ZSl7ej1udWxsO2JyZWFrfXZhciBuPXQuc2libGluZztpZihuIT09bnVsbCl7bi5yZXR1cm49dC5yZXR1cm4sej1uO2JyZWFrfXo9dC5yZXR1cm59fWZ1bmN0aW9uIFl5KGUpe2Zvcig7eiE9PW51bGw7KXt2YXIgdD16O3RyeXtzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dmFyIG49dC5yZXR1cm47dHJ5e1JzKDQsdCl9Y2F0Y2gobCl7VGUodCxuLGwpfWJyZWFrO2Nhc2UgMTp2YXIgcj10LnN0YXRlTm9kZTtpZih0eXBlb2Ygci5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIil7dmFyIGE9dC5yZXR1cm47dHJ5e3IuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChsKXtUZSh0LGEsbCl9fXZhciBpPXQucmV0dXJuO3RyeXt6bSh0KX1jYXRjaChsKXtUZSh0LGksbCl9YnJlYWs7Y2FzZSA1OnZhciBvPXQucmV0dXJuO3RyeXt6bSh0KX1jYXRjaChsKXtUZSh0LG8sbCl9fX1jYXRjaChsKXtUZSh0LHQucmV0dXJuLGwpfWlmKHQ9PT1lKXt6PW51bGw7YnJlYWt9dmFyIHM9dC5zaWJsaW5nO2lmKHMhPT1udWxsKXtzLnJldHVybj10LnJldHVybix6PXM7YnJlYWt9ej10LnJldHVybn19dmFyIHBPPU1hdGguY2VpbCxycz15bi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGNoPXluLlJlYWN0Q3VycmVudE93bmVyLEl0PXluLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLHJlPTAsT2U9bnVsbCxSZT1udWxsLFBlPTAsZHQ9MCxGcj1HbigwKSxOZT0wLFNpPW51bGwsZnI9MCxfcz0wLGRoPTAsWGE9bnVsbCxldD1udWxsLHBoPTAsYWE9MS8wLG9uPW51bGwsYXM9ITEscW09bnVsbCxEbj1udWxsLG9vPSExLFJuPW51bGwsaXM9MCxaYT0wLFZtPW51bGwsX289LTEsSW89MDtmdW5jdGlvbiBLZSgpe3JldHVybiByZSY2P0FlKCk6X28hPT0tMT9fbzpfbz1BZSgpfWZ1bmN0aW9uIE1uKGUpe3JldHVybiBlLm1vZGUmMT9yZSYyJiZQZSE9PTA/UGUmLVBlOksxLnRyYW5zaXRpb24hPT1udWxsPyhJbz09PTAmJihJbz1iUigpKSxJbyk6KGU9aWUsZSE9PTB8fChlPXdpbmRvdy5ldmVudCxlPWU9PT12b2lkIDA/MTY6a1IoZS50eXBlKSksZSk6MX1mdW5jdGlvbiBHdChlLHQsbixyKXtpZig1MDxaYSl0aHJvdyBaYT0wLFZtPW51bGwsRXJyb3IoRCgxODUpKTtPaShlLG4sciksKCEocmUmMil8fGUhPT1PZSkmJihlPT09T2UmJighKHJlJjIpJiYoX3N8PW4pLE5lPT09NCYmQW4oZSxQZSkpLGl0KGUsciksbj09PTEmJnJlPT09MCYmISh0Lm1vZGUmMSkmJihhYT1BZSgpKzUwMCxrcyYmcW4oKSkpfWZ1bmN0aW9uIGl0KGUsdCl7dmFyIG49ZS5jYWxsYmFja05vZGU7SzAoZSx0KTt2YXIgcj1qbyhlLGU9PT1PZT9QZTowKTtpZihyPT09MCluIT09bnVsbCYmcnkobiksZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MDtlbHNlIGlmKHQ9ciYtcixlLmNhbGxiYWNrUHJpb3JpdHkhPT10KXtpZihuIT1udWxsJiZyeShuKSx0PT09MSllLnRhZz09PTA/WTEoS3kuYmluZChudWxsLGUpKTpHUihLeS5iaW5kKG51bGwsZSkpLHExKGZ1bmN0aW9uKCl7IShyZSY2KSYmcW4oKX0pLG49bnVsbDtlbHNle3N3aXRjaCh5UihyKSl7Y2FzZSAxOm49VWc7YnJlYWs7Y2FzZSA0Om49Z1I7YnJlYWs7Y2FzZSAxNjpuPXpvO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOm49aFI7YnJlYWs7ZGVmYXVsdDpuPXpvfW49el8obixEXy5iaW5kKG51bGwsZSkpfWUuY2FsbGJhY2tQcmlvcml0eT10LGUuY2FsbGJhY2tOb2RlPW59fWZ1bmN0aW9uIERfKGUsdCl7aWYoX289LTEsSW89MCxyZSY2KXRocm93IEVycm9yKEQoMzI3KSk7dmFyIG49ZS5jYWxsYmFja05vZGU7aWYoS3IoKSYmZS5jYWxsYmFja05vZGUhPT1uKXJldHVybiBudWxsO3ZhciByPWpvKGUsZT09PU9lP1BlOjApO2lmKHI9PT0wKXJldHVybiBudWxsO2lmKHImMzB8fHImZS5leHBpcmVkTGFuZXN8fHQpdD1vcyhlLHIpO2Vsc2V7dD1yO3ZhciBhPXJlO3JlfD0yO3ZhciBpPVBfKCk7KE9lIT09ZXx8UGUhPT10KSYmKG9uPW51bGwsYWE9QWUoKSs1MDAsc3IoZSx0KSk7ZG8gdHJ5e2dPKCk7YnJlYWt9Y2F0Y2gocyl7TV8oZSxzKX13aGlsZSghMCk7WmcoKSxycy5jdXJyZW50PWkscmU9YSxSZSE9PW51bGw/dD0wOihPZT1udWxsLFBlPTAsdD1OZSl9aWYodCE9PTApe2lmKHQ9PT0yJiYoYT15bShlKSxhIT09MCYmKHI9YSx0PUhtKGUsYSkpKSx0PT09MSl0aHJvdyBuPVNpLHNyKGUsMCksQW4oZSxyKSxpdChlLEFlKCkpLG47aWYodD09PTYpQW4oZSxyKTtlbHNle2lmKGE9ZS5jdXJyZW50LmFsdGVybmF0ZSwhKHImMzApJiYhZk8oYSkmJih0PW9zKGUsciksdD09PTImJihpPXltKGUpLGkhPT0wJiYocj1pLHQ9SG0oZSxpKSkpLHQ9PT0xKSl0aHJvdyBuPVNpLHNyKGUsMCksQW4oZSxyKSxpdChlLEFlKCkpLG47c3dpdGNoKGUuZmluaXNoZWRXb3JrPWEsZS5maW5pc2hlZExhbmVzPXIsdCl7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcihEKDM0NSkpO2Nhc2UgMjpRbihlLGV0LG9uKTticmVhaztjYXNlIDM6aWYoQW4oZSxyKSwociYxMzAwMjM0MjQpPT09ciYmKHQ9cGgrNTAwLUFlKCksMTA8dCkpe2lmKGpvKGUsMCkhPT0wKWJyZWFrO2lmKGE9ZS5zdXNwZW5kZWRMYW5lcywoYSZyKSE9PXIpe0tlKCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZhO2JyZWFrfWUudGltZW91dEhhbmRsZT14bShRbi5iaW5kKG51bGwsZSxldCxvbiksdCk7YnJlYWt9UW4oZSxldCxvbik7YnJlYWs7Y2FzZSA0OmlmKEFuKGUsciksKHImNDE5NDI0MCk9PT1yKWJyZWFrO2Zvcih0PWUuZXZlbnRUaW1lcyxhPS0xOzA8cjspe3ZhciBvPTMxLWp0KHIpO2k9MTw8byxvPXRbb10sbz5hJiYoYT1vKSxyJj1+aX1pZihyPWEscj1BZSgpLXIscj0oMTIwPnI/MTIwOjQ4MD5yPzQ4MDoxMDgwPnI/MTA4MDoxOTIwPnI/MTkyMDozZTM+cj8zZTM6NDMyMD5yPzQzMjA6MTk2MCpwTyhyLzE5NjApKS1yLDEwPHIpe2UudGltZW91dEhhbmRsZT14bShRbi5iaW5kKG51bGwsZSxldCxvbikscik7YnJlYWt9UW4oZSxldCxvbik7YnJlYWs7Y2FzZSA1OlFuKGUsZXQsb24pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoRCgzMjkpKX19fXJldHVybiBpdChlLEFlKCkpLGUuY2FsbGJhY2tOb2RlPT09bj9EXy5iaW5kKG51bGwsZSk6bnVsbH1mdW5jdGlvbiBIbShlLHQpe3ZhciBuPVhhO3JldHVybiBlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJihzcihlLHQpLmZsYWdzfD0yNTYpLGU9b3MoZSx0KSxlIT09MiYmKHQ9ZXQsZXQ9bix0IT09bnVsbCYmV20odCkpLGV9ZnVuY3Rpb24gV20oZSl7ZXQ9PT1udWxsP2V0PWU6ZXQucHVzaC5hcHBseShldCxlKX1mdW5jdGlvbiBmTyhlKXtmb3IodmFyIHQ9ZTs7KXtpZih0LmZsYWdzJjE2Mzg0KXt2YXIgbj10LnVwZGF0ZVF1ZXVlO2lmKG4hPT1udWxsJiYobj1uLnN0b3JlcyxuIT09bnVsbCkpZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBhPW5bcl0saT1hLmdldFNuYXBzaG90O2E9YS52YWx1ZTt0cnl7aWYoIXF0KGkoKSxhKSlyZXR1cm4hMX1jYXRjaHtyZXR1cm4hMX19fWlmKG49dC5jaGlsZCx0LnN1YnRyZWVGbGFncyYxNjM4NCYmbiE9PW51bGwpbi5yZXR1cm49dCx0PW47ZWxzZXtpZih0PT09ZSlicmVhaztmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fHQucmV0dXJuPT09ZSlyZXR1cm4hMDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9fXJldHVybiEwfWZ1bmN0aW9uIEFuKGUsdCl7Zm9yKHQmPX5kaCx0Jj1+X3MsZS5zdXNwZW5kZWRMYW5lc3w9dCxlLnBpbmdlZExhbmVzJj1+dCxlPWUuZXhwaXJhdGlvblRpbWVzOzA8dDspe3ZhciBuPTMxLWp0KHQpLHI9MTw8bjtlW25dPS0xLHQmPX5yfX1mdW5jdGlvbiBLeShlKXtpZihyZSY2KXRocm93IEVycm9yKEQoMzI3KSk7S3IoKTt2YXIgdD1qbyhlLDApO2lmKCEodCYxKSlyZXR1cm4gaXQoZSxBZSgpKSxudWxsO3ZhciBuPW9zKGUsdCk7aWYoZS50YWchPT0wJiZuPT09Mil7dmFyIHI9eW0oZSk7ciE9PTAmJih0PXIsbj1IbShlLHIpKX1pZihuPT09MSl0aHJvdyBuPVNpLHNyKGUsMCksQW4oZSx0KSxpdChlLEFlKCkpLG47aWYobj09PTYpdGhyb3cgRXJyb3IoRCgzNDUpKTtyZXR1cm4gZS5maW5pc2hlZFdvcms9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZpbmlzaGVkTGFuZXM9dCxRbihlLGV0LG9uKSxpdChlLEFlKCkpLG51bGx9ZnVuY3Rpb24gZmgoZSx0KXt2YXIgbj1yZTtyZXw9MTt0cnl7cmV0dXJuIGUodCl9ZmluYWxseXtyZT1uLHJlPT09MCYmKGFhPUFlKCkrNTAwLGtzJiZxbigpKX19ZnVuY3Rpb24gbXIoZSl7Um4hPT1udWxsJiZSbi50YWc9PT0wJiYhKHJlJjYpJiZLcigpO3ZhciB0PXJlO3JlfD0xO3ZhciBuPUl0LnRyYW5zaXRpb24scj1pZTt0cnl7aWYoSXQudHJhbnNpdGlvbj1udWxsLGllPTEsZSlyZXR1cm4gZSgpfWZpbmFsbHl7aWU9cixJdC50cmFuc2l0aW9uPW4scmU9dCwhKHJlJjYpJiZxbigpfX1mdW5jdGlvbiBtaCgpe2R0PUZyLmN1cnJlbnQsZmUoRnIpfWZ1bmN0aW9uIHNyKGUsdCl7ZS5maW5pc2hlZFdvcms9bnVsbCxlLmZpbmlzaGVkTGFuZXM9MDt2YXIgbj1lLnRpbWVvdXRIYW5kbGU7aWYobiE9PS0xJiYoZS50aW1lb3V0SGFuZGxlPS0xLEcxKG4pKSxSZSE9PW51bGwpZm9yKG49UmUucmV0dXJuO24hPT1udWxsOyl7dmFyIHI9bjtzd2l0Y2goWWcociksci50YWcpe2Nhc2UgMTpyPXIudHlwZS5jaGlsZENvbnRleHRUeXBlcyxyIT1udWxsJiZXbygpO2JyZWFrO2Nhc2UgMzpuYSgpLGZlKHJ0KSxmZShxZSkscmgoKTticmVhaztjYXNlIDU6bmgocik7YnJlYWs7Y2FzZSA0Om5hKCk7YnJlYWs7Y2FzZSAxMzpmZShiZSk7YnJlYWs7Y2FzZSAxOTpmZShiZSk7YnJlYWs7Y2FzZSAxMDpRZyhyLnR5cGUuX2NvbnRleHQpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzptaCgpfW49bi5yZXR1cm59aWYoT2U9ZSxSZT1lPVBuKGUuY3VycmVudCxudWxsKSxQZT1kdD10LE5lPTAsU2k9bnVsbCxkaD1fcz1mcj0wLGV0PVhhPW51bGwscnIhPT1udWxsKXtmb3IodD0wO3Q8cnIubGVuZ3RoO3QrKylpZihuPXJyW3RdLHI9bi5pbnRlcmxlYXZlZCxyIT09bnVsbCl7bi5pbnRlcmxlYXZlZD1udWxsO3ZhciBhPXIubmV4dCxpPW4ucGVuZGluZztpZihpIT09bnVsbCl7dmFyIG89aS5uZXh0O2kubmV4dD1hLHIubmV4dD1vfW4ucGVuZGluZz1yfXJyPW51bGx9cmV0dXJuIGV9ZnVuY3Rpb24gTV8oZSx0KXtkb3t2YXIgbj1SZTt0cnl7aWYoWmcoKSxBby5jdXJyZW50PW5zLHRzKXtmb3IodmFyIHI9dmUubWVtb2l6ZWRTdGF0ZTtyIT09bnVsbDspe3ZhciBhPXIucXVldWU7YSE9PW51bGwmJihhLnBlbmRpbmc9bnVsbCkscj1yLm5leHR9dHM9ITF9aWYocHI9MCxDZT1JZT12ZT1udWxsLFlhPSExLHlpPTAsY2guY3VycmVudD1udWxsLG49PT1udWxsfHxuLnJldHVybj09PW51bGwpe05lPTEsU2k9dCxSZT1udWxsO2JyZWFrfWU6e3ZhciBpPWUsbz1uLnJldHVybixzPW4sbD10O2lmKHQ9UGUscy5mbGFnc3w9MzI3NjgsbCE9PW51bGwmJnR5cGVvZiBsPT0ib2JqZWN0IiYmdHlwZW9mIGwudGhlbj09ImZ1bmN0aW9uIil7dmFyIHU9bCxjPXMsZD1jLnRhZztpZighKGMubW9kZSYxKSYmKGQ9PT0wfHxkPT09MTF8fGQ9PT0xNSkpe3ZhciBwPWMuYWx0ZXJuYXRlO3A/KGMudXBkYXRlUXVldWU9cC51cGRhdGVRdWV1ZSxjLm1lbW9pemVkU3RhdGU9cC5tZW1vaXplZFN0YXRlLGMubGFuZXM9cC5sYW5lcyk6KGMudXBkYXRlUXVldWU9bnVsbCxjLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIGY9UHkobyk7aWYoZiE9PW51bGwpe2YuZmxhZ3MmPS0yNTcsRnkoZixvLHMsaSx0KSxmLm1vZGUmMSYmTXkoaSx1LHQpLHQ9ZixsPXU7dmFyIHk9dC51cGRhdGVRdWV1ZTtpZih5PT09bnVsbCl7dmFyIGI9bmV3IFNldDtiLmFkZChsKSx0LnVwZGF0ZVF1ZXVlPWJ9ZWxzZSB5LmFkZChsKTticmVhayBlfWVsc2V7aWYoISh0JjEpKXtNeShpLHUsdCksZ2goKTticmVhayBlfWw9RXJyb3IoRCg0MjYpKX19ZWxzZSBpZihnZSYmcy5tb2RlJjEpe3ZhciBBPVB5KG8pO2lmKEEhPT1udWxsKXshKEEuZmxhZ3MmNjU1MzYpJiYoQS5mbGFnc3w9MjU2KSxGeShBLG8scyxpLHQpLEtnKHJhKGwscykpO2JyZWFrIGV9fWk9bD1yYShsLHMpLE5lIT09NCYmKE5lPTIpLFhhPT09bnVsbD9YYT1baV06WGEucHVzaChpKSxpPW87ZG97c3dpdGNoKGkudGFnKXtjYXNlIDM6aS5mbGFnc3w9NjU1MzYsdCY9LXQsaS5sYW5lc3w9dDt2YXIgaD15XyhpLGwsdCk7SXkoaSxoKTticmVhayBlO2Nhc2UgMTpzPWw7dmFyIG09aS50eXBlLGc9aS5zdGF0ZU5vZGU7aWYoIShpLmZsYWdzJjEyOCkmJih0eXBlb2YgbS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I9PSJmdW5jdGlvbiJ8fGchPT1udWxsJiZ0eXBlb2YgZy5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKERuPT09bnVsbHx8IURuLmhhcyhnKSkpKXtpLmZsYWdzfD02NTUzNix0Jj0tdCxpLmxhbmVzfD10O3ZhciBFPXZfKGkscyx0KTtJeShpLEUpO2JyZWFrIGV9fWk9aS5yZXR1cm59d2hpbGUoaSE9PW51bGwpfVVfKG4pfWNhdGNoKFQpe3Q9VCxSZT09PW4mJm4hPT1udWxsJiYoUmU9bj1uLnJldHVybik7Y29udGludWV9YnJlYWt9d2hpbGUoITApfWZ1bmN0aW9uIFBfKCl7dmFyIGU9cnMuY3VycmVudDtyZXR1cm4gcnMuY3VycmVudD1ucyxlPT09bnVsbD9uczplfWZ1bmN0aW9uIGdoKCl7KE5lPT09MHx8TmU9PT0zfHxOZT09PTIpJiYoTmU9NCksT2U9PT1udWxsfHwhKGZyJjI2ODQzNTQ1NSkmJiEoX3MmMjY4NDM1NDU1KXx8QW4oT2UsUGUpfWZ1bmN0aW9uIG9zKGUsdCl7dmFyIG49cmU7cmV8PTI7dmFyIHI9UF8oKTsoT2UhPT1lfHxQZSE9PXQpJiYob249bnVsbCxzcihlLHQpKTtkbyB0cnl7bU8oKTticmVha31jYXRjaChhKXtNXyhlLGEpfXdoaWxlKCEwKTtpZihaZygpLHJlPW4scnMuY3VycmVudD1yLFJlIT09bnVsbCl0aHJvdyBFcnJvcihEKDI2MSkpO3JldHVybiBPZT1udWxsLFBlPTAsTmV9ZnVuY3Rpb24gbU8oKXtmb3IoO1JlIT09bnVsbDspRl8oUmUpfWZ1bmN0aW9uIGdPKCl7Zm9yKDtSZSE9PW51bGwmJiEkMCgpOylGXyhSZSl9ZnVuY3Rpb24gRl8oZSl7dmFyIHQ9JF8oZS5hbHRlcm5hdGUsZSxkdCk7ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLHQ9PT1udWxsP1VfKGUpOlJlPXQsY2guY3VycmVudD1udWxsfWZ1bmN0aW9uIFVfKGUpe3ZhciB0PWU7ZG97dmFyIG49dC5hbHRlcm5hdGU7aWYoZT10LnJldHVybix0LmZsYWdzJjMyNzY4KXtpZihuPWxPKG4sdCksbiE9PW51bGwpe24uZmxhZ3MmPTMyNzY3LFJlPW47cmV0dXJufWlmKGUhPT1udWxsKWUuZmxhZ3N8PTMyNzY4LGUuc3VidHJlZUZsYWdzPTAsZS5kZWxldGlvbnM9bnVsbDtlbHNle05lPTYsUmU9bnVsbDtyZXR1cm59fWVsc2UgaWYobj1zTyhuLHQsZHQpLG4hPT1udWxsKXtSZT1uO3JldHVybn1pZih0PXQuc2libGluZyx0IT09bnVsbCl7UmU9dDtyZXR1cm59UmU9dD1lfXdoaWxlKHQhPT1udWxsKTtOZT09PTAmJihOZT01KX1mdW5jdGlvbiBRbihlLHQsbil7dmFyIHI9aWUsYT1JdC50cmFuc2l0aW9uO3RyeXtJdC50cmFuc2l0aW9uPW51bGwsaWU9MSxoTyhlLHQsbixyKX1maW5hbGx5e0l0LnRyYW5zaXRpb249YSxpZT1yfXJldHVybiBudWxsfWZ1bmN0aW9uIGhPKGUsdCxuLHIpe2RvIEtyKCk7d2hpbGUoUm4hPT1udWxsKTtpZihyZSY2KXRocm93IEVycm9yKEQoMzI3KSk7bj1lLmZpbmlzaGVkV29yazt2YXIgYT1lLmZpbmlzaGVkTGFuZXM7aWYobj09PW51bGwpcmV0dXJuIG51bGw7aWYoZS5maW5pc2hlZFdvcms9bnVsbCxlLmZpbmlzaGVkTGFuZXM9MCxuPT09ZS5jdXJyZW50KXRocm93IEVycm9yKEQoMTc3KSk7ZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MDt2YXIgaT1uLmxhbmVzfG4uY2hpbGRMYW5lcztpZihYMChlLGkpLGU9PT1PZSYmKFJlPU9lPW51bGwsUGU9MCksIShuLnN1YnRyZWVGbGFncyYyMDY0KSYmIShuLmZsYWdzJjIwNjQpfHxvb3x8KG9vPSEwLHpfKHpvLGZ1bmN0aW9uKCl7cmV0dXJuIEtyKCksbnVsbH0pKSxpPShuLmZsYWdzJjE1OTkwKSE9PTAsbi5zdWJ0cmVlRmxhZ3MmMTU5OTB8fGkpe2k9SXQudHJhbnNpdGlvbixJdC50cmFuc2l0aW9uPW51bGw7dmFyIG89aWU7aWU9MTt2YXIgcz1yZTtyZXw9NCxjaC5jdXJyZW50PW51bGwsY08oZSxuKSxPXyhuLGUpLFAxKGttKSxHbz0hIVRtLGttPVRtPW51bGwsZS5jdXJyZW50PW4sZE8obiksejAoKSxyZT1zLGllPW8sSXQudHJhbnNpdGlvbj1pfWVsc2UgZS5jdXJyZW50PW47aWYob28mJihvbz0hMSxSbj1lLGlzPWEpLGk9ZS5wZW5kaW5nTGFuZXMsaT09PTAmJihEbj1udWxsKSxxMChuLnN0YXRlTm9kZSksaXQoZSxBZSgpKSx0IT09bnVsbClmb3Iocj1lLm9uUmVjb3ZlcmFibGVFcnJvcixuPTA7bjx0Lmxlbmd0aDtuKyspYT10W25dLHIoYS52YWx1ZSx7Y29tcG9uZW50U3RhY2s6YS5zdGFjayxkaWdlc3Q6YS5kaWdlc3R9KTtpZihhcyl0aHJvdyBhcz0hMSxlPXFtLHFtPW51bGwsZTtyZXR1cm4gaXMmMSYmZS50YWchPT0wJiZLcigpLGk9ZS5wZW5kaW5nTGFuZXMsaSYxP2U9PT1WbT9aYSsrOihaYT0wLFZtPWUpOlphPTAscW4oKSxudWxsfWZ1bmN0aW9uIEtyKCl7aWYoUm4hPT1udWxsKXt2YXIgZT15UihpcyksdD1JdC50cmFuc2l0aW9uLG49aWU7dHJ5e2lmKEl0LnRyYW5zaXRpb249bnVsbCxpZT0xNj5lPzE2OmUsUm49PT1udWxsKXZhciByPSExO2Vsc2V7aWYoZT1SbixSbj1udWxsLGlzPTAscmUmNil0aHJvdyBFcnJvcihEKDMzMSkpO3ZhciBhPXJlO2ZvcihyZXw9NCx6PWUuY3VycmVudDt6IT09bnVsbDspe3ZhciBpPXosbz1pLmNoaWxkO2lmKHouZmxhZ3MmMTYpe3ZhciBzPWkuZGVsZXRpb25zO2lmKHMhPT1udWxsKXtmb3IodmFyIGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIHU9c1tsXTtmb3Ioej11O3ohPT1udWxsOyl7dmFyIGM9ejtzd2l0Y2goYy50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6S2EoOCxjLGkpfXZhciBkPWMuY2hpbGQ7aWYoZCE9PW51bGwpZC5yZXR1cm49Yyx6PWQ7ZWxzZSBmb3IoO3ohPT1udWxsOyl7Yz16O3ZhciBwPWMuc2libGluZyxmPWMucmV0dXJuO2lmKElfKGMpLGM9PT11KXt6PW51bGw7YnJlYWt9aWYocCE9PW51bGwpe3AucmV0dXJuPWYsej1wO2JyZWFrfXo9Zn19fXZhciB5PWkuYWx0ZXJuYXRlO2lmKHkhPT1udWxsKXt2YXIgYj15LmNoaWxkO2lmKGIhPT1udWxsKXt5LmNoaWxkPW51bGw7ZG97dmFyIEE9Yi5zaWJsaW5nO2Iuc2libGluZz1udWxsLGI9QX13aGlsZShiIT09bnVsbCl9fXo9aX19aWYoaS5zdWJ0cmVlRmxhZ3MmMjA2NCYmbyE9PW51bGwpby5yZXR1cm49aSx6PW87ZWxzZSBlOmZvcig7eiE9PW51bGw7KXtpZihpPXosaS5mbGFncyYyMDQ4KXN3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpLYSg5LGksaS5yZXR1cm4pfXZhciBoPWkuc2libGluZztpZihoIT09bnVsbCl7aC5yZXR1cm49aS5yZXR1cm4sej1oO2JyZWFrIGV9ej1pLnJldHVybn19dmFyIG09ZS5jdXJyZW50O2Zvcih6PW07eiE9PW51bGw7KXtvPXo7dmFyIGc9by5jaGlsZDtpZihvLnN1YnRyZWVGbGFncyYyMDY0JiZnIT09bnVsbClnLnJldHVybj1vLHo9ZztlbHNlIGU6Zm9yKG89bTt6IT09bnVsbDspe2lmKHM9eixzLmZsYWdzJjIwNDgpdHJ5e3N3aXRjaChzLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpScyg5LHMpfX1jYXRjaChUKXtUZShzLHMucmV0dXJuLFQpfWlmKHM9PT1vKXt6PW51bGw7YnJlYWsgZX12YXIgRT1zLnNpYmxpbmc7aWYoRSE9PW51bGwpe0UucmV0dXJuPXMucmV0dXJuLHo9RTticmVhayBlfXo9cy5yZXR1cm59fWlmKHJlPWEscW4oKSxadCYmdHlwZW9mIFp0Lm9uUG9zdENvbW1pdEZpYmVyUm9vdD09ImZ1bmN0aW9uIil0cnl7WnQub25Qb3N0Q29tbWl0RmliZXJSb290KHZzLGUpfWNhdGNoe31yPSEwfXJldHVybiByfWZpbmFsbHl7aWU9bixJdC50cmFuc2l0aW9uPXR9fXJldHVybiExfWZ1bmN0aW9uIFh5KGUsdCxuKXt0PXJhKG4sdCksdD15XyhlLHQsMSksZT1MbihlLHQsMSksdD1LZSgpLGUhPT1udWxsJiYoT2koZSwxLHQpLGl0KGUsdCkpfWZ1bmN0aW9uIFRlKGUsdCxuKXtpZihlLnRhZz09PTMpWHkoZSxlLG4pO2Vsc2UgZm9yKDt0IT09bnVsbDspe2lmKHQudGFnPT09Myl7WHkodCxlLG4pO2JyZWFrfWVsc2UgaWYodC50YWc9PT0xKXt2YXIgcj10LnN0YXRlTm9kZTtpZih0eXBlb2YgdC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj09ImZ1bmN0aW9uInx8dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihEbj09PW51bGx8fCFEbi5oYXMocikpKXtlPXJhKG4sZSksZT12Xyh0LGUsMSksdD1Mbih0LGUsMSksZT1LZSgpLHQhPT1udWxsJiYoT2kodCwxLGUpLGl0KHQsZSkpO2JyZWFrfX10PXQucmV0dXJufX1mdW5jdGlvbiBiTyhlLHQsbil7dmFyIHI9ZS5waW5nQ2FjaGU7ciE9PW51bGwmJnIuZGVsZXRlKHQpLHQ9S2UoKSxlLnBpbmdlZExhbmVzfD1lLnN1c3BlbmRlZExhbmVzJm4sT2U9PT1lJiYoUGUmbik9PT1uJiYoTmU9PT00fHxOZT09PTMmJihQZSYxMzAwMjM0MjQpPT09UGUmJjUwMD5BZSgpLXBoP3NyKGUsMCk6ZGh8PW4pLGl0KGUsdCl9ZnVuY3Rpb24gQl8oZSx0KXt0PT09MCYmKGUubW9kZSYxPyh0PVhpLFhpPDw9MSwhKFhpJjEzMDAyMzQyNCkmJihYaT00MTk0MzA0KSk6dD0xKTt2YXIgbj1LZSgpO2U9Z24oZSx0KSxlIT09bnVsbCYmKE9pKGUsdCxuKSxpdChlLG4pKX1mdW5jdGlvbiB5TyhlKXt2YXIgdD1lLm1lbW9pemVkU3RhdGUsbj0wO3QhPT1udWxsJiYobj10LnJldHJ5TGFuZSksQl8oZSxuKX1mdW5jdGlvbiB2TyhlLHQpe3ZhciBuPTA7c3dpdGNoKGUudGFnKXtjYXNlIDEzOnZhciByPWUuc3RhdGVOb2RlLGE9ZS5tZW1vaXplZFN0YXRlO2EhPT1udWxsJiYobj1hLnJldHJ5TGFuZSk7YnJlYWs7Y2FzZSAxOTpyPWUuc3RhdGVOb2RlO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoRCgzMTQpKX1yIT09bnVsbCYmci5kZWxldGUodCksQl8oZSxuKX12YXIgJF87JF89ZnVuY3Rpb24oZSx0LG4pe2lmKGUhPT1udWxsKWlmKGUubWVtb2l6ZWRQcm9wcyE9PXQucGVuZGluZ1Byb3BzfHxydC5jdXJyZW50KXR0PSEwO2Vsc2V7aWYoIShlLmxhbmVzJm4pJiYhKHQuZmxhZ3MmMTI4KSlyZXR1cm4gdHQ9ITEsb08oZSx0LG4pO3R0PSEhKGUuZmxhZ3MmMTMxMDcyKX1lbHNlIHR0PSExLGdlJiZ0LmZsYWdzJjEwNDg1NzYmJnFSKHQsWG8sdC5pbmRleCk7c3dpdGNoKHQubGFuZXM9MCx0LnRhZyl7Y2FzZSAyOnZhciByPXQudHlwZTtSbyhlLHQpLGU9dC5wZW5kaW5nUHJvcHM7dmFyIGE9SnIodCxxZS5jdXJyZW50KTtZcih0LG4pLGE9aWgobnVsbCx0LHIsZSxhLG4pO3ZhciBpPW9oKCk7cmV0dXJuIHQuZmxhZ3N8PTEsdHlwZW9mIGE9PSJvYmplY3QiJiZhIT09bnVsbCYmdHlwZW9mIGEucmVuZGVyPT0iZnVuY3Rpb24iJiZhLiQkdHlwZW9mPT09dm9pZCAwPyh0LnRhZz0xLHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCxhdChyKT8oaT0hMCxZbyh0KSk6aT0hMSx0Lm1lbW9pemVkU3RhdGU9YS5zdGF0ZSE9PW51bGwmJmEuc3RhdGUhPT12b2lkIDA/YS5zdGF0ZTpudWxsLGVoKHQpLGEudXBkYXRlcj14cyx0LnN0YXRlTm9kZT1hLGEuX3JlYWN0SW50ZXJuYWxzPXQsTG0odCxyLGUsbiksdD1QbShudWxsLHQsciwhMCxpLG4pKToodC50YWc9MCxnZSYmaSYmV2codCksV2UobnVsbCx0LGEsbiksdD10LmNoaWxkKSx0O2Nhc2UgMTY6cj10LmVsZW1lbnRUeXBlO2U6e3N3aXRjaChSbyhlLHQpLGU9dC5wZW5kaW5nUHJvcHMsYT1yLl9pbml0LHI9YShyLl9wYXlsb2FkKSx0LnR5cGU9cixhPXQudGFnPVNPKHIpLGU9QnQocixlKSxhKXtjYXNlIDA6dD1NbShudWxsLHQscixlLG4pO2JyZWFrIGU7Y2FzZSAxOnQ9JHkobnVsbCx0LHIsZSxuKTticmVhayBlO2Nhc2UgMTE6dD1VeShudWxsLHQscixlLG4pO2JyZWFrIGU7Y2FzZSAxNDp0PUJ5KG51bGwsdCxyLEJ0KHIudHlwZSxlKSxuKTticmVhayBlfXRocm93IEVycm9yKEQoMzA2LHIsIiIpKX1yZXR1cm4gdDtjYXNlIDA6cmV0dXJuIHI9dC50eXBlLGE9dC5wZW5kaW5nUHJvcHMsYT10LmVsZW1lbnRUeXBlPT09cj9hOkJ0KHIsYSksTW0oZSx0LHIsYSxuKTtjYXNlIDE6cmV0dXJuIHI9dC50eXBlLGE9dC5wZW5kaW5nUHJvcHMsYT10LmVsZW1lbnRUeXBlPT09cj9hOkJ0KHIsYSksJHkoZSx0LHIsYSxuKTtjYXNlIDM6ZTp7aWYoVF8odCksZT09PW51bGwpdGhyb3cgRXJyb3IoRCgzODcpKTtyPXQucGVuZGluZ1Byb3BzLGk9dC5tZW1vaXplZFN0YXRlLGE9aS5lbGVtZW50LFhSKGUsdCksSm8odCxyLG51bGwsbik7dmFyIG89dC5tZW1vaXplZFN0YXRlO2lmKHI9by5lbGVtZW50LGkuaXNEZWh5ZHJhdGVkKWlmKGk9e2VsZW1lbnQ6cixpc0RlaHlkcmF0ZWQ6ITEsY2FjaGU6by5jYWNoZSxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm8ucGVuZGluZ1N1c3BlbnNlQm91bmRhcmllcyx0cmFuc2l0aW9uczpvLnRyYW5zaXRpb25zfSx0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1pLHQubWVtb2l6ZWRTdGF0ZT1pLHQuZmxhZ3MmMjU2KXthPXJhKEVycm9yKEQoNDIzKSksdCksdD16eShlLHQscixuLGEpO2JyZWFrIGV9ZWxzZSBpZihyIT09YSl7YT1yYShFcnJvcihEKDQyNCkpLHQpLHQ9enkoZSx0LHIsbixhKTticmVhayBlfWVsc2UgZm9yKHB0PU9uKHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksbXQ9dCxnZT0hMCx6dD1udWxsLG49WVIodCxudWxsLHIsbiksdC5jaGlsZD1uO247KW4uZmxhZ3M9bi5mbGFncyYtM3w0MDk2LG49bi5zaWJsaW5nO2Vsc2V7aWYoZWEoKSxyPT09YSl7dD1obihlLHQsbik7YnJlYWsgZX1XZShlLHQscixuKX10PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSA1OnJldHVybiBaUih0KSxlPT09bnVsbCYmTm0odCkscj10LnR5cGUsYT10LnBlbmRpbmdQcm9wcyxpPWUhPT1udWxsP2UubWVtb2l6ZWRQcm9wczpudWxsLG89YS5jaGlsZHJlbixBbShyLGEpP289bnVsbDppIT09bnVsbCYmQW0ocixpKSYmKHQuZmxhZ3N8PTMyKSx3XyhlLHQpLFdlKGUsdCxvLG4pLHQuY2hpbGQ7Y2FzZSA2OnJldHVybiBlPT09bnVsbCYmTm0odCksbnVsbDtjYXNlIDEzOnJldHVybiBrXyhlLHQsbik7Y2FzZSA0OnJldHVybiB0aCh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHI9dC5wZW5kaW5nUHJvcHMsZT09PW51bGw/dC5jaGlsZD10YSh0LG51bGwscixuKTpXZShlLHQscixuKSx0LmNoaWxkO2Nhc2UgMTE6cmV0dXJuIHI9dC50eXBlLGE9dC5wZW5kaW5nUHJvcHMsYT10LmVsZW1lbnRUeXBlPT09cj9hOkJ0KHIsYSksVXkoZSx0LHIsYSxuKTtjYXNlIDc6cmV0dXJuIFdlKGUsdCx0LnBlbmRpbmdQcm9wcyxuKSx0LmNoaWxkO2Nhc2UgODpyZXR1cm4gV2UoZSx0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSAxMjpyZXR1cm4gV2UoZSx0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSAxMDplOntpZihyPXQudHlwZS5fY29udGV4dCxhPXQucGVuZGluZ1Byb3BzLGk9dC5tZW1vaXplZFByb3BzLG89YS52YWx1ZSxsZShabyxyLl9jdXJyZW50VmFsdWUpLHIuX2N1cnJlbnRWYWx1ZT1vLGkhPT1udWxsKWlmKHF0KGkudmFsdWUsbykpe2lmKGkuY2hpbGRyZW49PT1hLmNoaWxkcmVuJiYhcnQuY3VycmVudCl7dD1obihlLHQsbik7YnJlYWsgZX19ZWxzZSBmb3IoaT10LmNoaWxkLGkhPT1udWxsJiYoaS5yZXR1cm49dCk7aSE9PW51bGw7KXt2YXIgcz1pLmRlcGVuZGVuY2llcztpZihzIT09bnVsbCl7bz1pLmNoaWxkO2Zvcih2YXIgbD1zLmZpcnN0Q29udGV4dDtsIT09bnVsbDspe2lmKGwuY29udGV4dD09PXIpe2lmKGkudGFnPT09MSl7bD1jbigtMSxuJi1uKSxsLnRhZz0yO3ZhciB1PWkudXBkYXRlUXVldWU7aWYodSE9PW51bGwpe3U9dS5zaGFyZWQ7dmFyIGM9dS5wZW5kaW5nO2M9PT1udWxsP2wubmV4dD1sOihsLm5leHQ9Yy5uZXh0LGMubmV4dD1sKSx1LnBlbmRpbmc9bH19aS5sYW5lc3w9bixsPWkuYWx0ZXJuYXRlLGwhPT1udWxsJiYobC5sYW5lc3w9biksQ20oaS5yZXR1cm4sbix0KSxzLmxhbmVzfD1uO2JyZWFrfWw9bC5uZXh0fX1lbHNlIGlmKGkudGFnPT09MTApbz1pLnR5cGU9PT10LnR5cGU/bnVsbDppLmNoaWxkO2Vsc2UgaWYoaS50YWc9PT0xOCl7aWYobz1pLnJldHVybixvPT09bnVsbCl0aHJvdyBFcnJvcihEKDM0MSkpO28ubGFuZXN8PW4scz1vLmFsdGVybmF0ZSxzIT09bnVsbCYmKHMubGFuZXN8PW4pLENtKG8sbix0KSxvPWkuc2libGluZ31lbHNlIG89aS5jaGlsZDtpZihvIT09bnVsbClvLnJldHVybj1pO2Vsc2UgZm9yKG89aTtvIT09bnVsbDspe2lmKG89PT10KXtvPW51bGw7YnJlYWt9aWYoaT1vLnNpYmxpbmcsaSE9PW51bGwpe2kucmV0dXJuPW8ucmV0dXJuLG89aTticmVha31vPW8ucmV0dXJufWk9b31XZShlLHQsYS5jaGlsZHJlbixuKSx0PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSA5OnJldHVybiBhPXQudHlwZSxyPXQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFlyKHQsbiksYT1DdChhKSxyPXIoYSksdC5mbGFnc3w9MSxXZShlLHQscixuKSx0LmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIHI9dC50eXBlLGE9QnQocix0LnBlbmRpbmdQcm9wcyksYT1CdChyLnR5cGUsYSksQnkoZSx0LHIsYSxuKTtjYXNlIDE1OnJldHVybiBFXyhlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgMTc6cmV0dXJuIHI9dC50eXBlLGE9dC5wZW5kaW5nUHJvcHMsYT10LmVsZW1lbnRUeXBlPT09cj9hOkJ0KHIsYSksUm8oZSx0KSx0LnRhZz0xLGF0KHIpPyhlPSEwLFlvKHQpKTplPSExLFlyKHQsbiksYl8odCxyLGEpLExtKHQscixhLG4pLFBtKG51bGwsdCxyLCEwLGUsbik7Y2FzZSAxOTpyZXR1cm4gQV8oZSx0LG4pO2Nhc2UgMjI6cmV0dXJuIFNfKGUsdCxuKX10aHJvdyBFcnJvcihEKDE1Nix0LnRhZykpfTtmdW5jdGlvbiB6XyhlLHQpe3JldHVybiBtUihlLHQpfWZ1bmN0aW9uIEVPKGUsdCxuLHIpe3RoaXMudGFnPWUsdGhpcy5rZXk9bix0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsLHRoaXMuaW5kZXg9MCx0aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPXQsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPXIsdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIF90KGUsdCxuLHIpe3JldHVybiBuZXcgRU8oZSx0LG4scil9ZnVuY3Rpb24gaGgoZSl7cmV0dXJuIGU9ZS5wcm90b3R5cGUsISghZXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gU08oZSl7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpcmV0dXJuIGhoKGUpPzE6MDtpZihlIT1udWxsKXtpZihlPWUuJCR0eXBlb2YsZT09PU1nKXJldHVybiAxMTtpZihlPT09UGcpcmV0dXJuIDE0fXJldHVybiAyfWZ1bmN0aW9uIFBuKGUsdCl7dmFyIG49ZS5hbHRlcm5hdGU7cmV0dXJuIG49PT1udWxsPyhuPV90KGUudGFnLHQsZS5rZXksZS5tb2RlKSxuLmVsZW1lbnRUeXBlPWUuZWxlbWVudFR5cGUsbi50eXBlPWUudHlwZSxuLnN0YXRlTm9kZT1lLnN0YXRlTm9kZSxuLmFsdGVybmF0ZT1lLGUuYWx0ZXJuYXRlPW4pOihuLnBlbmRpbmdQcm9wcz10LG4udHlwZT1lLnR5cGUsbi5mbGFncz0wLG4uc3VidHJlZUZsYWdzPTAsbi5kZWxldGlvbnM9bnVsbCksbi5mbGFncz1lLmZsYWdzJjE0NjgwMDY0LG4uY2hpbGRMYW5lcz1lLmNoaWxkTGFuZXMsbi5sYW5lcz1lLmxhbmVzLG4uY2hpbGQ9ZS5jaGlsZCxuLm1lbW9pemVkUHJvcHM9ZS5tZW1vaXplZFByb3BzLG4ubWVtb2l6ZWRTdGF0ZT1lLm1lbW9pemVkU3RhdGUsbi51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQ9ZS5kZXBlbmRlbmNpZXMsbi5kZXBlbmRlbmNpZXM9dD09PW51bGw/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9LG4uc2libGluZz1lLnNpYmxpbmcsbi5pbmRleD1lLmluZGV4LG4ucmVmPWUucmVmLG59ZnVuY3Rpb24gTm8oZSx0LG4scixhLGkpe3ZhciBvPTI7aWYocj1lLHR5cGVvZiBlPT0iZnVuY3Rpb24iKWhoKGUpJiYobz0xKTtlbHNlIGlmKHR5cGVvZiBlPT0ic3RyaW5nIilvPTU7ZWxzZSBlOnN3aXRjaChlKXtjYXNlIFJyOnJldHVybiBscihuLmNoaWxkcmVuLGEsaSx0KTtjYXNlIERnOm89OCxhfD04O2JyZWFrO2Nhc2Ugcm06cmV0dXJuIGU9X3QoMTIsbix0LGF8MiksZS5lbGVtZW50VHlwZT1ybSxlLmxhbmVzPWksZTtjYXNlIGFtOnJldHVybiBlPV90KDEzLG4sdCxhKSxlLmVsZW1lbnRUeXBlPWFtLGUubGFuZXM9aSxlO2Nhc2UgaW06cmV0dXJuIGU9X3QoMTksbix0LGEpLGUuZWxlbWVudFR5cGU9aW0sZS5sYW5lcz1pLGU7Y2FzZSBaeDpyZXR1cm4gSXMobixhLGksdCk7ZGVmYXVsdDppZih0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIEt4Om89MTA7YnJlYWsgZTtjYXNlIFh4Om89OTticmVhayBlO2Nhc2UgTWc6bz0xMTticmVhayBlO2Nhc2UgUGc6bz0xNDticmVhayBlO2Nhc2Ugd246bz0xNixyPW51bGw7YnJlYWsgZX10aHJvdyBFcnJvcihEKDEzMCxlPT1udWxsP2U6dHlwZW9mIGUsIiIpKX1yZXR1cm4gdD1fdChvLG4sdCxhKSx0LmVsZW1lbnRUeXBlPWUsdC50eXBlPXIsdC5sYW5lcz1pLHR9ZnVuY3Rpb24gbHIoZSx0LG4scil7cmV0dXJuIGU9X3QoNyxlLHIsdCksZS5sYW5lcz1uLGV9ZnVuY3Rpb24gSXMoZSx0LG4scil7cmV0dXJuIGU9X3QoMjIsZSxyLHQpLGUuZWxlbWVudFR5cGU9WngsZS5sYW5lcz1uLGUuc3RhdGVOb2RlPXtpc0hpZGRlbjohMX0sZX1mdW5jdGlvbiB3bChlLHQsbil7cmV0dXJuIGU9X3QoNixlLG51bGwsdCksZS5sYW5lcz1uLGV9ZnVuY3Rpb24gVGwoZSx0LG4pe3JldHVybiB0PV90KDQsZS5jaGlsZHJlbiE9PW51bGw/ZS5jaGlsZHJlbjpbXSxlLmtleSx0KSx0LmxhbmVzPW4sdC5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86ZS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmUuaW1wbGVtZW50YXRpb259LHR9ZnVuY3Rpb24gd08oZSx0LG4scixhKXt0aGlzLnRhZz10LHRoaXMuY29udGFpbmVySW5mbz1lLHRoaXMuZmluaXNoZWRXb3JrPXRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT0wLHRoaXMuZXZlbnRUaW1lcz1ybCgwKSx0aGlzLmV4cGlyYXRpb25UaW1lcz1ybCgtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wLHRoaXMuZW50YW5nbGVtZW50cz1ybCgwKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9cix0aGlzLm9uUmVjb3ZlcmFibGVFcnJvcj1hLHRoaXMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1udWxsfWZ1bmN0aW9uIGJoKGUsdCxuLHIsYSxpLG8scyxsKXtyZXR1cm4gZT1uZXcgd08oZSx0LG4scyxsKSx0PT09MT8odD0xLGk9PT0hMCYmKHR8PTgpKTp0PTAsaT1fdCgzLG51bGwsbnVsbCx0KSxlLmN1cnJlbnQ9aSxpLnN0YXRlTm9kZT1lLGkubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDpyLGlzRGVoeWRyYXRlZDpuLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9LGVoKGkpLGV9ZnVuY3Rpb24gVE8oZSx0LG4pe3ZhciByPTM8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzNdIT09dm9pZCAwP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjp4cixrZXk6cj09bnVsbD9udWxsOiIiK3IsY2hpbGRyZW46ZSxjb250YWluZXJJbmZvOnQsaW1wbGVtZW50YXRpb246bn19ZnVuY3Rpb24gal8oZSl7aWYoIWUpcmV0dXJuIEJuO2U9ZS5fcmVhY3RJbnRlcm5hbHM7ZTp7aWYoaHIoZSkhPT1lfHxlLnRhZyE9PTEpdGhyb3cgRXJyb3IoRCgxNzApKTt2YXIgdD1lO2Rve3N3aXRjaCh0LnRhZyl7Y2FzZSAzOnQ9dC5zdGF0ZU5vZGUuY29udGV4dDticmVhayBlO2Nhc2UgMTppZihhdCh0LnR5cGUpKXt0PXQuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGV9fXQ9dC5yZXR1cm59d2hpbGUodCE9PW51bGwpO3Rocm93IEVycm9yKEQoMTcxKSl9aWYoZS50YWc9PT0xKXt2YXIgbj1lLnR5cGU7aWYoYXQobikpcmV0dXJuIGpSKGUsbix0KX1yZXR1cm4gdH1mdW5jdGlvbiBHXyhlLHQsbixyLGEsaSxvLHMsbCl7cmV0dXJuIGU9YmgobixyLCEwLGUsYSxpLG8scyxsKSxlLmNvbnRleHQ9al8obnVsbCksbj1lLmN1cnJlbnQscj1LZSgpLGE9TW4obiksaT1jbihyLGEpLGkuY2FsbGJhY2s9dD8/bnVsbCxMbihuLGksYSksZS5jdXJyZW50LmxhbmVzPWEsT2koZSxhLHIpLGl0KGUsciksZX1mdW5jdGlvbiBOcyhlLHQsbixyKXt2YXIgYT10LmN1cnJlbnQsaT1LZSgpLG89TW4oYSk7cmV0dXJuIG49al8obiksdC5jb250ZXh0PT09bnVsbD90LmNvbnRleHQ9bjp0LnBlbmRpbmdDb250ZXh0PW4sdD1jbihpLG8pLHQucGF5bG9hZD17ZWxlbWVudDplfSxyPXI9PT12b2lkIDA/bnVsbDpyLHIhPT1udWxsJiYodC5jYWxsYmFjaz1yKSxlPUxuKGEsdCxvKSxlIT09bnVsbCYmKEd0KGUsYSxvLGkpLGtvKGUsYSxvKSksb31mdW5jdGlvbiBzcyhlKXtpZihlPWUuY3VycmVudCwhZS5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goZS5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gZS5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gZS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIFp5KGUsdCl7aWYoZT1lLm1lbW9pemVkU3RhdGUsZSE9PW51bGwmJmUuZGVoeWRyYXRlZCE9PW51bGwpe3ZhciBuPWUucmV0cnlMYW5lO2UucmV0cnlMYW5lPW4hPT0wJiZuPHQ/bjp0fX1mdW5jdGlvbiB5aChlLHQpe1p5KGUsdCksKGU9ZS5hbHRlcm5hdGUpJiZaeShlLHQpfWZ1bmN0aW9uIGtPKCl7cmV0dXJuIG51bGx9dmFyIHFfPXR5cGVvZiByZXBvcnRFcnJvcj09ImZ1bmN0aW9uIj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfTtmdW5jdGlvbiB2aChlKXt0aGlzLl9pbnRlcm5hbFJvb3Q9ZX1Dcy5wcm90b3R5cGUucmVuZGVyPXZoLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faW50ZXJuYWxSb290O2lmKHQ9PT1udWxsKXRocm93IEVycm9yKEQoNDA5KSk7TnMoZSx0LG51bGwsbnVsbCl9O0NzLnByb3RvdHlwZS51bm1vdW50PXZoLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faW50ZXJuYWxSb290O2lmKGUhPT1udWxsKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgdD1lLmNvbnRhaW5lckluZm87bXIoZnVuY3Rpb24oKXtOcyhudWxsLGUsbnVsbCxudWxsKX0pLHRbbW5dPW51bGx9fTtmdW5jdGlvbiBDcyhlKXt0aGlzLl9pbnRlcm5hbFJvb3Q9ZX1Dcy5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb249ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9U1IoKTtlPXtibG9ja2VkT246bnVsbCx0YXJnZXQ6ZSxwcmlvcml0eTp0fTtmb3IodmFyIG49MDtuPGtuLmxlbmd0aCYmdCE9PTAmJnQ8a25bbl0ucHJpb3JpdHk7bisrKTtrbi5zcGxpY2UobiwwLGUpLG49PT0wJiZUUihlKX19O2Z1bmN0aW9uIEVoKGUpe3JldHVybiEoIWV8fGUubm9kZVR5cGUhPT0xJiZlLm5vZGVUeXBlIT09OSYmZS5ub2RlVHlwZSE9PTExKX1mdW5jdGlvbiBPcyhlKXtyZXR1cm4hKCFlfHxlLm5vZGVUeXBlIT09MSYmZS5ub2RlVHlwZSE9PTkmJmUubm9kZVR5cGUhPT0xMSYmKGUubm9kZVR5cGUhPT04fHxlLm5vZGVWYWx1ZSE9PSIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgIikpfWZ1bmN0aW9uIFF5KCl7fWZ1bmN0aW9uIEFPKGUsdCxuLHIsYSl7aWYoYSl7aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpe3ZhciBpPXI7cj1mdW5jdGlvbigpe3ZhciB1PXNzKG8pO2kuY2FsbCh1KX19dmFyIG89R18odCxyLGUsMCxudWxsLCExLCExLCIiLFF5KTtyZXR1cm4gZS5fcmVhY3RSb290Q29udGFpbmVyPW8sZVttbl09by5jdXJyZW50LGZpKGUubm9kZVR5cGU9PT04P2UucGFyZW50Tm9kZTplKSxtcigpLG99Zm9yKDthPWUubGFzdENoaWxkOyllLnJlbW92ZUNoaWxkKGEpO2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXt2YXIgcz1yO3I9ZnVuY3Rpb24oKXt2YXIgdT1zcyhsKTtzLmNhbGwodSl9fXZhciBsPWJoKGUsMCwhMSxudWxsLG51bGwsITEsITEsIiIsUXkpO3JldHVybiBlLl9yZWFjdFJvb3RDb250YWluZXI9bCxlW21uXT1sLmN1cnJlbnQsZmkoZS5ub2RlVHlwZT09PTg/ZS5wYXJlbnROb2RlOmUpLG1yKGZ1bmN0aW9uKCl7TnModCxsLG4scil9KSxsfWZ1bmN0aW9uIExzKGUsdCxuLHIsYSl7dmFyIGk9bi5fcmVhY3RSb290Q29udGFpbmVyO2lmKGkpe3ZhciBvPWk7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpe3ZhciBzPWE7YT1mdW5jdGlvbigpe3ZhciBsPXNzKG8pO3MuY2FsbChsKX19TnModCxvLGUsYSl9ZWxzZSBvPUFPKG4sdCxlLGEscik7cmV0dXJuIHNzKG8pfXZSPWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzOnZhciB0PWUuc3RhdGVOb2RlO2lmKHQuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7dmFyIG49UGEodC5wZW5kaW5nTGFuZXMpO24hPT0wJiYoQmcodCxufDEpLGl0KHQsQWUoKSksIShyZSY2KSYmKGFhPUFlKCkrNTAwLHFuKCkpKX1icmVhaztjYXNlIDEzOm1yKGZ1bmN0aW9uKCl7dmFyIHI9Z24oZSwxKTtpZihyIT09bnVsbCl7dmFyIGE9S2UoKTtHdChyLGUsMSxhKX19KSx5aChlLDEpfX07JGc9ZnVuY3Rpb24oZSl7aWYoZS50YWc9PT0xMyl7dmFyIHQ9Z24oZSwxMzQyMTc3MjgpO2lmKHQhPT1udWxsKXt2YXIgbj1LZSgpO0d0KHQsZSwxMzQyMTc3Mjgsbil9eWgoZSwxMzQyMTc3MjgpfX07RVI9ZnVuY3Rpb24oZSl7aWYoZS50YWc9PT0xMyl7dmFyIHQ9TW4oZSksbj1nbihlLHQpO2lmKG4hPT1udWxsKXt2YXIgcj1LZSgpO0d0KG4sZSx0LHIpfXloKGUsdCl9fTtTUj1mdW5jdGlvbigpe3JldHVybiBpZX07d1I9ZnVuY3Rpb24oZSx0KXt2YXIgbj1pZTt0cnl7cmV0dXJuIGllPWUsdCgpfWZpbmFsbHl7aWU9bn19O2dtPWZ1bmN0aW9uKGUsdCxuKXtzd2l0Y2godCl7Y2FzZSJpbnB1dCI6aWYobG0oZSxuKSx0PW4ubmFtZSxuLnR5cGU9PT0icmFkaW8iJiZ0IT1udWxsKXtmb3Iobj1lO24ucGFyZW50Tm9kZTspbj1uLnBhcmVudE5vZGU7Zm9yKG49bi5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFtuYW1lPSIrSlNPTi5zdHJpbmdpZnkoIiIrdCkrJ11bdHlwZT0icmFkaW8iXScpLHQ9MDt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtpZihyIT09ZSYmci5mb3JtPT09ZS5mb3JtKXt2YXIgYT1UcyhyKTtpZighYSl0aHJvdyBFcnJvcihEKDkwKSk7SngociksbG0ocixhKX19fWJyZWFrO2Nhc2UidGV4dGFyZWEiOnRSKGUsbik7YnJlYWs7Y2FzZSJzZWxlY3QiOnQ9bi52YWx1ZSx0IT1udWxsJiZxcihlLCEhbi5tdWx0aXBsZSx0LCExKX19O2xSPWZoO3VSPW1yO3ZhciB4Tz17dXNpbmdDbGllbnRFbnRyeVBvaW50OiExLEV2ZW50czpbRGksQ3IsVHMsb1Isc1IsZmhdfSxSYT17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6bnIsYnVuZGxlVHlwZTowLHZlcnNpb246IjE4LjMuMSIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIn0sUk89e2J1bmRsZVR5cGU6UmEuYnVuZGxlVHlwZSx2ZXJzaW9uOlJhLnZlcnNpb24scmVuZGVyZXJQYWNrYWdlTmFtZTpSYS5yZW5kZXJlclBhY2thZ2VOYW1lLHJlbmRlcmVyQ29uZmlnOlJhLnJlbmRlcmVyQ29uZmlnLG92ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6bnVsbCxzZXRFcnJvckhhbmRsZXI6bnVsbCxzZXRTdXNwZW5zZUhhbmRsZXI6bnVsbCxzY2hlZHVsZVVwZGF0ZTpudWxsLGN1cnJlbnREaXNwYXRjaGVyUmVmOnluLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9cFIoZSksZT09PW51bGw/bnVsbDplLnN0YXRlTm9kZX0sZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6UmEuZmluZEZpYmVyQnlIb3N0SW5zdGFuY2V8fGtPLGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGwscmVjb25jaWxlclZlcnNpb246IjE4LjMuMS1uZXh0LWYxMzM4ZjgwODAtMjAyNDA0MjYifTtpZih0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPCJ1Iil7dmFyIHNvPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighc28uaXNEaXNhYmxlZCYmc28uc3VwcG9ydHNGaWJlcil0cnl7dnM9c28uaW5qZWN0KFJPKSxadD1zb31jYXRjaHt9fXl0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXhPO3l0LmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihlLHQpe3ZhciBuPTI8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCFFaCh0KSl0aHJvdyBFcnJvcihEKDIwMCkpO3JldHVybiBUTyhlLHQsbnVsbCxuKX07eXQuY3JlYXRlUm9vdD1mdW5jdGlvbihlLHQpe2lmKCFFaChlKSl0aHJvdyBFcnJvcihEKDI5OSkpO3ZhciBuPSExLHI9IiIsYT1xXztyZXR1cm4gdCE9bnVsbCYmKHQudW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYobj0hMCksdC5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYocj10LmlkZW50aWZpZXJQcmVmaXgpLHQub25SZWNvdmVyYWJsZUVycm9yIT09dm9pZCAwJiYoYT10Lm9uUmVjb3ZlcmFibGVFcnJvcikpLHQ9YmgoZSwxLCExLG51bGwsbnVsbCxuLCExLHIsYSksZVttbl09dC5jdXJyZW50LGZpKGUubm9kZVR5cGU9PT04P2UucGFyZW50Tm9kZTplKSxuZXcgdmgodCl9O3l0LmZpbmRET01Ob2RlPWZ1bmN0aW9uKGUpe2lmKGU9PW51bGwpcmV0dXJuIG51bGw7aWYoZS5ub2RlVHlwZT09PTEpcmV0dXJuIGU7dmFyIHQ9ZS5fcmVhY3RJbnRlcm5hbHM7aWYodD09PXZvaWQgMCl0aHJvdyB0eXBlb2YgZS5yZW5kZXI9PSJmdW5jdGlvbiI/RXJyb3IoRCgxODgpKTooZT1PYmplY3Qua2V5cyhlKS5qb2luKCIsIiksRXJyb3IoRCgyNjgsZSkpKTtyZXR1cm4gZT1wUih0KSxlPWU9PT1udWxsP251bGw6ZS5zdGF0ZU5vZGUsZX07eXQuZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3JldHVybiBtcihlKX07eXQuaHlkcmF0ZT1mdW5jdGlvbihlLHQsbil7aWYoIU9zKHQpKXRocm93IEVycm9yKEQoMjAwKSk7cmV0dXJuIExzKG51bGwsZSx0LCEwLG4pfTt5dC5oeWRyYXRlUm9vdD1mdW5jdGlvbihlLHQsbil7aWYoIUVoKGUpKXRocm93IEVycm9yKEQoNDA1KSk7dmFyIHI9biE9bnVsbCYmbi5oeWRyYXRlZFNvdXJjZXN8fG51bGwsYT0hMSxpPSIiLG89cV87aWYobiE9bnVsbCYmKG4udW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYoYT0hMCksbi5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYoaT1uLmlkZW50aWZpZXJQcmVmaXgpLG4ub25SZWNvdmVyYWJsZUVycm9yIT09dm9pZCAwJiYobz1uLm9uUmVjb3ZlcmFibGVFcnJvcikpLHQ9R18odCxudWxsLGUsMSxuPz9udWxsLGEsITEsaSxvKSxlW21uXT10LmN1cnJlbnQsZmkoZSkscilmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKW49cltlXSxhPW4uX2dldFZlcnNpb24sYT1hKG4uX3NvdXJjZSksdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPT1udWxsP3QubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bbixhXTp0Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChuLGEpO3JldHVybiBuZXcgQ3ModCl9O3l0LnJlbmRlcj1mdW5jdGlvbihlLHQsbil7aWYoIU9zKHQpKXRocm93IEVycm9yKEQoMjAwKSk7cmV0dXJuIExzKG51bGwsZSx0LCExLG4pfTt5dC51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKGUpe2lmKCFPcyhlKSl0aHJvdyBFcnJvcihEKDQwKSk7cmV0dXJuIGUuX3JlYWN0Um9vdENvbnRhaW5lcj8obXIoZnVuY3Rpb24oKXtMcyhudWxsLG51bGwsZSwhMSxmdW5jdGlvbigpe2UuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLGVbbW5dPW51bGx9KX0pLCEwKTohMX07eXQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9Zmg7eXQudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oZSx0LG4scil7aWYoIU9zKG4pKXRocm93IEVycm9yKEQoMjAwKSk7aWYoZT09bnVsbHx8ZS5fcmVhY3RJbnRlcm5hbHM9PT12b2lkIDApdGhyb3cgRXJyb3IoRCgzOCkpO3JldHVybiBMcyhlLHQsbiwhMSxyKX07eXQudmVyc2lvbj0iMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNiI7ZnVuY3Rpb24gVl8oKXtpZighKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18+InUifHx0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFIT0iZnVuY3Rpb24iKSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKFZfKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1WXygpLFZ4LmV4cG9ydHM9eXQ7dmFyIF9PPVZ4LmV4cG9ydHMsSnk9X087dG0uY3JlYXRlUm9vdD1KeS5jcmVhdGVSb290LHRtLmh5ZHJhdGVSb290PUp5Lmh5ZHJhdGVSb290O2NvbnN0IFNoPVAuY3JlYXRlQ29udGV4dCh7fSk7ZnVuY3Rpb24gd2goZSl7Y29uc3QgdD1QLnVzZVJlZihudWxsKTtyZXR1cm4gdC5jdXJyZW50PT09bnVsbCYmKHQuY3VycmVudD1lKCkpLHQuY3VycmVudH1jb25zdCBEcz1QLmNyZWF0ZUNvbnRleHQobnVsbCksVGg9UC5jcmVhdGVDb250ZXh0KHt0cmFuc2Zvcm1QYWdlUG9pbnQ6ZT0+ZSxpc1N0YXRpYzohMSxyZWR1Y2VkTW90aW9uOiJuZXZlciJ9KTtjbGFzcyBJTyBleHRlbmRzIFAuQ29tcG9uZW50e2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKHQpe2NvbnN0IG49dGhpcy5wcm9wcy5jaGlsZFJlZi5jdXJyZW50O2lmKG4mJnQuaXNQcmVzZW50JiYhdGhpcy5wcm9wcy5pc1ByZXNlbnQpe2NvbnN0IHI9dGhpcy5wcm9wcy5zaXplUmVmLmN1cnJlbnQ7ci5oZWlnaHQ9bi5vZmZzZXRIZWlnaHR8fDAsci53aWR0aD1uLm9mZnNldFdpZHRofHwwLHIudG9wPW4ub2Zmc2V0VG9wLHIubGVmdD1uLm9mZnNldExlZnR9cmV0dXJuIG51bGx9Y29tcG9uZW50RGlkVXBkYXRlKCl7fXJlbmRlcigpe3JldHVybiB0aGlzLnByb3BzLmNoaWxkcmVufX1mdW5jdGlvbiBOTyh7Y2hpbGRyZW46ZSxpc1ByZXNlbnQ6dH0pe2NvbnN0IG49UC51c2VJZCgpLHI9UC51c2VSZWYobnVsbCksYT1QLnVzZVJlZih7d2lkdGg6MCxoZWlnaHQ6MCx0b3A6MCxsZWZ0OjB9KSx7bm9uY2U6aX09UC51c2VDb250ZXh0KFRoKTtyZXR1cm4gUC51c2VJbnNlcnRpb25FZmZlY3QoKCk9Pntjb25zdHt3aWR0aDpvLGhlaWdodDpzLHRvcDpsLGxlZnQ6dX09YS5jdXJyZW50O2lmKHR8fCFyLmN1cnJlbnR8fCFvfHwhcylyZXR1cm47ci5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQ9bjtjb25zdCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIGkmJihjLm5vbmNlPWkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYyksYy5zaGVldCYmYy5zaGVldC5pbnNlcnRSdWxlKGAKICAgICAgICAgIFtkYXRhLW1vdGlvbi1wb3AtaWQ9IiR7bn0iXSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgICAgICAgICB3aWR0aDogJHtvfXB4ICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIGhlaWdodDogJHtzfXB4ICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIHRvcDogJHtsfXB4ICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIGxlZnQ6ICR7dX1weCAhaW1wb3J0YW50OwogICAgICAgICAgfQogICAgICAgIGApLCgpPT57ZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChjKX19LFt0XSksay5qc3goSU8se2lzUHJlc2VudDp0LGNoaWxkUmVmOnIsc2l6ZVJlZjphLGNoaWxkcmVuOlAuY2xvbmVFbGVtZW50KGUse3JlZjpyfSl9KX1jb25zdCBDTz0oe2NoaWxkcmVuOmUsaW5pdGlhbDp0LGlzUHJlc2VudDpuLG9uRXhpdENvbXBsZXRlOnIsY3VzdG9tOmEscHJlc2VuY2VBZmZlY3RzTGF5b3V0OmksbW9kZTpvfSk9Pntjb25zdCBzPXdoKE9PKSxsPVAudXNlSWQoKSx1PVAudXNlQ2FsbGJhY2soZD0+e3Muc2V0KGQsITApO2Zvcihjb25zdCBwIG9mIHMudmFsdWVzKCkpaWYoIXApcmV0dXJuO3ImJnIoKX0sW3Mscl0pLGM9UC51c2VNZW1vKCgpPT4oe2lkOmwsaW5pdGlhbDp0LGlzUHJlc2VudDpuLGN1c3RvbTphLG9uRXhpdENvbXBsZXRlOnUscmVnaXN0ZXI6ZD0+KHMuc2V0KGQsITEpLCgpPT5zLmRlbGV0ZShkKSl9KSxpP1tNYXRoLnJhbmRvbSgpLHVdOltuLHVdKTtyZXR1cm4gUC51c2VNZW1vKCgpPT57cy5mb3JFYWNoKChkLHApPT5zLnNldChwLCExKSl9LFtuXSksUC51c2VFZmZlY3QoKCk9PnshbiYmIXMuc2l6ZSYmciYmcigpfSxbbl0pLG89PT0icG9wTGF5b3V0IiYmKGU9ay5qc3goTk8se2lzUHJlc2VudDpuLGNoaWxkcmVuOmV9KSksay5qc3goRHMuUHJvdmlkZXIse3ZhbHVlOmMsY2hpbGRyZW46ZX0pfTtmdW5jdGlvbiBPTygpe3JldHVybiBuZXcgTWFwfWZ1bmN0aW9uIEhfKGU9ITApe2NvbnN0IHQ9UC51c2VDb250ZXh0KERzKTtpZih0PT09bnVsbClyZXR1cm5bITAsbnVsbF07Y29uc3R7aXNQcmVzZW50Om4sb25FeGl0Q29tcGxldGU6cixyZWdpc3RlcjphfT10LGk9UC51c2VJZCgpO1AudXNlRWZmZWN0KCgpPT57ZSYmYShpKX0sW2VdKTtjb25zdCBvPVAudXNlQ2FsbGJhY2soKCk9PmUmJnImJnIoaSksW2kscixlXSk7cmV0dXJuIW4mJnI/WyExLG9dOlshMF19Y29uc3QgbG89ZT0+ZS5rZXl8fCIiO2Z1bmN0aW9uIGV2KGUpe2NvbnN0IHQ9W107cmV0dXJuIFAuQ2hpbGRyZW4uZm9yRWFjaChlLG49PntQLmlzVmFsaWRFbGVtZW50KG4pJiZ0LnB1c2gobil9KSx0fWNvbnN0IGtoPXR5cGVvZiB3aW5kb3c8InUiLFdfPWtoP1AudXNlTGF5b3V0RWZmZWN0OlAudXNlRWZmZWN0LGxzPSh7Y2hpbGRyZW46ZSxjdXN0b206dCxpbml0aWFsOm49ITAsb25FeGl0Q29tcGxldGU6cixwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6YT0hMCxtb2RlOmk9InN5bmMiLHByb3BhZ2F0ZTpvPSExfSk9Pntjb25zdFtzLGxdPUhfKG8pLHU9UC51c2VNZW1vKCgpPT5ldihlKSxbZV0pLGM9byYmIXM/W106dS5tYXAobG8pLGQ9UC51c2VSZWYoITApLHA9UC51c2VSZWYodSksZj13aCgoKT0+bmV3IE1hcCksW3ksYl09UC51c2VTdGF0ZSh1KSxbQSxoXT1QLnVzZVN0YXRlKHUpO1dfKCgpPT57ZC5jdXJyZW50PSExLHAuY3VycmVudD11O2ZvcihsZXQgRT0wO0U8QS5sZW5ndGg7RSsrKXtjb25zdCBUPWxvKEFbRV0pO2MuaW5jbHVkZXMoVCk/Zi5kZWxldGUoVCk6Zi5nZXQoVCkhPT0hMCYmZi5zZXQoVCwhMSl9fSxbQSxjLmxlbmd0aCxjLmpvaW4oIi0iKV0pO2NvbnN0IG09W107aWYodSE9PXkpe2xldCBFPVsuLi51XTtmb3IobGV0IFQ9MDtUPEEubGVuZ3RoO1QrKyl7Y29uc3Qgdj1BW1RdLFI9bG8odik7Yy5pbmNsdWRlcyhSKXx8KEUuc3BsaWNlKFQsMCx2KSxtLnB1c2godikpfWk9PT0id2FpdCImJm0ubGVuZ3RoJiYoRT1tKSxoKGV2KEUpKSxiKHUpO3JldHVybn1jb25zdHtmb3JjZVJlbmRlcjpnfT1QLnVzZUNvbnRleHQoU2gpO3JldHVybiBrLmpzeChrLkZyYWdtZW50LHtjaGlsZHJlbjpBLm1hcChFPT57Y29uc3QgVD1sbyhFKSx2PW8mJiFzPyExOnU9PT1BfHxjLmluY2x1ZGVzKFQpLFI9KCk9PntpZihmLmhhcyhUKSlmLnNldChULCEwKTtlbHNlIHJldHVybjtsZXQgXz0hMDtmLmZvckVhY2goST0+e0l8fChfPSExKX0pLF8mJihnPT1udWxsfHxnKCksaChwLmN1cnJlbnQpLG8mJihsPT1udWxsfHxsKCkpLHImJnIoKSl9O3JldHVybiBrLmpzeChDTyx7aXNQcmVzZW50OnYsaW5pdGlhbDohZC5jdXJyZW50fHxuP3ZvaWQgMDohMSxjdXN0b206dj92b2lkIDA6dCxwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6YSxtb2RlOmksb25FeGl0Q29tcGxldGU6dj92b2lkIDA6UixjaGlsZHJlbjpFfSxUKX0pfSl9LGd0PWU9PmU7bGV0IFlfPWd0O2Z1bmN0aW9uIEFoKGUpe2xldCB0O3JldHVybigpPT4odD09PXZvaWQgMCYmKHQ9ZSgpKSx0KX1jb25zdCBpYT0oZSx0LG4pPT57Y29uc3Qgcj10LWU7cmV0dXJuIHI9PT0wPzE6KG4tZSkvcn0sZG49ZT0+ZSoxZTMscG49ZT0+ZS8xZTMsTE89e3VzZU1hbnVhbFRpbWluZzohMX07ZnVuY3Rpb24gRE8oZSl7bGV0IHQ9bmV3IFNldCxuPW5ldyBTZXQscj0hMSxhPSExO2NvbnN0IGk9bmV3IFdlYWtTZXQ7bGV0IG89e2RlbHRhOjAsdGltZXN0YW1wOjAsaXNQcm9jZXNzaW5nOiExfTtmdW5jdGlvbiBzKHUpe2kuaGFzKHUpJiYobC5zY2hlZHVsZSh1KSxlKCkpLHUobyl9Y29uc3QgbD17c2NoZWR1bGU6KHUsYz0hMSxkPSExKT0+e2NvbnN0IGY9ZCYmcj90Om47cmV0dXJuIGMmJmkuYWRkKHUpLGYuaGFzKHUpfHxmLmFkZCh1KSx1fSxjYW5jZWw6dT0+e24uZGVsZXRlKHUpLGkuZGVsZXRlKHUpfSxwcm9jZXNzOnU9PntpZihvPXUscil7YT0hMDtyZXR1cm59cj0hMCxbdCxuXT1bbix0XSx0LmZvckVhY2gocyksdC5jbGVhcigpLHI9ITEsYSYmKGE9ITEsbC5wcm9jZXNzKHUpKX19O3JldHVybiBsfWNvbnN0IHVvPVsicmVhZCIsInJlc29sdmVLZXlmcmFtZXMiLCJ1cGRhdGUiLCJwcmVSZW5kZXIiLCJyZW5kZXIiLCJwb3N0UmVuZGVyIl0sTU89NDA7ZnVuY3Rpb24gS18oZSx0KXtsZXQgbj0hMSxyPSEwO2NvbnN0IGE9e2RlbHRhOjAsdGltZXN0YW1wOjAsaXNQcm9jZXNzaW5nOiExfSxpPSgpPT5uPSEwLG89dW8ucmVkdWNlKChoLG0pPT4oaFttXT1ETyhpKSxoKSx7fSkse3JlYWQ6cyxyZXNvbHZlS2V5ZnJhbWVzOmwsdXBkYXRlOnUscHJlUmVuZGVyOmMscmVuZGVyOmQscG9zdFJlbmRlcjpwfT1vLGY9KCk9Pntjb25zdCBoPXBlcmZvcm1hbmNlLm5vdygpO249ITEsYS5kZWx0YT1yPzFlMy82MDpNYXRoLm1heChNYXRoLm1pbihoLWEudGltZXN0YW1wLE1PKSwxKSxhLnRpbWVzdGFtcD1oLGEuaXNQcm9jZXNzaW5nPSEwLHMucHJvY2VzcyhhKSxsLnByb2Nlc3MoYSksdS5wcm9jZXNzKGEpLGMucHJvY2VzcyhhKSxkLnByb2Nlc3MoYSkscC5wcm9jZXNzKGEpLGEuaXNQcm9jZXNzaW5nPSExLG4mJnQmJihyPSExLGUoZikpfSx5PSgpPT57bj0hMCxyPSEwLGEuaXNQcm9jZXNzaW5nfHxlKGYpfTtyZXR1cm57c2NoZWR1bGU6dW8ucmVkdWNlKChoLG0pPT57Y29uc3QgZz1vW21dO3JldHVybiBoW21dPShFLFQ9ITEsdj0hMSk9PihufHx5KCksZy5zY2hlZHVsZShFLFQsdikpLGh9LHt9KSxjYW5jZWw6aD0+e2ZvcihsZXQgbT0wO208dW8ubGVuZ3RoO20rKylvW3VvW21dXS5jYW5jZWwoaCl9LHN0YXRlOmEsc3RlcHM6b319Y29uc3R7c2NoZWR1bGU6bWUsY2FuY2VsOiRuLHN0YXRlOkRlLHN0ZXBzOmtsfT1LXyh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPCJ1Ij9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6Z3QsITApLFhfPVAuY3JlYXRlQ29udGV4dCh7c3RyaWN0OiExfSksdHY9e2FuaW1hdGlvbjpbImFuaW1hdGUiLCJ2YXJpYW50cyIsIndoaWxlSG92ZXIiLCJ3aGlsZVRhcCIsImV4aXQiLCJ3aGlsZUluVmlldyIsIndoaWxlRm9jdXMiLCJ3aGlsZURyYWciXSxleGl0OlsiZXhpdCJdLGRyYWc6WyJkcmFnIiwiZHJhZ0NvbnRyb2xzIl0sZm9jdXM6WyJ3aGlsZUZvY3VzIl0saG92ZXI6WyJ3aGlsZUhvdmVyIiwib25Ib3ZlclN0YXJ0Iiwib25Ib3ZlckVuZCJdLHRhcDpbIndoaWxlVGFwIiwib25UYXAiLCJvblRhcFN0YXJ0Iiwib25UYXBDYW5jZWwiXSxwYW46WyJvblBhbiIsIm9uUGFuU3RhcnQiLCJvblBhblNlc3Npb25TdGFydCIsIm9uUGFuRW5kIl0saW5WaWV3Olsid2hpbGVJblZpZXciLCJvblZpZXdwb3J0RW50ZXIiLCJvblZpZXdwb3J0TGVhdmUiXSxsYXlvdXQ6WyJsYXlvdXQiLCJsYXlvdXRJZCJdfSxvYT17fTtmb3IoY29uc3QgZSBpbiB0dilvYVtlXT17aXNFbmFibGVkOnQ9PnR2W2VdLnNvbWUobj0+ISF0W25dKX07ZnVuY3Rpb24gUE8oZSl7Zm9yKGNvbnN0IHQgaW4gZSlvYVt0XT17Li4ub2FbdF0sLi4uZVt0XX19Y29uc3QgRk89bmV3IFNldChbImFuaW1hdGUiLCJleGl0IiwidmFyaWFudHMiLCJpbml0aWFsIiwic3R5bGUiLCJ2YWx1ZXMiLCJ2YXJpYW50cyIsInRyYW5zaXRpb24iLCJ0cmFuc2Zvcm1UZW1wbGF0ZSIsImN1c3RvbSIsImluaGVyaXQiLCJvbkJlZm9yZUxheW91dE1lYXN1cmUiLCJvbkFuaW1hdGlvblN0YXJ0Iiwib25BbmltYXRpb25Db21wbGV0ZSIsIm9uVXBkYXRlIiwib25EcmFnU3RhcnQiLCJvbkRyYWciLCJvbkRyYWdFbmQiLCJvbk1lYXN1cmVEcmFnQ29uc3RyYWludHMiLCJvbkRpcmVjdGlvbkxvY2siLCJvbkRyYWdUcmFuc2l0aW9uRW5kIiwiX2RyYWdYIiwiX2RyYWdZIiwib25Ib3ZlclN0YXJ0Iiwib25Ib3ZlckVuZCIsIm9uVmlld3BvcnRFbnRlciIsIm9uVmlld3BvcnRMZWF2ZSIsImdsb2JhbFRhcFRhcmdldCIsImlnbm9yZVN0cmljdCIsInZpZXdwb3J0Il0pO2Z1bmN0aW9uIHVzKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoIndoaWxlIil8fGUuc3RhcnRzV2l0aCgiZHJhZyIpJiZlIT09ImRyYWdnYWJsZSJ8fGUuc3RhcnRzV2l0aCgibGF5b3V0Iil8fGUuc3RhcnRzV2l0aCgib25UYXAiKXx8ZS5zdGFydHNXaXRoKCJvblBhbiIpfHxlLnN0YXJ0c1dpdGgoIm9uTGF5b3V0Iil8fEZPLmhhcyhlKX1sZXQgWl89ZT0+IXVzKGUpO2Z1bmN0aW9uIFVPKGUpe2UmJihaXz10PT50LnN0YXJ0c1dpdGgoIm9uIik/IXVzKHQpOmUodCkpfXRyeXtVTyhyZXF1aXJlKCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkIikuZGVmYXVsdCl9Y2F0Y2h7fWZ1bmN0aW9uIEJPKGUsdCxuKXtjb25zdCByPXt9O2Zvcihjb25zdCBhIGluIGUpYT09PSJ2YWx1ZXMiJiZ0eXBlb2YgZS52YWx1ZXM9PSJvYmplY3QifHwoWl8oYSl8fG49PT0hMCYmdXMoYSl8fCF0JiYhdXMoYSl8fGUuZHJhZ2dhYmxlJiZhLnN0YXJ0c1dpdGgoIm9uRHJhZyIpKSYmKHJbYV09ZVthXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gJE8oZSl7aWYodHlwZW9mIFByb3h5PiJ1IilyZXR1cm4gZTtjb25zdCB0PW5ldyBNYXAsbj0oLi4ucik9PmUoLi4ucik7cmV0dXJuIG5ldyBQcm94eShuLHtnZXQ6KHIsYSk9PmE9PT0iY3JlYXRlIj9lOih0LmhhcyhhKXx8dC5zZXQoYSxlKGEpKSx0LmdldChhKSl9KX1jb25zdCBNcz1QLmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIHdpKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ8fEFycmF5LmlzQXJyYXkoZSl9ZnVuY3Rpb24gUHMoZSl7cmV0dXJuIGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJnR5cGVvZiBlLnN0YXJ0PT0iZnVuY3Rpb24ifWNvbnN0IHhoPVsiYW5pbWF0ZSIsIndoaWxlSW5WaWV3Iiwid2hpbGVGb2N1cyIsIndoaWxlSG92ZXIiLCJ3aGlsZVRhcCIsIndoaWxlRHJhZyIsImV4aXQiXSxSaD1bImluaXRpYWwiLC4uLnhoXTtmdW5jdGlvbiBGcyhlKXtyZXR1cm4gUHMoZS5hbmltYXRlKXx8Umguc29tZSh0PT53aShlW3RdKSl9ZnVuY3Rpb24gUV8oZSl7cmV0dXJuISEoRnMoZSl8fGUudmFyaWFudHMpfWZ1bmN0aW9uIHpPKGUsdCl7aWYoRnMoZSkpe2NvbnN0e2luaXRpYWw6bixhbmltYXRlOnJ9PWU7cmV0dXJue2luaXRpYWw6bj09PSExfHx3aShuKT9uOnZvaWQgMCxhbmltYXRlOndpKHIpP3I6dm9pZCAwfX1yZXR1cm4gZS5pbmhlcml0IT09ITE/dDp7fX1mdW5jdGlvbiBqTyhlKXtjb25zdHtpbml0aWFsOnQsYW5pbWF0ZTpufT16TyhlLFAudXNlQ29udGV4dChNcykpO3JldHVybiBQLnVzZU1lbW8oKCk9Pih7aW5pdGlhbDp0LGFuaW1hdGU6bn0pLFtudih0KSxudihuKV0pfWZ1bmN0aW9uIG52KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2Uuam9pbigiICIpOmV9Y29uc3QgR089U3ltYm9sLmZvcigibW90aW9uQ29tcG9uZW50U3ltYm9sIik7ZnVuY3Rpb24gVXIoZSl7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsImN1cnJlbnQiKX1mdW5jdGlvbiBxTyhlLHQsbil7cmV0dXJuIFAudXNlQ2FsbGJhY2socj0+e3ImJmUub25Nb3VudCYmZS5vbk1vdW50KHIpLHQmJihyP3QubW91bnQocik6dC51bm1vdW50KCkpLG4mJih0eXBlb2Ygbj09ImZ1bmN0aW9uIj9uKHIpOlVyKG4pJiYobi5jdXJyZW50PXIpKX0sW3RdKX1jb25zdCBfaD1lPT5lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2d1LCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksVk89ImZyYW1lckFwcGVhcklkIixKXz0iZGF0YS0iK19oKFZPKSx7c2NoZWR1bGU6SWh9PUtfKHF1ZXVlTWljcm90YXNrLCExKSxlST1QLmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIEhPKGUsdCxuLHIsYSl7dmFyIGksbztjb25zdHt2aXN1YWxFbGVtZW50OnN9PVAudXNlQ29udGV4dChNcyksbD1QLnVzZUNvbnRleHQoWF8pLHU9UC51c2VDb250ZXh0KERzKSxjPVAudXNlQ29udGV4dChUaCkucmVkdWNlZE1vdGlvbixkPVAudXNlUmVmKG51bGwpO3I9cnx8bC5yZW5kZXJlciwhZC5jdXJyZW50JiZyJiYoZC5jdXJyZW50PXIoZSx7dmlzdWFsU3RhdGU6dCxwYXJlbnQ6cyxwcm9wczpuLHByZXNlbmNlQ29udGV4dDp1LGJsb2NrSW5pdGlhbEFuaW1hdGlvbjp1P3UuaW5pdGlhbD09PSExOiExLHJlZHVjZWRNb3Rpb25Db25maWc6Y30pKTtjb25zdCBwPWQuY3VycmVudCxmPVAudXNlQ29udGV4dChlSSk7cCYmIXAucHJvamVjdGlvbiYmYSYmKHAudHlwZT09PSJodG1sInx8cC50eXBlPT09InN2ZyIpJiZXTyhkLmN1cnJlbnQsbixhLGYpO2NvbnN0IHk9UC51c2VSZWYoITEpO1AudXNlSW5zZXJ0aW9uRWZmZWN0KCgpPT57cCYmeS5jdXJyZW50JiZwLnVwZGF0ZShuLHUpfSk7Y29uc3QgYj1uW0pfXSxBPVAudXNlUmVmKCEhYiYmISghKChpPXdpbmRvdy5Nb3Rpb25IYW5kb2ZmSXNDb21wbGV0ZSk9PT1udWxsfHxpPT09dm9pZCAwKSYmaS5jYWxsKHdpbmRvdyxiKSkmJigobz13aW5kb3cuTW90aW9uSGFzT3B0aW1pc2VkQW5pbWF0aW9uKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uY2FsbCh3aW5kb3csYikpKTtyZXR1cm4gV18oKCk9PntwJiYoeS5jdXJyZW50PSEwLHdpbmRvdy5Nb3Rpb25Jc01vdW50ZWQ9ITAscC51cGRhdGVGZWF0dXJlcygpLEloLnJlbmRlcihwLnJlbmRlciksQS5jdXJyZW50JiZwLmFuaW1hdGlvblN0YXRlJiZwLmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKCkpfSksUC51c2VFZmZlY3QoKCk9PntwJiYoIUEuY3VycmVudCYmcC5hbmltYXRpb25TdGF0ZSYmcC5hbmltYXRpb25TdGF0ZS5hbmltYXRlQ2hhbmdlcygpLEEuY3VycmVudCYmKHF1ZXVlTWljcm90YXNrKCgpPT57dmFyIGg7KGg9d2luZG93Lk1vdGlvbkhhbmRvZmZNYXJrQXNDb21wbGV0ZSk9PT1udWxsfHxoPT09dm9pZCAwfHxoLmNhbGwod2luZG93LGIpfSksQS5jdXJyZW50PSExKSl9KSxwfWZ1bmN0aW9uIFdPKGUsdCxuLHIpe2NvbnN0e2xheW91dElkOmEsbGF5b3V0OmksZHJhZzpvLGRyYWdDb25zdHJhaW50czpzLGxheW91dFNjcm9sbDpsLGxheW91dFJvb3Q6dX09dDtlLnByb2plY3Rpb249bmV3IG4oZS5sYXRlc3RWYWx1ZXMsdFsiZGF0YS1mcmFtZXItcG9ydGFsLWlkIl0/dm9pZCAwOnRJKGUucGFyZW50KSksZS5wcm9qZWN0aW9uLnNldE9wdGlvbnMoe2xheW91dElkOmEsbGF5b3V0OmksYWx3YXlzTWVhc3VyZUxheW91dDohIW98fHMmJlVyKHMpLHZpc3VhbEVsZW1lbnQ6ZSxhbmltYXRpb25UeXBlOnR5cGVvZiBpPT0ic3RyaW5nIj9pOiJib3RoIixpbml0aWFsUHJvbW90aW9uQ29uZmlnOnIsbGF5b3V0U2Nyb2xsOmwsbGF5b3V0Um9vdDp1fSl9ZnVuY3Rpb24gdEkoZSl7aWYoZSlyZXR1cm4gZS5vcHRpb25zLmFsbG93UHJvamVjdGlvbiE9PSExP2UucHJvamVjdGlvbjp0SShlLnBhcmVudCl9ZnVuY3Rpb24gWU8oe3ByZWxvYWRlZEZlYXR1cmVzOmUsY3JlYXRlVmlzdWFsRWxlbWVudDp0LHVzZVJlbmRlcjpuLHVzZVZpc3VhbFN0YXRlOnIsQ29tcG9uZW50OmF9KXt2YXIgaSxvO2UmJlBPKGUpO2Z1bmN0aW9uIHModSxjKXtsZXQgZDtjb25zdCBwPXsuLi5QLnVzZUNvbnRleHQoVGgpLC4uLnUsbGF5b3V0SWQ6S08odSl9LHtpc1N0YXRpYzpmfT1wLHk9ak8odSksYj1yKHUsZik7aWYoIWYmJmtoKXtYTygpO2NvbnN0IEE9Wk8ocCk7ZD1BLk1lYXN1cmVMYXlvdXQseS52aXN1YWxFbGVtZW50PUhPKGEsYixwLHQsQS5Qcm9qZWN0aW9uTm9kZSl9cmV0dXJuIGsuanN4cyhNcy5Qcm92aWRlcix7dmFsdWU6eSxjaGlsZHJlbjpbZCYmeS52aXN1YWxFbGVtZW50P2suanN4KGQse3Zpc3VhbEVsZW1lbnQ6eS52aXN1YWxFbGVtZW50LC4uLnB9KTpudWxsLG4oYSx1LHFPKGIseS52aXN1YWxFbGVtZW50LGMpLGIsZix5LnZpc3VhbEVsZW1lbnQpXX0pfXMuZGlzcGxheU5hbWU9YG1vdGlvbi4ke3R5cGVvZiBhPT0ic3RyaW5nIj9hOmBjcmVhdGUoJHsobz0oaT1hLmRpc3BsYXlOYW1lKSE9PW51bGwmJmkhPT12b2lkIDA/aTphLm5hbWUpIT09bnVsbCYmbyE9PXZvaWQgMD9vOiIifSlgfWA7Y29uc3QgbD1QLmZvcndhcmRSZWYocyk7cmV0dXJuIGxbR09dPWEsbH1mdW5jdGlvbiBLTyh7bGF5b3V0SWQ6ZX0pe2NvbnN0IHQ9UC51c2VDb250ZXh0KFNoKS5pZDtyZXR1cm4gdCYmZSE9PXZvaWQgMD90KyItIitlOmV9ZnVuY3Rpb24gWE8oZSx0KXtQLnVzZUNvbnRleHQoWF8pLnN0cmljdH1mdW5jdGlvbiBaTyhlKXtjb25zdHtkcmFnOnQsbGF5b3V0Om59PW9hO2lmKCF0JiYhbilyZXR1cm57fTtjb25zdCByPXsuLi50LC4uLm59O3JldHVybntNZWFzdXJlTGF5b3V0OnQhPW51bGwmJnQuaXNFbmFibGVkKGUpfHxuIT1udWxsJiZuLmlzRW5hYmxlZChlKT9yLk1lYXN1cmVMYXlvdXQ6dm9pZCAwLFByb2plY3Rpb25Ob2RlOnIuUHJvamVjdGlvbk5vZGV9fWNvbnN0IFFPPVsiYW5pbWF0ZSIsImNpcmNsZSIsImRlZnMiLCJkZXNjIiwiZWxsaXBzZSIsImciLCJpbWFnZSIsImxpbmUiLCJmaWx0ZXIiLCJtYXJrZXIiLCJtYXNrIiwibWV0YWRhdGEiLCJwYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJlY3QiLCJzdG9wIiwic3dpdGNoIiwic3ltYm9sIiwic3ZnIiwidGV4dCIsInRzcGFuIiwidXNlIiwidmlldyJdO2Z1bmN0aW9uIE5oKGUpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyJ8fGUuaW5jbHVkZXMoIi0iKT8hMTohIShRTy5pbmRleE9mKGUpPi0xfHwvW0EtWl0vdS50ZXN0KGUpKX1mdW5jdGlvbiBydihlKXtjb25zdCB0PVt7fSx7fV07cmV0dXJuIGU9PW51bGx8fGUudmFsdWVzLmZvckVhY2goKG4scik9Pnt0WzBdW3JdPW4uZ2V0KCksdFsxXVtyXT1uLmdldFZlbG9jaXR5KCl9KSx0fWZ1bmN0aW9uIENoKGUsdCxuLHIpe2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXtjb25zdFthLGldPXJ2KHIpO3Q9dChuIT09dm9pZCAwP246ZS5jdXN0b20sYSxpKX1pZih0eXBlb2YgdD09InN0cmluZyImJih0PWUudmFyaWFudHMmJmUudmFyaWFudHNbdF0pLHR5cGVvZiB0PT0iZnVuY3Rpb24iKXtjb25zdFthLGldPXJ2KHIpO3Q9dChuIT09dm9pZCAwP246ZS5jdXN0b20sYSxpKX1yZXR1cm4gdH1jb25zdCBZbT1lPT5BcnJheS5pc0FycmF5KGUpLEpPPWU9PiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmZS5taXgmJmUudG9WYWx1ZSksZUw9ZT0+WW0oZSk/ZVtlLmxlbmd0aC0xXXx8MDplLEdlPWU9PiEhKGUmJmUuZ2V0VmVsb2NpdHkpO2Z1bmN0aW9uIENvKGUpe2NvbnN0IHQ9R2UoZSk/ZS5nZXQoKTplO3JldHVybiBKTyh0KT90LnRvVmFsdWUoKTp0fWZ1bmN0aW9uIHRMKHtzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6ZSxjcmVhdGVSZW5kZXJTdGF0ZTp0LG9uVXBkYXRlOm59LHIsYSxpKXtjb25zdCBvPXtsYXRlc3RWYWx1ZXM6bkwocixhLGksZSkscmVuZGVyU3RhdGU6dCgpfTtyZXR1cm4gbiYmKG8ub25Nb3VudD1zPT5uKHtwcm9wczpyLGN1cnJlbnQ6cywuLi5vfSksby5vblVwZGF0ZT1zPT5uKHMpKSxvfWNvbnN0IG5JPWU9Pih0LG4pPT57Y29uc3Qgcj1QLnVzZUNvbnRleHQoTXMpLGE9UC51c2VDb250ZXh0KERzKSxpPSgpPT50TChlLHQscixhKTtyZXR1cm4gbj9pKCk6d2goaSl9O2Z1bmN0aW9uIG5MKGUsdCxuLHIpe2NvbnN0IGE9e30saT1yKGUse30pO2Zvcihjb25zdCBwIGluIGkpYVtwXT1DbyhpW3BdKTtsZXR7aW5pdGlhbDpvLGFuaW1hdGU6c309ZTtjb25zdCBsPUZzKGUpLHU9UV8oZSk7dCYmdSYmIWwmJmUuaW5oZXJpdCE9PSExJiYobz09PXZvaWQgMCYmKG89dC5pbml0aWFsKSxzPT09dm9pZCAwJiYocz10LmFuaW1hdGUpKTtsZXQgYz1uP24uaW5pdGlhbD09PSExOiExO2M9Y3x8bz09PSExO2NvbnN0IGQ9Yz9zOm87aWYoZCYmdHlwZW9mIGQhPSJib29sZWFuIiYmIVBzKGQpKXtjb25zdCBwPUFycmF5LmlzQXJyYXkoZCk/ZDpbZF07Zm9yKGxldCBmPTA7ZjxwLmxlbmd0aDtmKyspe2NvbnN0IHk9Q2goZSxwW2ZdKTtpZih5KXtjb25zdHt0cmFuc2l0aW9uRW5kOmIsdHJhbnNpdGlvbjpBLC4uLmh9PXk7Zm9yKGNvbnN0IG0gaW4gaCl7bGV0IGc9aFttXTtpZihBcnJheS5pc0FycmF5KGcpKXtjb25zdCBFPWM/Zy5sZW5ndGgtMTowO2c9Z1tFXX1nIT09bnVsbCYmKGFbbV09Zyl9Zm9yKGNvbnN0IG0gaW4gYilhW21dPWJbbV19fX1yZXR1cm4gYX1jb25zdCBwYT1bInRyYW5zZm9ybVBlcnNwZWN0aXZlIiwieCIsInkiLCJ6IiwidHJhbnNsYXRlWCIsInRyYW5zbGF0ZVkiLCJ0cmFuc2xhdGVaIiwic2NhbGUiLCJzY2FsZVgiLCJzY2FsZVkiLCJyb3RhdGUiLCJyb3RhdGVYIiwicm90YXRlWSIsInJvdGF0ZVoiLCJza2V3Iiwic2tld1giLCJza2V3WSJdLGJyPW5ldyBTZXQocGEpLHJJPWU9PnQ9PnR5cGVvZiB0PT0ic3RyaW5nIiYmdC5zdGFydHNXaXRoKGUpLGFJPXJJKCItLSIpLHJMPXJJKCJ2YXIoLS0iKSxPaD1lPT5yTChlKT9hTC50ZXN0KGUuc3BsaXQoIi8qIilbMF0udHJpbSgpKTohMSxhTD0vdmFyXCgtLSg/Oltcdy1dK1xzKnxbXHctXStccyosKD86XHMqW14pKFxzXXxccypcKCg/OlteKShdfFwoW14pKF0qXCkpKlwpKStccyopXCkkL2l1LGlJPShlLHQpPT50JiZ0eXBlb2YgZT09Im51bWJlciI/dC50cmFuc2Zvcm0oZSk6ZSxibj0oZSx0LG4pPT5uPnQ/dDpuPGU/ZTpuLGZhPXt0ZXN0OmU9PnR5cGVvZiBlPT0ibnVtYmVyIixwYXJzZTpwYXJzZUZsb2F0LHRyYW5zZm9ybTplPT5lfSxUaT17Li4uZmEsdHJhbnNmb3JtOmU9PmJuKDAsMSxlKX0sY289ey4uLmZhLGRlZmF1bHQ6MX0sUGk9ZT0+KHt0ZXN0OnQ9PnR5cGVvZiB0PT0ic3RyaW5nIiYmdC5lbmRzV2l0aChlKSYmdC5zcGxpdCgiICIpLmxlbmd0aD09PTEscGFyc2U6cGFyc2VGbG9hdCx0cmFuc2Zvcm06dD0+YCR7dH0ke2V9YH0pLFNuPVBpKCJkZWciKSxKdD1QaSgiJSIpLEg9UGkoInB4IiksaUw9UGkoInZoIiksb0w9UGkoInZ3IiksYXY9ey4uLkp0LHBhcnNlOmU9Pkp0LnBhcnNlKGUpLzEwMCx0cmFuc2Zvcm06ZT0+SnQudHJhbnNmb3JtKGUqMTAwKX0sc0w9e2JvcmRlcldpZHRoOkgsYm9yZGVyVG9wV2lkdGg6SCxib3JkZXJSaWdodFdpZHRoOkgsYm9yZGVyQm90dG9tV2lkdGg6SCxib3JkZXJMZWZ0V2lkdGg6SCxib3JkZXJSYWRpdXM6SCxyYWRpdXM6SCxib3JkZXJUb3BMZWZ0UmFkaXVzOkgsYm9yZGVyVG9wUmlnaHRSYWRpdXM6SCxib3JkZXJCb3R0b21SaWdodFJhZGl1czpILGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6SCx3aWR0aDpILG1heFdpZHRoOkgsaGVpZ2h0OkgsbWF4SGVpZ2h0OkgsdG9wOkgscmlnaHQ6SCxib3R0b206SCxsZWZ0OkgscGFkZGluZzpILHBhZGRpbmdUb3A6SCxwYWRkaW5nUmlnaHQ6SCxwYWRkaW5nQm90dG9tOkgscGFkZGluZ0xlZnQ6SCxtYXJnaW46SCxtYXJnaW5Ub3A6SCxtYXJnaW5SaWdodDpILG1hcmdpbkJvdHRvbTpILG1hcmdpbkxlZnQ6SCxiYWNrZ3JvdW5kUG9zaXRpb25YOkgsYmFja2dyb3VuZFBvc2l0aW9uWTpIfSxsTD17cm90YXRlOlNuLHJvdGF0ZVg6U24scm90YXRlWTpTbixyb3RhdGVaOlNuLHNjYWxlOmNvLHNjYWxlWDpjbyxzY2FsZVk6Y28sc2NhbGVaOmNvLHNrZXc6U24sc2tld1g6U24sc2tld1k6U24sZGlzdGFuY2U6SCx0cmFuc2xhdGVYOkgsdHJhbnNsYXRlWTpILHRyYW5zbGF0ZVo6SCx4OkgseTpILHo6SCxwZXJzcGVjdGl2ZTpILHRyYW5zZm9ybVBlcnNwZWN0aXZlOkgsb3BhY2l0eTpUaSxvcmlnaW5YOmF2LG9yaWdpblk6YXYsb3JpZ2luWjpIfSxpdj17Li4uZmEsdHJhbnNmb3JtOk1hdGgucm91bmR9LExoPXsuLi5zTCwuLi5sTCx6SW5kZXg6aXYsc2l6ZTpILGZpbGxPcGFjaXR5OlRpLHN0cm9rZU9wYWNpdHk6VGksbnVtT2N0YXZlczppdn0sdUw9e3g6InRyYW5zbGF0ZVgiLHk6InRyYW5zbGF0ZVkiLHo6InRyYW5zbGF0ZVoiLHRyYW5zZm9ybVBlcnNwZWN0aXZlOiJwZXJzcGVjdGl2ZSJ9LGNMPXBhLmxlbmd0aDtmdW5jdGlvbiBkTChlLHQsbil7bGV0IHI9IiIsYT0hMDtmb3IobGV0IGk9MDtpPGNMO2krKyl7Y29uc3Qgbz1wYVtpXSxzPWVbb107aWYocz09PXZvaWQgMCljb250aW51ZTtsZXQgbD0hMDtpZih0eXBlb2Ygcz09Im51bWJlciI/bD1zPT09KG8uc3RhcnRzV2l0aCgic2NhbGUiKT8xOjApOmw9cGFyc2VGbG9hdChzKT09PTAsIWx8fG4pe2NvbnN0IHU9aUkocyxMaFtvXSk7aWYoIWwpe2E9ITE7Y29uc3QgYz11TFtvXXx8bztyKz1gJHtjfSgke3V9KSBgfW4mJih0W29dPXUpfX1yZXR1cm4gcj1yLnRyaW0oKSxuP3I9bih0LGE/IiI6cik6YSYmKHI9Im5vbmUiKSxyfWZ1bmN0aW9uIERoKGUsdCxuKXtjb25zdHtzdHlsZTpyLHZhcnM6YSx0cmFuc2Zvcm1PcmlnaW46aX09ZTtsZXQgbz0hMSxzPSExO2Zvcihjb25zdCBsIGluIHQpe2NvbnN0IHU9dFtsXTtpZihici5oYXMobCkpe289ITA7Y29udGludWV9ZWxzZSBpZihhSShsKSl7YVtsXT11O2NvbnRpbnVlfWVsc2V7Y29uc3QgYz1pSSh1LExoW2xdKTtsLnN0YXJ0c1dpdGgoIm9yaWdpbiIpPyhzPSEwLGlbbF09Yyk6cltsXT1jfX1pZih0LnRyYW5zZm9ybXx8KG98fG4/ci50cmFuc2Zvcm09ZEwodCxlLnRyYW5zZm9ybSxuKTpyLnRyYW5zZm9ybSYmKHIudHJhbnNmb3JtPSJub25lIikpLHMpe2NvbnN0e29yaWdpblg6bD0iNTAlIixvcmlnaW5ZOnU9IjUwJSIsb3JpZ2luWjpjPTB9PWk7ci50cmFuc2Zvcm1PcmlnaW49YCR7bH0gJHt1fSAke2N9YH19Y29uc3QgcEw9e29mZnNldDoic3Ryb2tlLWRhc2hvZmZzZXQiLGFycmF5OiJzdHJva2UtZGFzaGFycmF5In0sZkw9e29mZnNldDoic3Ryb2tlRGFzaG9mZnNldCIsYXJyYXk6InN0cm9rZURhc2hhcnJheSJ9O2Z1bmN0aW9uIG1MKGUsdCxuPTEscj0wLGE9ITApe2UucGF0aExlbmd0aD0xO2NvbnN0IGk9YT9wTDpmTDtlW2kub2Zmc2V0XT1ILnRyYW5zZm9ybSgtcik7Y29uc3Qgbz1ILnRyYW5zZm9ybSh0KSxzPUgudHJhbnNmb3JtKG4pO2VbaS5hcnJheV09YCR7b30gJHtzfWB9ZnVuY3Rpb24gb3YoZSx0LG4pe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/ZTpILnRyYW5zZm9ybSh0K24qZSl9ZnVuY3Rpb24gZ0woZSx0LG4pe2NvbnN0IHI9b3YodCxlLngsZS53aWR0aCksYT1vdihuLGUueSxlLmhlaWdodCk7cmV0dXJuYCR7cn0gJHthfWB9ZnVuY3Rpb24gTWgoZSx7YXR0clg6dCxhdHRyWTpuLGF0dHJTY2FsZTpyLG9yaWdpblg6YSxvcmlnaW5ZOmkscGF0aExlbmd0aDpvLHBhdGhTcGFjaW5nOnM9MSxwYXRoT2Zmc2V0Omw9MCwuLi51fSxjLGQpe2lmKERoKGUsdSxkKSxjKXtlLnN0eWxlLnZpZXdCb3gmJihlLmF0dHJzLnZpZXdCb3g9ZS5zdHlsZS52aWV3Qm94KTtyZXR1cm59ZS5hdHRycz1lLnN0eWxlLGUuc3R5bGU9e307Y29uc3R7YXR0cnM6cCxzdHlsZTpmLGRpbWVuc2lvbnM6eX09ZTtwLnRyYW5zZm9ybSYmKHkmJihmLnRyYW5zZm9ybT1wLnRyYW5zZm9ybSksZGVsZXRlIHAudHJhbnNmb3JtKSx5JiYoYSE9PXZvaWQgMHx8aSE9PXZvaWQgMHx8Zi50cmFuc2Zvcm0pJiYoZi50cmFuc2Zvcm1PcmlnaW49Z0woeSxhIT09dm9pZCAwP2E6LjUsaSE9PXZvaWQgMD9pOi41KSksdCE9PXZvaWQgMCYmKHAueD10KSxuIT09dm9pZCAwJiYocC55PW4pLHIhPT12b2lkIDAmJihwLnNjYWxlPXIpLG8hPT12b2lkIDAmJm1MKHAsbyxzLGwsITEpfWNvbnN0IFBoPSgpPT4oe3N0eWxlOnt9LHRyYW5zZm9ybTp7fSx0cmFuc2Zvcm1PcmlnaW46e30sdmFyczp7fX0pLG9JPSgpPT4oey4uLlBoKCksYXR0cnM6e319KSxGaD1lPT50eXBlb2YgZT09InN0cmluZyImJmUudG9Mb3dlckNhc2UoKT09PSJzdmciO2Z1bmN0aW9uIHNJKGUse3N0eWxlOnQsdmFyczpufSxyLGEpe09iamVjdC5hc3NpZ24oZS5zdHlsZSx0LGEmJmEuZ2V0UHJvamVjdGlvblN0eWxlcyhyKSk7Zm9yKGNvbnN0IGkgaW4gbillLnN0eWxlLnNldFByb3BlcnR5KGksbltpXSl9Y29uc3QgbEk9bmV3IFNldChbImJhc2VGcmVxdWVuY3kiLCJkaWZmdXNlQ29uc3RhbnQiLCJrZXJuZWxNYXRyaXgiLCJrZXJuZWxVbml0TGVuZ3RoIiwia2V5U3BsaW5lcyIsImtleVRpbWVzIiwibGltaXRpbmdDb25lQW5nbGUiLCJtYXJrZXJIZWlnaHQiLCJtYXJrZXJXaWR0aCIsIm51bU9jdGF2ZXMiLCJ0YXJnZXRYIiwidGFyZ2V0WSIsInN1cmZhY2VTY2FsZSIsInNwZWN1bGFyQ29uc3RhbnQiLCJzcGVjdWxhckV4cG9uZW50Iiwic3RkRGV2aWF0aW9uIiwidGFibGVWYWx1ZXMiLCJ2aWV3Qm94IiwiZ3JhZGllbnRUcmFuc2Zvcm0iLCJwYXRoTGVuZ3RoIiwic3RhcnRPZmZzZXQiLCJ0ZXh0TGVuZ3RoIiwibGVuZ3RoQWRqdXN0Il0pO2Z1bmN0aW9uIHVJKGUsdCxuLHIpe3NJKGUsdCx2b2lkIDAscik7Zm9yKGNvbnN0IGEgaW4gdC5hdHRycyllLnNldEF0dHJpYnV0ZShsSS5oYXMoYSk/YTpfaChhKSx0LmF0dHJzW2FdKX1jb25zdCBjcz17fTtmdW5jdGlvbiBoTChlKXtPYmplY3QuYXNzaWduKGNzLGUpfWZ1bmN0aW9uIGNJKGUse2xheW91dDp0LGxheW91dElkOm59KXtyZXR1cm4gYnIuaGFzKGUpfHxlLnN0YXJ0c1dpdGgoIm9yaWdpbiIpfHwodHx8biE9PXZvaWQgMCkmJighIWNzW2VdfHxlPT09Im9wYWNpdHkiKX1mdW5jdGlvbiBVaChlLHQsbil7dmFyIHI7Y29uc3R7c3R5bGU6YX09ZSxpPXt9O2Zvcihjb25zdCBvIGluIGEpKEdlKGFbb10pfHx0LnN0eWxlJiZHZSh0LnN0eWxlW29dKXx8Y0kobyxlKXx8KChyPW49PW51bGw/dm9pZCAwOm4uZ2V0VmFsdWUobykpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5saXZlU3R5bGUpIT09dm9pZCAwKSYmKGlbb109YVtvXSk7cmV0dXJuIGl9ZnVuY3Rpb24gZEkoZSx0LG4pe2NvbnN0IHI9VWgoZSx0LG4pO2Zvcihjb25zdCBhIGluIGUpaWYoR2UoZVthXSl8fEdlKHRbYV0pKXtjb25zdCBpPXBhLmluZGV4T2YoYSkhPT0tMT8iYXR0ciIrYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxKTphO3JbaV09ZVthXX1yZXR1cm4gcn1mdW5jdGlvbiBiTChlLHQpe3RyeXt0LmRpbWVuc2lvbnM9dHlwZW9mIGUuZ2V0QkJveD09ImZ1bmN0aW9uIj9lLmdldEJCb3goKTplLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoe3QuZGltZW5zaW9ucz17eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX19Y29uc3Qgc3Y9WyJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0IiwiY3giLCJjeSIsInIiXSx5TD17dXNlVmlzdWFsU3RhdGU6bkkoe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczpkSSxjcmVhdGVSZW5kZXJTdGF0ZTpvSSxvblVwZGF0ZTooe3Byb3BzOmUscHJldlByb3BzOnQsY3VycmVudDpuLHJlbmRlclN0YXRlOnIsbGF0ZXN0VmFsdWVzOmF9KT0+e2lmKCFuKXJldHVybjtsZXQgaT0hIWUuZHJhZztpZighaSl7Zm9yKGNvbnN0IHMgaW4gYSlpZihici5oYXMocykpe2k9ITA7YnJlYWt9fWlmKCFpKXJldHVybjtsZXQgbz0hdDtpZih0KWZvcihsZXQgcz0wO3M8c3YubGVuZ3RoO3MrKyl7Y29uc3QgbD1zdltzXTtlW2xdIT09dFtsXSYmKG89ITApfW8mJm1lLnJlYWQoKCk9PntiTChuLHIpLG1lLnJlbmRlcigoKT0+e01oKHIsYSxGaChuLnRhZ05hbWUpLGUudHJhbnNmb3JtVGVtcGxhdGUpLHVJKG4scil9KX0pfX0pfSx2TD17dXNlVmlzdWFsU3RhdGU6bkkoe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczpVaCxjcmVhdGVSZW5kZXJTdGF0ZTpQaH0pfTtmdW5jdGlvbiBwSShlLHQsbil7Zm9yKGNvbnN0IHIgaW4gdCkhR2UodFtyXSkmJiFjSShyLG4pJiYoZVtyXT10W3JdKX1mdW5jdGlvbiBFTCh7dHJhbnNmb3JtVGVtcGxhdGU6ZX0sdCl7cmV0dXJuIFAudXNlTWVtbygoKT0+e2NvbnN0IG49UGgoKTtyZXR1cm4gRGgobix0LGUpLE9iamVjdC5hc3NpZ24oe30sbi52YXJzLG4uc3R5bGUpfSxbdF0pfWZ1bmN0aW9uIFNMKGUsdCl7Y29uc3Qgbj1lLnN0eWxlfHx7fSxyPXt9O3JldHVybiBwSShyLG4sZSksT2JqZWN0LmFzc2lnbihyLEVMKGUsdCkpLHJ9ZnVuY3Rpb24gd0woZSx0KXtjb25zdCBuPXt9LHI9U0woZSx0KTtyZXR1cm4gZS5kcmFnJiZlLmRyYWdMaXN0ZW5lciE9PSExJiYobi5kcmFnZ2FibGU9ITEsci51c2VyU2VsZWN0PXIuV2Via2l0VXNlclNlbGVjdD1yLldlYmtpdFRvdWNoQ2FsbG91dD0ibm9uZSIsci50b3VjaEFjdGlvbj1lLmRyYWc9PT0hMD8ibm9uZSI6YHBhbi0ke2UuZHJhZz09PSJ4Ij8ieSI6IngifWApLGUudGFiSW5kZXg9PT12b2lkIDAmJihlLm9uVGFwfHxlLm9uVGFwU3RhcnR8fGUud2hpbGVUYXApJiYobi50YWJJbmRleD0wKSxuLnN0eWxlPXIsbn1mdW5jdGlvbiBUTChlLHQsbixyKXtjb25zdCBhPVAudXNlTWVtbygoKT0+e2NvbnN0IGk9b0koKTtyZXR1cm4gTWgoaSx0LEZoKHIpLGUudHJhbnNmb3JtVGVtcGxhdGUpLHsuLi5pLmF0dHJzLHN0eWxlOnsuLi5pLnN0eWxlfX19LFt0XSk7aWYoZS5zdHlsZSl7Y29uc3QgaT17fTtwSShpLGUuc3R5bGUsZSksYS5zdHlsZT17Li4uaSwuLi5hLnN0eWxlfX1yZXR1cm4gYX1mdW5jdGlvbiBrTChlPSExKXtyZXR1cm4obixyLGEse2xhdGVzdFZhbHVlczppfSxvKT0+e2NvbnN0IGw9KE5oKG4pP1RMOndMKShyLGksbyxuKSx1PUJPKHIsdHlwZW9mIG49PSJzdHJpbmciLGUpLGM9biE9PVAuRnJhZ21lbnQ/ey4uLnUsLi4ubCxyZWY6YX06e30se2NoaWxkcmVuOmR9PXIscD1QLnVzZU1lbW8oKCk9PkdlKGQpP2QuZ2V0KCk6ZCxbZF0pO3JldHVybiBQLmNyZWF0ZUVsZW1lbnQobix7Li4uYyxjaGlsZHJlbjpwfSl9fWZ1bmN0aW9uIEFMKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIse2ZvcndhcmRNb3Rpb25Qcm9wczphfT17Zm9yd2FyZE1vdGlvblByb3BzOiExfSl7Y29uc3Qgbz17Li4uTmgocik/eUw6dkwscHJlbG9hZGVkRmVhdHVyZXM6ZSx1c2VSZW5kZXI6a0woYSksY3JlYXRlVmlzdWFsRWxlbWVudDp0LENvbXBvbmVudDpyfTtyZXR1cm4gWU8obyl9fWZ1bmN0aW9uIGZJKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuITE7Y29uc3Qgbj10Lmxlbmd0aDtpZihuIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjxuO3IrKylpZih0W3JdIT09ZVtyXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBVcyhlLHQsbil7Y29uc3Qgcj1lLmdldFByb3BzKCk7cmV0dXJuIENoKHIsdCxuIT09dm9pZCAwP246ci5jdXN0b20sZSl9Y29uc3QgeEw9QWgoKCk9PndpbmRvdy5TY3JvbGxUaW1lbGluZSE9PXZvaWQgMCk7Y2xhc3MgUkx7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9wPSgpPT50aGlzLnJ1bkFsbCgic3RvcCIpLHRoaXMuYW5pbWF0aW9ucz10LmZpbHRlcihCb29sZWFuKX1nZXQgZmluaXNoZWQoKXtyZXR1cm4gUHJvbWlzZS5hbGwodGhpcy5hbmltYXRpb25zLm1hcCh0PT4iZmluaXNoZWQiaW4gdD90LmZpbmlzaGVkOnQpKX1nZXRBbGwodCl7cmV0dXJuIHRoaXMuYW5pbWF0aW9uc1swXVt0XX1zZXRBbGwodCxuKXtmb3IobGV0IHI9MDtyPHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg7cisrKXRoaXMuYW5pbWF0aW9uc1tyXVt0XT1ufWF0dGFjaFRpbWVsaW5lKHQsbil7Y29uc3Qgcj10aGlzLmFuaW1hdGlvbnMubWFwKGE9PntpZih4TCgpJiZhLmF0dGFjaFRpbWVsaW5lKXJldHVybiBhLmF0dGFjaFRpbWVsaW5lKHQpO2lmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKXJldHVybiBuKGEpfSk7cmV0dXJuKCk9PntyLmZvckVhY2goKGEsaSk9PnthJiZhKCksdGhpcy5hbmltYXRpb25zW2ldLnN0b3AoKX0pfX1nZXQgdGltZSgpe3JldHVybiB0aGlzLmdldEFsbCgidGltZSIpfXNldCB0aW1lKHQpe3RoaXMuc2V0QWxsKCJ0aW1lIix0KX1nZXQgc3BlZWQoKXtyZXR1cm4gdGhpcy5nZXRBbGwoInNwZWVkIil9c2V0IHNwZWVkKHQpe3RoaXMuc2V0QWxsKCJzcGVlZCIsdCl9Z2V0IHN0YXJ0VGltZSgpe3JldHVybiB0aGlzLmdldEFsbCgic3RhcnRUaW1lIil9Z2V0IGR1cmF0aW9uKCl7bGV0IHQ9MDtmb3IobGV0IG49MDtuPHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg7bisrKXQ9TWF0aC5tYXgodCx0aGlzLmFuaW1hdGlvbnNbbl0uZHVyYXRpb24pO3JldHVybiB0fXJ1bkFsbCh0KXt0aGlzLmFuaW1hdGlvbnMuZm9yRWFjaChuPT5uW3RdKCkpfWZsYXR0ZW4oKXt0aGlzLnJ1bkFsbCgiZmxhdHRlbiIpfXBsYXkoKXt0aGlzLnJ1bkFsbCgicGxheSIpfXBhdXNlKCl7dGhpcy5ydW5BbGwoInBhdXNlIil9Y2FuY2VsKCl7dGhpcy5ydW5BbGwoImNhbmNlbCIpfWNvbXBsZXRlKCl7dGhpcy5ydW5BbGwoImNvbXBsZXRlIil9fWNsYXNzIF9MIGV4dGVuZHMgUkx7dGhlbih0LG4pe3JldHVybiBQcm9taXNlLmFsbCh0aGlzLmFuaW1hdGlvbnMpLnRoZW4odCkuY2F0Y2gobil9fWZ1bmN0aW9uIEJoKGUsdCl7cmV0dXJuIGU/ZVt0XXx8ZS5kZWZhdWx0fHxlOnZvaWQgMH1jb25zdCBLbT0yZTQ7ZnVuY3Rpb24gbUkoZSl7bGV0IHQ9MDtjb25zdCBuPTUwO2xldCByPWUubmV4dCh0KTtmb3IoOyFyLmRvbmUmJnQ8S207KXQrPW4scj1lLm5leHQodCk7cmV0dXJuIHQ+PUttPzEvMDp0fWZ1bmN0aW9uICRoKGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIn1mdW5jdGlvbiBsdihlLHQpe2UudGltZWxpbmU9dCxlLm9uZmluaXNoPW51bGx9Y29uc3Qgemg9ZT0+QXJyYXkuaXNBcnJheShlKSYmdHlwZW9mIGVbMF09PSJudW1iZXIiLElMPXtsaW5lYXJFYXNpbmc6dm9pZCAwfTtmdW5jdGlvbiBOTChlLHQpe2NvbnN0IG49QWgoZSk7cmV0dXJuKCk9Pnt2YXIgcjtyZXR1cm4ocj1JTFt0XSkhPT1udWxsJiZyIT09dm9pZCAwP3I6bigpfX1jb25zdCBkcz1OTCgoKT0+e3RyeXtkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5hbmltYXRlKHtvcGFjaXR5OjB9LHtlYXNpbmc6ImxpbmVhcigwLCAxKSJ9KX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH0sImxpbmVhckVhc2luZyIpLGdJPShlLHQsbj0xMCk9PntsZXQgcj0iIjtjb25zdCBhPU1hdGgubWF4KE1hdGgucm91bmQodC9uKSwyKTtmb3IobGV0IGk9MDtpPGE7aSsrKXIrPWUoaWEoMCxhLTEsaSkpKyIsICI7cmV0dXJuYGxpbmVhcigke3Iuc3Vic3RyaW5nKDAsci5sZW5ndGgtMil9KWB9O2Z1bmN0aW9uIGhJKGUpe3JldHVybiEhKHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZkcygpfHwhZXx8dHlwZW9mIGU9PSJzdHJpbmciJiYoZSBpbiBYbXx8ZHMoKSl8fHpoKGUpfHxBcnJheS5pc0FycmF5KGUpJiZlLmV2ZXJ5KGhJKSl9Y29uc3QgVWE9KFtlLHQsbixyXSk9PmBjdWJpYy1iZXppZXIoJHtlfSwgJHt0fSwgJHtufSwgJHtyfSlgLFhtPXtsaW5lYXI6ImxpbmVhciIsZWFzZToiZWFzZSIsZWFzZUluOiJlYXNlLWluIixlYXNlT3V0OiJlYXNlLW91dCIsZWFzZUluT3V0OiJlYXNlLWluLW91dCIsY2lyY0luOlVhKFswLC42NSwuNTUsMV0pLGNpcmNPdXQ6VWEoWy41NSwwLDEsLjQ1XSksYmFja0luOlVhKFsuMzEsLjAxLC42NiwtLjU5XSksYmFja091dDpVYShbLjMzLDEuNTMsLjY5LC45OV0pfTtmdW5jdGlvbiBiSShlLHQpe2lmKGUpcmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZkcygpP2dJKGUsdCk6emgoZSk/VWEoZSk6QXJyYXkuaXNBcnJheShlKT9lLm1hcChuPT5iSShuLHQpfHxYbS5lYXNlT3V0KTpYbVtlXX1jb25zdCBVdD17eDohMSx5OiExfTtmdW5jdGlvbiB5SSgpe3JldHVybiBVdC54fHxVdC55fWZ1bmN0aW9uIENMKGUsdCxuKXt2YXIgcjtpZihlIGluc3RhbmNlb2YgRWxlbWVudClyZXR1cm5bZV07aWYodHlwZW9mIGU9PSJzdHJpbmciKXtsZXQgYT1kb2N1bWVudDtjb25zdCBpPShyPXZvaWQgMCkhPT1udWxsJiZyIT09dm9pZCAwP3I6YS5xdWVyeVNlbGVjdG9yQWxsKGUpO3JldHVybiBpP0FycmF5LmZyb20oaSk6W119cmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gdkkoZSx0KXtjb25zdCBuPUNMKGUpLHI9bmV3IEFib3J0Q29udHJvbGxlcixhPXtwYXNzaXZlOiEwLC4uLnQsc2lnbmFsOnIuc2lnbmFsfTtyZXR1cm5bbixhLCgpPT5yLmFib3J0KCldfWZ1bmN0aW9uIHV2KGUpe3JldHVybiB0PT57dC5wb2ludGVyVHlwZT09PSJ0b3VjaCJ8fHlJKCl8fGUodCl9fWZ1bmN0aW9uIE9MKGUsdCxuPXt9KXtjb25zdFtyLGEsaV09dkkoZSxuKSxvPXV2KHM9Pntjb25zdHt0YXJnZXQ6bH09cyx1PXQocyk7aWYodHlwZW9mIHUhPSJmdW5jdGlvbiJ8fCFsKXJldHVybjtjb25zdCBjPXV2KGQ9Pnt1KGQpLGwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIixjKX0pO2wuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIixjLGEpfSk7cmV0dXJuIHIuZm9yRWFjaChzPT57cy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZW50ZXIiLG8sYSl9KSxpfWNvbnN0IEVJPShlLHQpPT50P2U9PT10PyEwOkVJKGUsdC5wYXJlbnRFbGVtZW50KTohMSxqaD1lPT5lLnBvaW50ZXJUeXBlPT09Im1vdXNlIj90eXBlb2YgZS5idXR0b24hPSJudW1iZXIifHxlLmJ1dHRvbjw9MDplLmlzUHJpbWFyeSE9PSExLExMPW5ldyBTZXQoWyJCVVRUT04iLCJJTlBVVCIsIlNFTEVDVCIsIlRFWFRBUkVBIiwiQSJdKTtmdW5jdGlvbiBETChlKXtyZXR1cm4gTEwuaGFzKGUudGFnTmFtZSl8fGUudGFiSW5kZXghPT0tMX1jb25zdCBCYT1uZXcgV2Vha1NldDtmdW5jdGlvbiBjdihlKXtyZXR1cm4gdD0+e3Qua2V5PT09IkVudGVyIiYmZSh0KX19ZnVuY3Rpb24gQWwoZSx0KXtlLmRpc3BhdGNoRXZlbnQobmV3IFBvaW50ZXJFdmVudCgicG9pbnRlciIrdCx7aXNQcmltYXJ5OiEwLGJ1YmJsZXM6ITB9KSl9Y29uc3QgTUw9KGUsdCk9Pntjb25zdCBuPWUuY3VycmVudFRhcmdldDtpZighbilyZXR1cm47Y29uc3Qgcj1jdigoKT0+e2lmKEJhLmhhcyhuKSlyZXR1cm47QWwobiwiZG93biIpO2NvbnN0IGE9Y3YoKCk9PntBbChuLCJ1cCIpfSksaT0oKT0+QWwobiwiY2FuY2VsIik7bi5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsYSx0KSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGksdCl9KTtuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIsdCksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+bi5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyKSx0KX07ZnVuY3Rpb24gZHYoZSl7cmV0dXJuIGpoKGUpJiYheUkoKX1mdW5jdGlvbiBQTChlLHQsbj17fSl7Y29uc3RbcixhLGldPXZJKGUsbiksbz1zPT57Y29uc3QgbD1zLmN1cnJlbnRUYXJnZXQ7aWYoIWR2KHMpfHxCYS5oYXMobCkpcmV0dXJuO0JhLmFkZChsKTtjb25zdCB1PXQocyksYz0oZix5KT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixwKSwhKCFkdihmKXx8IUJhLmhhcyhsKSkmJihCYS5kZWxldGUobCksdHlwZW9mIHU9PSJmdW5jdGlvbiImJnUoZix7c3VjY2Vzczp5fSkpfSxkPWY9PntjKGYsbi51c2VHbG9iYWxUYXJnZXR8fEVJKGwsZi50YXJnZXQpKX0scD1mPT57YyhmLCExKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZCxhKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIscCxhKX07cmV0dXJuIHIuZm9yRWFjaChzPT57IURMKHMpJiZzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKT09PW51bGwmJihzLnRhYkluZGV4PTApLChuLnVzZUdsb2JhbFRhcmdldD93aW5kb3c6cykuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLG8sYSkscy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdT0+TUwodSxhKSxhKX0pLGl9ZnVuY3Rpb24gRkwoZSl7cmV0dXJuIGU9PT0ieCJ8fGU9PT0ieSI/VXRbZV0/bnVsbDooVXRbZV09ITAsKCk9PntVdFtlXT0hMX0pOlV0Lnh8fFV0Lnk/bnVsbDooVXQueD1VdC55PSEwLCgpPT57VXQueD1VdC55PSExfSl9Y29uc3QgU0k9bmV3IFNldChbIndpZHRoIiwiaGVpZ2h0IiwidG9wIiwibGVmdCIsInJpZ2h0IiwiYm90dG9tIiwuLi5wYV0pO2xldCBPbztmdW5jdGlvbiBVTCgpe09vPXZvaWQgMH1jb25zdCBlbj17bm93OigpPT4oT289PT12b2lkIDAmJmVuLnNldChEZS5pc1Byb2Nlc3Npbmd8fExPLnVzZU1hbnVhbFRpbWluZz9EZS50aW1lc3RhbXA6cGVyZm9ybWFuY2Uubm93KCkpLE9vKSxzZXQ6ZT0+e09vPWUscXVldWVNaWNyb3Rhc2soVUwpfX07ZnVuY3Rpb24gR2goZSx0KXtlLmluZGV4T2YodCk9PT0tMSYmZS5wdXNoKHQpfWZ1bmN0aW9uIHFoKGUsdCl7Y29uc3Qgbj1lLmluZGV4T2YodCk7bj4tMSYmZS5zcGxpY2UobiwxKX1jbGFzcyBWaHtjb25zdHJ1Y3Rvcigpe3RoaXMuc3Vic2NyaXB0aW9ucz1bXX1hZGQodCl7cmV0dXJuIEdoKHRoaXMuc3Vic2NyaXB0aW9ucyx0KSwoKT0+cWgodGhpcy5zdWJzY3JpcHRpb25zLHQpfW5vdGlmeSh0LG4scil7Y29uc3QgYT10aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO2lmKGEpaWYoYT09PTEpdGhpcy5zdWJzY3JpcHRpb25zWzBdKHQsbixyKTtlbHNlIGZvcihsZXQgaT0wO2k8YTtpKyspe2NvbnN0IG89dGhpcy5zdWJzY3JpcHRpb25zW2ldO28mJm8odCxuLHIpfX1nZXRTaXplKCl7cmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGh9Y2xlYXIoKXt0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoPTB9fWZ1bmN0aW9uIHdJKGUsdCl7cmV0dXJuIHQ/ZSooMWUzL3QpOjB9Y29uc3QgcHY9MzAsQkw9ZT0+IWlzTmFOKHBhcnNlRmxvYXQoZSkpO2NsYXNzICRMe2NvbnN0cnVjdG9yKHQsbj17fSl7dGhpcy52ZXJzaW9uPSIxMS4xOC4yIix0aGlzLmNhblRyYWNrVmVsb2NpdHk9bnVsbCx0aGlzLmV2ZW50cz17fSx0aGlzLnVwZGF0ZUFuZE5vdGlmeT0ocixhPSEwKT0+e2NvbnN0IGk9ZW4ubm93KCk7dGhpcy51cGRhdGVkQXQhPT1pJiZ0aGlzLnNldFByZXZGcmFtZVZhbHVlKCksdGhpcy5wcmV2PXRoaXMuY3VycmVudCx0aGlzLnNldEN1cnJlbnQociksdGhpcy5jdXJyZW50IT09dGhpcy5wcmV2JiZ0aGlzLmV2ZW50cy5jaGFuZ2UmJnRoaXMuZXZlbnRzLmNoYW5nZS5ub3RpZnkodGhpcy5jdXJyZW50KSxhJiZ0aGlzLmV2ZW50cy5yZW5kZXJSZXF1ZXN0JiZ0aGlzLmV2ZW50cy5yZW5kZXJSZXF1ZXN0Lm5vdGlmeSh0aGlzLmN1cnJlbnQpfSx0aGlzLmhhc0FuaW1hdGVkPSExLHRoaXMuc2V0Q3VycmVudCh0KSx0aGlzLm93bmVyPW4ub3duZXJ9c2V0Q3VycmVudCh0KXt0aGlzLmN1cnJlbnQ9dCx0aGlzLnVwZGF0ZWRBdD1lbi5ub3coKSx0aGlzLmNhblRyYWNrVmVsb2NpdHk9PT1udWxsJiZ0IT09dm9pZCAwJiYodGhpcy5jYW5UcmFja1ZlbG9jaXR5PUJMKHRoaXMuY3VycmVudCkpfXNldFByZXZGcmFtZVZhbHVlKHQ9dGhpcy5jdXJyZW50KXt0aGlzLnByZXZGcmFtZVZhbHVlPXQsdGhpcy5wcmV2VXBkYXRlZEF0PXRoaXMudXBkYXRlZEF0fW9uQ2hhbmdlKHQpe3JldHVybiB0aGlzLm9uKCJjaGFuZ2UiLHQpfW9uKHQsbil7dGhpcy5ldmVudHNbdF18fCh0aGlzLmV2ZW50c1t0XT1uZXcgVmgpO2NvbnN0IHI9dGhpcy5ldmVudHNbdF0uYWRkKG4pO3JldHVybiB0PT09ImNoYW5nZSI/KCk9PntyKCksbWUucmVhZCgoKT0+e3RoaXMuZXZlbnRzLmNoYW5nZS5nZXRTaXplKCl8fHRoaXMuc3RvcCgpfSl9OnJ9Y2xlYXJMaXN0ZW5lcnMoKXtmb3IoY29uc3QgdCBpbiB0aGlzLmV2ZW50cyl0aGlzLmV2ZW50c1t0XS5jbGVhcigpfWF0dGFjaCh0LG4pe3RoaXMucGFzc2l2ZUVmZmVjdD10LHRoaXMuc3RvcFBhc3NpdmVFZmZlY3Q9bn1zZXQodCxuPSEwKXshbnx8IXRoaXMucGFzc2l2ZUVmZmVjdD90aGlzLnVwZGF0ZUFuZE5vdGlmeSh0LG4pOnRoaXMucGFzc2l2ZUVmZmVjdCh0LHRoaXMudXBkYXRlQW5kTm90aWZ5KX1zZXRXaXRoVmVsb2NpdHkodCxuLHIpe3RoaXMuc2V0KG4pLHRoaXMucHJldj12b2lkIDAsdGhpcy5wcmV2RnJhbWVWYWx1ZT10LHRoaXMucHJldlVwZGF0ZWRBdD10aGlzLnVwZGF0ZWRBdC1yfWp1bXAodCxuPSEwKXt0aGlzLnVwZGF0ZUFuZE5vdGlmeSh0KSx0aGlzLnByZXY9dCx0aGlzLnByZXZVcGRhdGVkQXQ9dGhpcy5wcmV2RnJhbWVWYWx1ZT12b2lkIDAsbiYmdGhpcy5zdG9wKCksdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCYmdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCgpfWdldCgpe3JldHVybiB0aGlzLmN1cnJlbnR9Z2V0UHJldmlvdXMoKXtyZXR1cm4gdGhpcy5wcmV2fWdldFZlbG9jaXR5KCl7Y29uc3QgdD1lbi5ub3coKTtpZighdGhpcy5jYW5UcmFja1ZlbG9jaXR5fHx0aGlzLnByZXZGcmFtZVZhbHVlPT09dm9pZCAwfHx0LXRoaXMudXBkYXRlZEF0PnB2KXJldHVybiAwO2NvbnN0IG49TWF0aC5taW4odGhpcy51cGRhdGVkQXQtdGhpcy5wcmV2VXBkYXRlZEF0LHB2KTtyZXR1cm4gd0kocGFyc2VGbG9hdCh0aGlzLmN1cnJlbnQpLXBhcnNlRmxvYXQodGhpcy5wcmV2RnJhbWVWYWx1ZSksbil9c3RhcnQodCl7cmV0dXJuIHRoaXMuc3RvcCgpLG5ldyBQcm9taXNlKG49Pnt0aGlzLmhhc0FuaW1hdGVkPSEwLHRoaXMuYW5pbWF0aW9uPXQobiksdGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQmJnRoaXMuZXZlbnRzLmFuaW1hdGlvblN0YXJ0Lm5vdGlmeSgpfSkudGhlbigoKT0+e3RoaXMuZXZlbnRzLmFuaW1hdGlvbkNvbXBsZXRlJiZ0aGlzLmV2ZW50cy5hbmltYXRpb25Db21wbGV0ZS5ub3RpZnkoKSx0aGlzLmNsZWFyQW5pbWF0aW9uKCl9KX1zdG9wKCl7dGhpcy5hbmltYXRpb24mJih0aGlzLmFuaW1hdGlvbi5zdG9wKCksdGhpcy5ldmVudHMuYW5pbWF0aW9uQ2FuY2VsJiZ0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwubm90aWZ5KCkpLHRoaXMuY2xlYXJBbmltYXRpb24oKX1pc0FuaW1hdGluZygpe3JldHVybiEhdGhpcy5hbmltYXRpb259Y2xlYXJBbmltYXRpb24oKXtkZWxldGUgdGhpcy5hbmltYXRpb259ZGVzdHJveSgpe3RoaXMuY2xlYXJMaXN0ZW5lcnMoKSx0aGlzLnN0b3AoKSx0aGlzLnN0b3BQYXNzaXZlRWZmZWN0JiZ0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KCl9fWZ1bmN0aW9uIGtpKGUsdCl7cmV0dXJuIG5ldyAkTChlLHQpfWZ1bmN0aW9uIHpMKGUsdCxuKXtlLmhhc1ZhbHVlKHQpP2UuZ2V0VmFsdWUodCkuc2V0KG4pOmUuYWRkVmFsdWUodCxraShuKSl9ZnVuY3Rpb24gakwoZSx0KXtjb25zdCBuPVVzKGUsdCk7bGV0e3RyYW5zaXRpb25FbmQ6cj17fSx0cmFuc2l0aW9uOmE9e30sLi4uaX09bnx8e307aT17Li4uaSwuLi5yfTtmb3IoY29uc3QgbyBpbiBpKXtjb25zdCBzPWVMKGlbb10pO3pMKGUsbyxzKX19ZnVuY3Rpb24gR0woZSl7cmV0dXJuISEoR2UoZSkmJmUuYWRkKX1mdW5jdGlvbiBabShlLHQpe2NvbnN0IG49ZS5nZXRWYWx1ZSgid2lsbENoYW5nZSIpO2lmKEdMKG4pKXJldHVybiBuLmFkZCh0KX1mdW5jdGlvbiBUSShlKXtyZXR1cm4gZS5wcm9wc1tKX119Y29uc3Qga0k9KGUsdCxuKT0+KCgoMS0zKm4rMyp0KSplKygzKm4tNip0KSkqZSszKnQpKmUscUw9MWUtNyxWTD0xMjtmdW5jdGlvbiBITChlLHQsbixyLGEpe2xldCBpLG8scz0wO2RvIG89dCsobi10KS8yLGk9a0kobyxyLGEpLWUsaT4wP249bzp0PW87d2hpbGUoTWF0aC5hYnMoaSk+cUwmJisrczxWTCk7cmV0dXJuIG99ZnVuY3Rpb24gRmkoZSx0LG4scil7aWYoZT09PXQmJm49PT1yKXJldHVybiBndDtjb25zdCBhPWk9PkhMKGksMCwxLGUsbik7cmV0dXJuIGk9Pmk9PT0wfHxpPT09MT9pOmtJKGEoaSksdCxyKX1jb25zdCBBST1lPT50PT50PD0uNT9lKDIqdCkvMjooMi1lKDIqKDEtdCkpKS8yLHhJPWU9PnQ9PjEtZSgxLXQpLFJJPUZpKC4zMywxLjUzLC42OSwuOTkpLEhoPXhJKFJJKSxfST1BSShIaCksSUk9ZT0+KGUqPTIpPDE/LjUqSGgoZSk6LjUqKDItTWF0aC5wb3coMiwtMTAqKGUtMSkpKSxXaD1lPT4xLU1hdGguc2luKE1hdGguYWNvcyhlKSksTkk9eEkoV2gpLENJPUFJKFdoKSxPST1lPT4vXjBbXi5cc10rJC91LnRlc3QoZSk7ZnVuY3Rpb24gV0woZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIj9lPT09MDplIT09bnVsbD9lPT09Im5vbmUifHxlPT09IjAifHxPSShlKTohMH1jb25zdCBRYT1lPT5NYXRoLnJvdW5kKGUqMWU1KS8xZTUsWWg9Ly0/KD86XGQrKD86XC5cZCspP3xcLlxkKykvZ3U7ZnVuY3Rpb24gWUwoZSl7cmV0dXJuIGU9PW51bGx9Y29uc3QgS0w9L14oPzojW1xkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cKCg/Oi0/W1xkLl0rJT9bLFxzXSspezJ9LT9bXGQuXSslP1xzKig/OlssL11ccyopPyg/OlxiXGQrKD86XC5cZCspP3xcLlxkKyk/JT9cKSkkL2l1LEtoPShlLHQpPT5uPT4hISh0eXBlb2Ygbj09InN0cmluZyImJktMLnRlc3QobikmJm4uc3RhcnRzV2l0aChlKXx8dCYmIVlMKG4pJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KSksTEk9KGUsdCxuKT0+cj0+e2lmKHR5cGVvZiByIT0ic3RyaW5nIilyZXR1cm4gcjtjb25zdFthLGksbyxzXT1yLm1hdGNoKFloKTtyZXR1cm57W2VdOnBhcnNlRmxvYXQoYSksW3RdOnBhcnNlRmxvYXQoaSksW25dOnBhcnNlRmxvYXQobyksYWxwaGE6cyE9PXZvaWQgMD9wYXJzZUZsb2F0KHMpOjF9fSxYTD1lPT5ibigwLDI1NSxlKSx4bD17Li4uZmEsdHJhbnNmb3JtOmU9Pk1hdGgucm91bmQoWEwoZSkpfSxpcj17dGVzdDpLaCgicmdiIiwicmVkIikscGFyc2U6TEkoInJlZCIsImdyZWVuIiwiYmx1ZSIpLHRyYW5zZm9ybTooe3JlZDplLGdyZWVuOnQsYmx1ZTpuLGFscGhhOnI9MX0pPT4icmdiYSgiK3hsLnRyYW5zZm9ybShlKSsiLCAiK3hsLnRyYW5zZm9ybSh0KSsiLCAiK3hsLnRyYW5zZm9ybShuKSsiLCAiK1FhKFRpLnRyYW5zZm9ybShyKSkrIikifTtmdW5jdGlvbiBaTChlKXtsZXQgdD0iIixuPSIiLHI9IiIsYT0iIjtyZXR1cm4gZS5sZW5ndGg+NT8odD1lLnN1YnN0cmluZygxLDMpLG49ZS5zdWJzdHJpbmcoMyw1KSxyPWUuc3Vic3RyaW5nKDUsNyksYT1lLnN1YnN0cmluZyg3LDkpKToodD1lLnN1YnN0cmluZygxLDIpLG49ZS5zdWJzdHJpbmcoMiwzKSxyPWUuc3Vic3RyaW5nKDMsNCksYT1lLnN1YnN0cmluZyg0LDUpLHQrPXQsbis9bixyKz1yLGErPWEpLHtyZWQ6cGFyc2VJbnQodCwxNiksZ3JlZW46cGFyc2VJbnQobiwxNiksYmx1ZTpwYXJzZUludChyLDE2KSxhbHBoYTphP3BhcnNlSW50KGEsMTYpLzI1NToxfX1jb25zdCBRbT17dGVzdDpLaCgiIyIpLHBhcnNlOlpMLHRyYW5zZm9ybTppci50cmFuc2Zvcm19LEJyPXt0ZXN0OktoKCJoc2wiLCJodWUiKSxwYXJzZTpMSSgiaHVlIiwic2F0dXJhdGlvbiIsImxpZ2h0bmVzcyIpLHRyYW5zZm9ybTooe2h1ZTplLHNhdHVyYXRpb246dCxsaWdodG5lc3M6bixhbHBoYTpyPTF9KT0+ImhzbGEoIitNYXRoLnJvdW5kKGUpKyIsICIrSnQudHJhbnNmb3JtKFFhKHQpKSsiLCAiK0p0LnRyYW5zZm9ybShRYShuKSkrIiwgIitRYShUaS50cmFuc2Zvcm0ocikpKyIpIn0semU9e3Rlc3Q6ZT0+aXIudGVzdChlKXx8UW0udGVzdChlKXx8QnIudGVzdChlKSxwYXJzZTplPT5pci50ZXN0KGUpP2lyLnBhcnNlKGUpOkJyLnRlc3QoZSk/QnIucGFyc2UoZSk6UW0ucGFyc2UoZSksdHJhbnNmb3JtOmU9PnR5cGVvZiBlPT0ic3RyaW5nIj9lOmUuaGFzT3duUHJvcGVydHkoInJlZCIpP2lyLnRyYW5zZm9ybShlKTpCci50cmFuc2Zvcm0oZSl9LFFMPS8oPzojW1xkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cKCg/Oi0/W1xkLl0rJT9bLFxzXSspezJ9LT9bXGQuXSslP1xzKig/OlssL11ccyopPyg/OlxiXGQrKD86XC5cZCspP3xcLlxkKyk/JT9cKSkvZ2l1O2Z1bmN0aW9uIEpMKGUpe3ZhciB0LG47cmV0dXJuIGlzTmFOKGUpJiZ0eXBlb2YgZT09InN0cmluZyImJigoKHQ9ZS5tYXRjaChZaCkpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5sZW5ndGgpfHwwKSsoKChuPWUubWF0Y2goUUwpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ubGVuZ3RoKXx8MCk+MH1jb25zdCBEST0ibnVtYmVyIixNST0iY29sb3IiLGVEPSJ2YXIiLHREPSJ2YXIoIixmdj0iJHt9IixuRD0vdmFyXHMqXChccyotLSg/Oltcdy1dK1xzKnxbXHctXStccyosKD86XHMqW14pKFxzXXxccypcKCg/OlteKShdfFwoW14pKF0qXCkpKlwpKStccyopXCl8I1tcZGEtZl17Myw4fXwoPzpyZ2J8aHNsKWE/XCgoPzotP1tcZC5dKyU/Wyxcc10rKXsyfS0/W1xkLl0rJT9ccyooPzpbLC9dXHMqKT8oPzpcYlxkKyg/OlwuXGQrKT98XC5cZCspPyU/XCl8LT8oPzpcZCsoPzpcLlxkKyk/fFwuXGQrKS9naXU7ZnVuY3Rpb24gQWkoZSl7Y29uc3QgdD1lLnRvU3RyaW5nKCksbj1bXSxyPXtjb2xvcjpbXSxudW1iZXI6W10sdmFyOltdfSxhPVtdO2xldCBpPTA7Y29uc3Qgcz10LnJlcGxhY2UobkQsbD0+KHplLnRlc3QobCk/KHIuY29sb3IucHVzaChpKSxhLnB1c2goTUkpLG4ucHVzaCh6ZS5wYXJzZShsKSkpOmwuc3RhcnRzV2l0aCh0RCk/KHIudmFyLnB1c2goaSksYS5wdXNoKGVEKSxuLnB1c2gobCkpOihyLm51bWJlci5wdXNoKGkpLGEucHVzaChESSksbi5wdXNoKHBhcnNlRmxvYXQobCkpKSwrK2ksZnYpKS5zcGxpdChmdik7cmV0dXJue3ZhbHVlczpuLHNwbGl0OnMsaW5kZXhlczpyLHR5cGVzOmF9fWZ1bmN0aW9uIFBJKGUpe3JldHVybiBBaShlKS52YWx1ZXN9ZnVuY3Rpb24gRkkoZSl7Y29uc3R7c3BsaXQ6dCx0eXBlczpufT1BaShlKSxyPXQubGVuZ3RoO3JldHVybiBhPT57bGV0IGk9IiI7Zm9yKGxldCBvPTA7bzxyO28rKylpZihpKz10W29dLGFbb10hPT12b2lkIDApe2NvbnN0IHM9bltvXTtzPT09REk/aSs9UWEoYVtvXSk6cz09PU1JP2krPXplLnRyYW5zZm9ybShhW29dKTppKz1hW29dfXJldHVybiBpfX1jb25zdCByRD1lPT50eXBlb2YgZT09Im51bWJlciI/MDplO2Z1bmN0aW9uIGFEKGUpe2NvbnN0IHQ9UEkoZSk7cmV0dXJuIEZJKGUpKHQubWFwKHJEKSl9Y29uc3Qgem49e3Rlc3Q6SkwscGFyc2U6UEksY3JlYXRlVHJhbnNmb3JtZXI6RkksZ2V0QW5pbWF0YWJsZU5vbmU6YUR9LGlEPW5ldyBTZXQoWyJicmlnaHRuZXNzIiwiY29udHJhc3QiLCJzYXR1cmF0ZSIsIm9wYWNpdHkiXSk7ZnVuY3Rpb24gb0QoZSl7Y29uc3RbdCxuXT1lLnNsaWNlKDAsLTEpLnNwbGl0KCIoIik7aWYodD09PSJkcm9wLXNoYWRvdyIpcmV0dXJuIGU7Y29uc3Rbcl09bi5tYXRjaChZaCl8fFtdO2lmKCFyKXJldHVybiBlO2NvbnN0IGE9bi5yZXBsYWNlKHIsIiIpO2xldCBpPWlELmhhcyh0KT8xOjA7cmV0dXJuIHIhPT1uJiYoaSo9MTAwKSx0KyIoIitpK2ErIikifWNvbnN0IHNEPS9cYihbYS16LV0qKVwoLio/XCkvZ3UsSm09ey4uLnpuLGdldEFuaW1hdGFibGVOb25lOmU9Pntjb25zdCB0PWUubWF0Y2goc0QpO3JldHVybiB0P3QubWFwKG9EKS5qb2luKCIgIik6ZX19LGxEPXsuLi5MaCxjb2xvcjp6ZSxiYWNrZ3JvdW5kQ29sb3I6emUsb3V0bGluZUNvbG9yOnplLGZpbGw6emUsc3Ryb2tlOnplLGJvcmRlckNvbG9yOnplLGJvcmRlclRvcENvbG9yOnplLGJvcmRlclJpZ2h0Q29sb3I6emUsYm9yZGVyQm90dG9tQ29sb3I6emUsYm9yZGVyTGVmdENvbG9yOnplLGZpbHRlcjpKbSxXZWJraXRGaWx0ZXI6Sm19LFhoPWU9PmxEW2VdO2Z1bmN0aW9uIFVJKGUsdCl7bGV0IG49WGgoZSk7cmV0dXJuIG4hPT1KbSYmKG49em4pLG4uZ2V0QW5pbWF0YWJsZU5vbmU/bi5nZXRBbmltYXRhYmxlTm9uZSh0KTp2b2lkIDB9Y29uc3QgdUQ9bmV3IFNldChbImF1dG8iLCJub25lIiwiMCJdKTtmdW5jdGlvbiBjRChlLHQsbil7bGV0IHI9MCxhO2Zvcig7cjxlLmxlbmd0aCYmIWE7KXtjb25zdCBpPWVbcl07dHlwZW9mIGk9PSJzdHJpbmciJiYhdUQuaGFzKGkpJiZBaShpKS52YWx1ZXMubGVuZ3RoJiYoYT1lW3JdKSxyKyt9aWYoYSYmbilmb3IoY29uc3QgaSBvZiB0KWVbaV09VUkobixhKX1jb25zdCBtdj1lPT5lPT09ZmF8fGU9PT1ILGd2PShlLHQpPT5wYXJzZUZsb2F0KGUuc3BsaXQoIiwgIilbdF0pLGh2PShlLHQpPT4obix7dHJhbnNmb3JtOnJ9KT0+e2lmKHI9PT0ibm9uZSJ8fCFyKXJldHVybiAwO2NvbnN0IGE9ci5tYXRjaCgvXm1hdHJpeDNkXCgoLispXCkkL3UpO2lmKGEpcmV0dXJuIGd2KGFbMV0sdCk7e2NvbnN0IGk9ci5tYXRjaCgvXm1hdHJpeFwoKC4rKVwpJC91KTtyZXR1cm4gaT9ndihpWzFdLGUpOjB9fSxkRD1uZXcgU2V0KFsieCIsInkiLCJ6Il0pLHBEPXBhLmZpbHRlcihlPT4hZEQuaGFzKGUpKTtmdW5jdGlvbiBmRChlKXtjb25zdCB0PVtdO3JldHVybiBwRC5mb3JFYWNoKG49Pntjb25zdCByPWUuZ2V0VmFsdWUobik7ciE9PXZvaWQgMCYmKHQucHVzaChbbixyLmdldCgpXSksci5zZXQobi5zdGFydHNXaXRoKCJzY2FsZSIpPzE6MCkpfSksdH1jb25zdCBzYT17d2lkdGg6KHt4OmV9LHtwYWRkaW5nTGVmdDp0PSIwIixwYWRkaW5nUmlnaHQ6bj0iMCJ9KT0+ZS5tYXgtZS5taW4tcGFyc2VGbG9hdCh0KS1wYXJzZUZsb2F0KG4pLGhlaWdodDooe3k6ZX0se3BhZGRpbmdUb3A6dD0iMCIscGFkZGluZ0JvdHRvbTpuPSIwIn0pPT5lLm1heC1lLm1pbi1wYXJzZUZsb2F0KHQpLXBhcnNlRmxvYXQobiksdG9wOihlLHt0b3A6dH0pPT5wYXJzZUZsb2F0KHQpLGxlZnQ6KGUse2xlZnQ6dH0pPT5wYXJzZUZsb2F0KHQpLGJvdHRvbTooe3k6ZX0se3RvcDp0fSk9PnBhcnNlRmxvYXQodCkrKGUubWF4LWUubWluKSxyaWdodDooe3g6ZX0se2xlZnQ6dH0pPT5wYXJzZUZsb2F0KHQpKyhlLm1heC1lLm1pbikseDpodig0LDEzKSx5Omh2KDUsMTQpfTtzYS50cmFuc2xhdGVYPXNhLng7c2EudHJhbnNsYXRlWT1zYS55O2NvbnN0IHVyPW5ldyBTZXQ7bGV0IGVnPSExLHRnPSExO2Z1bmN0aW9uIEJJKCl7aWYodGcpe2NvbnN0IGU9QXJyYXkuZnJvbSh1cikuZmlsdGVyKHI9PnIubmVlZHNNZWFzdXJlbWVudCksdD1uZXcgU2V0KGUubWFwKHI9PnIuZWxlbWVudCkpLG49bmV3IE1hcDt0LmZvckVhY2gocj0+e2NvbnN0IGE9ZkQocik7YS5sZW5ndGgmJihuLnNldChyLGEpLHIucmVuZGVyKCkpfSksZS5mb3JFYWNoKHI9PnIubWVhc3VyZUluaXRpYWxTdGF0ZSgpKSx0LmZvckVhY2gocj0+e3IucmVuZGVyKCk7Y29uc3QgYT1uLmdldChyKTthJiZhLmZvckVhY2goKFtpLG9dKT0+e3ZhciBzOyhzPXIuZ2V0VmFsdWUoaSkpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5zZXQobyl9KX0pLGUuZm9yRWFjaChyPT5yLm1lYXN1cmVFbmRTdGF0ZSgpKSxlLmZvckVhY2gocj0+e3Iuc3VzcGVuZGVkU2Nyb2xsWSE9PXZvaWQgMCYmd2luZG93LnNjcm9sbFRvKDAsci5zdXNwZW5kZWRTY3JvbGxZKX0pfXRnPSExLGVnPSExLHVyLmZvckVhY2goZT0+ZS5jb21wbGV0ZSgpKSx1ci5jbGVhcigpfWZ1bmN0aW9uICRJKCl7dXIuZm9yRWFjaChlPT57ZS5yZWFkS2V5ZnJhbWVzKCksZS5uZWVkc01lYXN1cmVtZW50JiYodGc9ITApfSl9ZnVuY3Rpb24gbUQoKXskSSgpLEJJKCl9Y2xhc3MgWmh7Y29uc3RydWN0b3IodCxuLHIsYSxpLG89ITEpe3RoaXMuaXNDb21wbGV0ZT0hMSx0aGlzLmlzQXN5bmM9ITEsdGhpcy5uZWVkc01lYXN1cmVtZW50PSExLHRoaXMuaXNTY2hlZHVsZWQ9ITEsdGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzPVsuLi50XSx0aGlzLm9uQ29tcGxldGU9bix0aGlzLm5hbWU9cix0aGlzLm1vdGlvblZhbHVlPWEsdGhpcy5lbGVtZW50PWksdGhpcy5pc0FzeW5jPW99c2NoZWR1bGVSZXNvbHZlKCl7dGhpcy5pc1NjaGVkdWxlZD0hMCx0aGlzLmlzQXN5bmM/KHVyLmFkZCh0aGlzKSxlZ3x8KGVnPSEwLG1lLnJlYWQoJEkpLG1lLnJlc29sdmVLZXlmcmFtZXMoQkkpKSk6KHRoaXMucmVhZEtleWZyYW1lcygpLHRoaXMuY29tcGxldGUoKSl9cmVhZEtleWZyYW1lcygpe2NvbnN0e3VucmVzb2x2ZWRLZXlmcmFtZXM6dCxuYW1lOm4sZWxlbWVudDpyLG1vdGlvblZhbHVlOmF9PXRoaXM7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspaWYodFtpXT09PW51bGwpaWYoaT09PTApe2NvbnN0IG89YT09bnVsbD92b2lkIDA6YS5nZXQoKSxzPXRbdC5sZW5ndGgtMV07aWYobyE9PXZvaWQgMCl0WzBdPW87ZWxzZSBpZihyJiZuKXtjb25zdCBsPXIucmVhZFZhbHVlKG4scyk7bCE9bnVsbCYmKHRbMF09bCl9dFswXT09PXZvaWQgMCYmKHRbMF09cyksYSYmbz09PXZvaWQgMCYmYS5zZXQodFswXSl9ZWxzZSB0W2ldPXRbaS0xXX1zZXRGaW5hbEtleWZyYW1lKCl7fW1lYXN1cmVJbml0aWFsU3RhdGUoKXt9cmVuZGVyRW5kU3R5bGVzKCl7fW1lYXN1cmVFbmRTdGF0ZSgpe31jb21wbGV0ZSgpe3RoaXMuaXNDb21wbGV0ZT0hMCx0aGlzLm9uQ29tcGxldGUodGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzLHRoaXMuZmluYWxLZXlmcmFtZSksdXIuZGVsZXRlKHRoaXMpfWNhbmNlbCgpe3RoaXMuaXNDb21wbGV0ZXx8KHRoaXMuaXNTY2hlZHVsZWQ9ITEsdXIuZGVsZXRlKHRoaXMpKX1yZXN1bWUoKXt0aGlzLmlzQ29tcGxldGV8fHRoaXMuc2NoZWR1bGVSZXNvbHZlKCl9fWNvbnN0IHpJPWU9Pi9eLT8oPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSQvdS50ZXN0KGUpLGdEPS9edmFyXCgtLSg/OihbXHctXSspfChbXHctXSspLCA/KFthLXpBLVpcZCAoKSUjLiwtXSspKVwpL3U7ZnVuY3Rpb24gaEQoZSl7Y29uc3QgdD1nRC5leGVjKGUpO2lmKCF0KXJldHVyblssXTtjb25zdFssbixyLGFdPXQ7cmV0dXJuW2AtLSR7bj8/cn1gLGFdfWZ1bmN0aW9uIGpJKGUsdCxuPTEpe2NvbnN0W3IsYV09aEQoZSk7aWYoIXIpcmV0dXJuO2NvbnN0IGk9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZShyKTtpZihpKXtjb25zdCBvPWkudHJpbSgpO3JldHVybiB6SShvKT9wYXJzZUZsb2F0KG8pOm99cmV0dXJuIE9oKGEpP2pJKGEsdCxuKzEpOmF9Y29uc3QgR0k9ZT0+dD0+dC50ZXN0KGUpLGJEPXt0ZXN0OmU9PmU9PT0iYXV0byIscGFyc2U6ZT0+ZX0scUk9W2ZhLEgsSnQsU24sb0wsaUwsYkRdLGJ2PWU9PnFJLmZpbmQoR0koZSkpO2NsYXNzIFZJIGV4dGVuZHMgWmh7Y29uc3RydWN0b3IodCxuLHIsYSxpKXtzdXBlcih0LG4scixhLGksITApfXJlYWRLZXlmcmFtZXMoKXtjb25zdHt1bnJlc29sdmVkS2V5ZnJhbWVzOnQsZWxlbWVudDpuLG5hbWU6cn09dGhpcztpZighbnx8IW4uY3VycmVudClyZXR1cm47c3VwZXIucmVhZEtleWZyYW1lcygpO2ZvcihsZXQgbD0wO2w8dC5sZW5ndGg7bCsrKXtsZXQgdT10W2xdO2lmKHR5cGVvZiB1PT0ic3RyaW5nIiYmKHU9dS50cmltKCksT2godSkpKXtjb25zdCBjPWpJKHUsbi5jdXJyZW50KTtjIT09dm9pZCAwJiYodFtsXT1jKSxsPT09dC5sZW5ndGgtMSYmKHRoaXMuZmluYWxLZXlmcmFtZT11KX19aWYodGhpcy5yZXNvbHZlTm9uZUtleWZyYW1lcygpLCFTSS5oYXMocil8fHQubGVuZ3RoIT09MilyZXR1cm47Y29uc3RbYSxpXT10LG89YnYoYSkscz1idihpKTtpZihvIT09cylpZihtdihvKSYmbXYocykpZm9yKGxldCBsPTA7bDx0Lmxlbmd0aDtsKyspe2NvbnN0IHU9dFtsXTt0eXBlb2YgdT09InN0cmluZyImJih0W2xdPXBhcnNlRmxvYXQodSkpfWVsc2UgdGhpcy5uZWVkc01lYXN1cmVtZW50PSEwfXJlc29sdmVOb25lS2V5ZnJhbWVzKCl7Y29uc3R7dW5yZXNvbHZlZEtleWZyYW1lczp0LG5hbWU6bn09dGhpcyxyPVtdO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKVdMKHRbYV0pJiZyLnB1c2goYSk7ci5sZW5ndGgmJmNEKHQscixuKX1tZWFzdXJlSW5pdGlhbFN0YXRlKCl7Y29uc3R7ZWxlbWVudDp0LHVucmVzb2x2ZWRLZXlmcmFtZXM6bixuYW1lOnJ9PXRoaXM7aWYoIXR8fCF0LmN1cnJlbnQpcmV0dXJuO3I9PT0iaGVpZ2h0IiYmKHRoaXMuc3VzcGVuZGVkU2Nyb2xsWT13aW5kb3cucGFnZVlPZmZzZXQpLHRoaXMubWVhc3VyZWRPcmlnaW49c2Fbcl0odC5tZWFzdXJlVmlld3BvcnRCb3goKSx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LmN1cnJlbnQpKSxuWzBdPXRoaXMubWVhc3VyZWRPcmlnaW47Y29uc3QgYT1uW24ubGVuZ3RoLTFdO2EhPT12b2lkIDAmJnQuZ2V0VmFsdWUocixhKS5qdW1wKGEsITEpfW1lYXN1cmVFbmRTdGF0ZSgpe3ZhciB0O2NvbnN0e2VsZW1lbnQ6bixuYW1lOnIsdW5yZXNvbHZlZEtleWZyYW1lczphfT10aGlzO2lmKCFufHwhbi5jdXJyZW50KXJldHVybjtjb25zdCBpPW4uZ2V0VmFsdWUocik7aSYmaS5qdW1wKHRoaXMubWVhc3VyZWRPcmlnaW4sITEpO2NvbnN0IG89YS5sZW5ndGgtMSxzPWFbb107YVtvXT1zYVtyXShuLm1lYXN1cmVWaWV3cG9ydEJveCgpLHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG4uY3VycmVudCkpLHMhPT1udWxsJiZ0aGlzLmZpbmFsS2V5ZnJhbWU9PT12b2lkIDAmJih0aGlzLmZpbmFsS2V5ZnJhbWU9cyksISgodD10aGlzLnJlbW92ZWRUcmFuc2Zvcm1zKT09PW51bGx8fHQ9PT12b2lkIDApJiZ0Lmxlbmd0aCYmdGhpcy5yZW1vdmVkVHJhbnNmb3Jtcy5mb3JFYWNoKChbbCx1XSk9PntuLmdldFZhbHVlKGwpLnNldCh1KX0pLHRoaXMucmVzb2x2ZU5vbmVLZXlmcmFtZXMoKX19Y29uc3QgeXY9KGUsdCk9PnQ9PT0iekluZGV4Ij8hMTohISh0eXBlb2YgZT09Im51bWJlciJ8fEFycmF5LmlzQXJyYXkoZSl8fHR5cGVvZiBlPT0ic3RyaW5nIiYmKHpuLnRlc3QoZSl8fGU9PT0iMCIpJiYhZS5zdGFydHNXaXRoKCJ1cmwoIikpO2Z1bmN0aW9uIHlEKGUpe2NvbnN0IHQ9ZVswXTtpZihlLmxlbmd0aD09PTEpcmV0dXJuITA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspaWYoZVtuXSE9PXQpcmV0dXJuITB9ZnVuY3Rpb24gdkQoZSx0LG4scil7Y29uc3QgYT1lWzBdO2lmKGE9PT1udWxsKXJldHVybiExO2lmKHQ9PT0iZGlzcGxheSJ8fHQ9PT0idmlzaWJpbGl0eSIpcmV0dXJuITA7Y29uc3QgaT1lW2UubGVuZ3RoLTFdLG89eXYoYSx0KSxzPXl2KGksdCk7cmV0dXJuIW98fCFzPyExOnlEKGUpfHwobj09PSJzcHJpbmcifHwkaChuKSkmJnJ9Y29uc3QgRUQ9ZT0+ZSE9PW51bGw7ZnVuY3Rpb24gQnMoZSx7cmVwZWF0OnQscmVwZWF0VHlwZTpuPSJsb29wIn0scil7Y29uc3QgYT1lLmZpbHRlcihFRCksaT10JiZuIT09Imxvb3AiJiZ0JTI9PT0xPzA6YS5sZW5ndGgtMTtyZXR1cm4haXx8cj09PXZvaWQgMD9hW2ldOnJ9Y29uc3QgU0Q9NDA7Y2xhc3MgSEl7Y29uc3RydWN0b3Ioe2F1dG9wbGF5OnQ9ITAsZGVsYXk6bj0wLHR5cGU6cj0ia2V5ZnJhbWVzIixyZXBlYXQ6YT0wLHJlcGVhdERlbGF5Omk9MCxyZXBlYXRUeXBlOm89Imxvb3AiLC4uLnN9KXt0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmhhc0F0dGVtcHRlZFJlc29sdmU9ITEsdGhpcy5jcmVhdGVkQXQ9ZW4ubm93KCksdGhpcy5vcHRpb25zPXthdXRvcGxheTp0LGRlbGF5Om4sdHlwZTpyLHJlcGVhdDphLHJlcGVhdERlbGF5OmkscmVwZWF0VHlwZTpvLC4uLnN9LHRoaXMudXBkYXRlRmluaXNoZWRQcm9taXNlKCl9Y2FsY1N0YXJ0VGltZSgpe3JldHVybiB0aGlzLnJlc29sdmVkQXQ/dGhpcy5yZXNvbHZlZEF0LXRoaXMuY3JlYXRlZEF0PlNEP3RoaXMucmVzb2x2ZWRBdDp0aGlzLmNyZWF0ZWRBdDp0aGlzLmNyZWF0ZWRBdH1nZXQgcmVzb2x2ZWQoKXtyZXR1cm4hdGhpcy5fcmVzb2x2ZWQmJiF0aGlzLmhhc0F0dGVtcHRlZFJlc29sdmUmJm1EKCksdGhpcy5fcmVzb2x2ZWR9b25LZXlmcmFtZXNSZXNvbHZlZCh0LG4pe3RoaXMucmVzb2x2ZWRBdD1lbi5ub3coKSx0aGlzLmhhc0F0dGVtcHRlZFJlc29sdmU9ITA7Y29uc3R7bmFtZTpyLHR5cGU6YSx2ZWxvY2l0eTppLGRlbGF5Om8sb25Db21wbGV0ZTpzLG9uVXBkYXRlOmwsaXNHZW5lcmF0b3I6dX09dGhpcy5vcHRpb25zO2lmKCF1JiYhdkQodCxyLGEsaSkpaWYobyl0aGlzLm9wdGlvbnMuZHVyYXRpb249MDtlbHNle2wmJmwoQnModCx0aGlzLm9wdGlvbnMsbikpLHMmJnMoKSx0aGlzLnJlc29sdmVGaW5pc2hlZFByb21pc2UoKTtyZXR1cm59Y29uc3QgYz10aGlzLmluaXRQbGF5YmFjayh0LG4pO2MhPT0hMSYmKHRoaXMuX3Jlc29sdmVkPXtrZXlmcmFtZXM6dCxmaW5hbEtleWZyYW1lOm4sLi4uY30sdGhpcy5vblBvc3RSZXNvbHZlZCgpKX1vblBvc3RSZXNvbHZlZCgpe310aGVuKHQsbil7cmV0dXJuIHRoaXMuY3VycmVudEZpbmlzaGVkUHJvbWlzZS50aGVuKHQsbil9ZmxhdHRlbigpe3RoaXMub3B0aW9ucy50eXBlPSJrZXlmcmFtZXMiLHRoaXMub3B0aW9ucy5lYXNlPSJsaW5lYXIifXVwZGF0ZUZpbmlzaGVkUHJvbWlzZSgpe3RoaXMuY3VycmVudEZpbmlzaGVkUHJvbWlzZT1uZXcgUHJvbWlzZSh0PT57dGhpcy5yZXNvbHZlRmluaXNoZWRQcm9taXNlPXR9KX19Y29uc3QgeWU9KGUsdCxuKT0+ZSsodC1lKSpuO2Z1bmN0aW9uIFJsKGUsdCxuKXtyZXR1cm4gbjwwJiYobis9MSksbj4xJiYobi09MSksbjwxLzY/ZSsodC1lKSo2Km46bjwxLzI/dDpuPDIvMz9lKyh0LWUpKigyLzMtbikqNjplfWZ1bmN0aW9uIHdEKHtodWU6ZSxzYXR1cmF0aW9uOnQsbGlnaHRuZXNzOm4sYWxwaGE6cn0pe2UvPTM2MCx0Lz0xMDAsbi89MTAwO2xldCBhPTAsaT0wLG89MDtpZighdClhPWk9bz1uO2Vsc2V7Y29uc3Qgcz1uPC41P24qKDErdCk6bit0LW4qdCxsPTIqbi1zO2E9UmwobCxzLGUrMS8zKSxpPVJsKGwscyxlKSxvPVJsKGwscyxlLTEvMyl9cmV0dXJue3JlZDpNYXRoLnJvdW5kKGEqMjU1KSxncmVlbjpNYXRoLnJvdW5kKGkqMjU1KSxibHVlOk1hdGgucm91bmQobyoyNTUpLGFscGhhOnJ9fWZ1bmN0aW9uIHBzKGUsdCl7cmV0dXJuIG49Pm4+MD90OmV9Y29uc3QgX2w9KGUsdCxuKT0+e2NvbnN0IHI9ZSplLGE9bioodCp0LXIpK3I7cmV0dXJuIGE8MD8wOk1hdGguc3FydChhKX0sVEQ9W1FtLGlyLEJyXSxrRD1lPT5URC5maW5kKHQ9PnQudGVzdChlKSk7ZnVuY3Rpb24gdnYoZSl7Y29uc3QgdD1rRChlKTtpZighdClyZXR1cm4hMTtsZXQgbj10LnBhcnNlKGUpO3JldHVybiB0PT09QnImJihuPXdEKG4pKSxufWNvbnN0IEV2PShlLHQpPT57Y29uc3Qgbj12dihlKSxyPXZ2KHQpO2lmKCFufHwhcilyZXR1cm4gcHMoZSx0KTtjb25zdCBhPXsuLi5ufTtyZXR1cm4gaT0+KGEucmVkPV9sKG4ucmVkLHIucmVkLGkpLGEuZ3JlZW49X2wobi5ncmVlbixyLmdyZWVuLGkpLGEuYmx1ZT1fbChuLmJsdWUsci5ibHVlLGkpLGEuYWxwaGE9eWUobi5hbHBoYSxyLmFscGhhLGkpLGlyLnRyYW5zZm9ybShhKSl9LEFEPShlLHQpPT5uPT50KGUobikpLFVpPSguLi5lKT0+ZS5yZWR1Y2UoQUQpLG5nPW5ldyBTZXQoWyJub25lIiwiaGlkZGVuIl0pO2Z1bmN0aW9uIHhEKGUsdCl7cmV0dXJuIG5nLmhhcyhlKT9uPT5uPD0wP2U6dDpuPT5uPj0xP3Q6ZX1mdW5jdGlvbiBSRChlLHQpe3JldHVybiBuPT55ZShlLHQsbil9ZnVuY3Rpb24gUWgoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIj9SRDp0eXBlb2YgZT09InN0cmluZyI/T2goZSk/cHM6emUudGVzdChlKT9FdjpORDpBcnJheS5pc0FycmF5KGUpP1dJOnR5cGVvZiBlPT0ib2JqZWN0Ij96ZS50ZXN0KGUpP0V2Ol9EOnBzfWZ1bmN0aW9uIFdJKGUsdCl7Y29uc3Qgbj1bLi4uZV0scj1uLmxlbmd0aCxhPWUubWFwKChpLG8pPT5RaChpKShpLHRbb10pKTtyZXR1cm4gaT0+e2ZvcihsZXQgbz0wO288cjtvKyspbltvXT1hW29dKGkpO3JldHVybiBufX1mdW5jdGlvbiBfRChlLHQpe2NvbnN0IG49ey4uLmUsLi4udH0scj17fTtmb3IoY29uc3QgYSBpbiBuKWVbYV0hPT12b2lkIDAmJnRbYV0hPT12b2lkIDAmJihyW2FdPVFoKGVbYV0pKGVbYV0sdFthXSkpO3JldHVybiBhPT57Zm9yKGNvbnN0IGkgaW4gciluW2ldPXJbaV0oYSk7cmV0dXJuIG59fWZ1bmN0aW9uIElEKGUsdCl7dmFyIG47Y29uc3Qgcj1bXSxhPXtjb2xvcjowLHZhcjowLG51bWJlcjowfTtmb3IobGV0IGk9MDtpPHQudmFsdWVzLmxlbmd0aDtpKyspe2NvbnN0IG89dC50eXBlc1tpXSxzPWUuaW5kZXhlc1tvXVthW29dXSxsPShuPWUudmFsdWVzW3NdKSE9PW51bGwmJm4hPT12b2lkIDA/bjowO3JbaV09bCxhW29dKyt9cmV0dXJuIHJ9Y29uc3QgTkQ9KGUsdCk9Pntjb25zdCBuPXpuLmNyZWF0ZVRyYW5zZm9ybWVyKHQpLHI9QWkoZSksYT1BaSh0KTtyZXR1cm4gci5pbmRleGVzLnZhci5sZW5ndGg9PT1hLmluZGV4ZXMudmFyLmxlbmd0aCYmci5pbmRleGVzLmNvbG9yLmxlbmd0aD09PWEuaW5kZXhlcy5jb2xvci5sZW5ndGgmJnIuaW5kZXhlcy5udW1iZXIubGVuZ3RoPj1hLmluZGV4ZXMubnVtYmVyLmxlbmd0aD9uZy5oYXMoZSkmJiFhLnZhbHVlcy5sZW5ndGh8fG5nLmhhcyh0KSYmIXIudmFsdWVzLmxlbmd0aD94RChlLHQpOlVpKFdJKElEKHIsYSksYS52YWx1ZXMpLG4pOnBzKGUsdCl9O2Z1bmN0aW9uIFlJKGUsdCxuKXtyZXR1cm4gdHlwZW9mIGU9PSJudW1iZXIiJiZ0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIj95ZShlLHQsbik6UWgoZSkoZSx0KX1jb25zdCBDRD01O2Z1bmN0aW9uIEtJKGUsdCxuKXtjb25zdCByPU1hdGgubWF4KHQtQ0QsMCk7cmV0dXJuIHdJKG4tZShyKSx0LXIpfWNvbnN0IHdlPXtzdGlmZm5lc3M6MTAwLGRhbXBpbmc6MTAsbWFzczoxLHZlbG9jaXR5OjAsZHVyYXRpb246ODAwLGJvdW5jZTouMyx2aXN1YWxEdXJhdGlvbjouMyxyZXN0U3BlZWQ6e2dyYW51bGFyOi4wMSxkZWZhdWx0OjJ9LHJlc3REZWx0YTp7Z3JhbnVsYXI6LjAwNSxkZWZhdWx0Oi41fSxtaW5EdXJhdGlvbjouMDEsbWF4RHVyYXRpb246MTAsbWluRGFtcGluZzouMDUsbWF4RGFtcGluZzoxfSxJbD0uMDAxO2Z1bmN0aW9uIE9EKHtkdXJhdGlvbjplPXdlLmR1cmF0aW9uLGJvdW5jZTp0PXdlLmJvdW5jZSx2ZWxvY2l0eTpuPXdlLnZlbG9jaXR5LG1hc3M6cj13ZS5tYXNzfSl7bGV0IGEsaSxvPTEtdDtvPWJuKHdlLm1pbkRhbXBpbmcsd2UubWF4RGFtcGluZyxvKSxlPWJuKHdlLm1pbkR1cmF0aW9uLHdlLm1heER1cmF0aW9uLHBuKGUpKSxvPDE/KGE9dT0+e2NvbnN0IGM9dSpvLGQ9YyplLHA9Yy1uLGY9cmcodSxvKSx5PU1hdGguZXhwKC1kKTtyZXR1cm4gSWwtcC9mKnl9LGk9dT0+e2NvbnN0IGQ9dSpvKmUscD1kKm4rbixmPU1hdGgucG93KG8sMikqTWF0aC5wb3codSwyKSplLHk9TWF0aC5leHAoLWQpLGI9cmcoTWF0aC5wb3codSwyKSxvKTtyZXR1cm4oLWEodSkrSWw+MD8tMToxKSooKHAtZikqeSkvYn0pOihhPXU9Pntjb25zdCBjPU1hdGguZXhwKC11KmUpLGQ9KHUtbikqZSsxO3JldHVybi1JbCtjKmR9LGk9dT0+e2NvbnN0IGM9TWF0aC5leHAoLXUqZSksZD0obi11KSooZSplKTtyZXR1cm4gYypkfSk7Y29uc3Qgcz01L2UsbD1ERChhLGkscyk7aWYoZT1kbihlKSxpc05hTihsKSlyZXR1cm57c3RpZmZuZXNzOndlLnN0aWZmbmVzcyxkYW1waW5nOndlLmRhbXBpbmcsZHVyYXRpb246ZX07e2NvbnN0IHU9TWF0aC5wb3cobCwyKSpyO3JldHVybntzdGlmZm5lc3M6dSxkYW1waW5nOm8qMipNYXRoLnNxcnQocip1KSxkdXJhdGlvbjplfX19Y29uc3QgTEQ9MTI7ZnVuY3Rpb24gREQoZSx0LG4pe2xldCByPW47Zm9yKGxldCBhPTE7YTxMRDthKyspcj1yLWUocikvdChyKTtyZXR1cm4gcn1mdW5jdGlvbiByZyhlLHQpe3JldHVybiBlKk1hdGguc3FydCgxLXQqdCl9Y29uc3QgTUQ9WyJkdXJhdGlvbiIsImJvdW5jZSJdLFBEPVsic3RpZmZuZXNzIiwiZGFtcGluZyIsIm1hc3MiXTtmdW5jdGlvbiBTdihlLHQpe3JldHVybiB0LnNvbWUobj0+ZVtuXSE9PXZvaWQgMCl9ZnVuY3Rpb24gRkQoZSl7bGV0IHQ9e3ZlbG9jaXR5OndlLnZlbG9jaXR5LHN0aWZmbmVzczp3ZS5zdGlmZm5lc3MsZGFtcGluZzp3ZS5kYW1waW5nLG1hc3M6d2UubWFzcyxpc1Jlc29sdmVkRnJvbUR1cmF0aW9uOiExLC4uLmV9O2lmKCFTdihlLFBEKSYmU3YoZSxNRCkpaWYoZS52aXN1YWxEdXJhdGlvbil7Y29uc3Qgbj1lLnZpc3VhbER1cmF0aW9uLHI9MipNYXRoLlBJLyhuKjEuMiksYT1yKnIsaT0yKmJuKC4wNSwxLDEtKGUuYm91bmNlfHwwKSkqTWF0aC5zcXJ0KGEpO3Q9ey4uLnQsbWFzczp3ZS5tYXNzLHN0aWZmbmVzczphLGRhbXBpbmc6aX19ZWxzZXtjb25zdCBuPU9EKGUpO3Q9ey4uLnQsLi4ubixtYXNzOndlLm1hc3N9LHQuaXNSZXNvbHZlZEZyb21EdXJhdGlvbj0hMH1yZXR1cm4gdH1mdW5jdGlvbiBYSShlPXdlLnZpc3VhbER1cmF0aW9uLHQ9d2UuYm91bmNlKXtjb25zdCBuPXR5cGVvZiBlIT0ib2JqZWN0Ij97dmlzdWFsRHVyYXRpb246ZSxrZXlmcmFtZXM6WzAsMV0sYm91bmNlOnR9OmU7bGV0e3Jlc3RTcGVlZDpyLHJlc3REZWx0YTphfT1uO2NvbnN0IGk9bi5rZXlmcmFtZXNbMF0sbz1uLmtleWZyYW1lc1tuLmtleWZyYW1lcy5sZW5ndGgtMV0scz17ZG9uZTohMSx2YWx1ZTppfSx7c3RpZmZuZXNzOmwsZGFtcGluZzp1LG1hc3M6YyxkdXJhdGlvbjpkLHZlbG9jaXR5OnAsaXNSZXNvbHZlZEZyb21EdXJhdGlvbjpmfT1GRCh7Li4ubix2ZWxvY2l0eTotcG4obi52ZWxvY2l0eXx8MCl9KSx5PXB8fDAsYj11LygyKk1hdGguc3FydChsKmMpKSxBPW8taSxoPXBuKE1hdGguc3FydChsL2MpKSxtPU1hdGguYWJzKEEpPDU7cnx8KHI9bT93ZS5yZXN0U3BlZWQuZ3JhbnVsYXI6d2UucmVzdFNwZWVkLmRlZmF1bHQpLGF8fChhPW0/d2UucmVzdERlbHRhLmdyYW51bGFyOndlLnJlc3REZWx0YS5kZWZhdWx0KTtsZXQgZztpZihiPDEpe2NvbnN0IFQ9cmcoaCxiKTtnPXY9Pntjb25zdCBSPU1hdGguZXhwKC1iKmgqdik7cmV0dXJuIG8tUiooKHkrYipoKkEpL1QqTWF0aC5zaW4oVCp2KStBKk1hdGguY29zKFQqdikpfX1lbHNlIGlmKGI9PT0xKWc9VD0+by1NYXRoLmV4cCgtaCpUKSooQSsoeStoKkEpKlQpO2Vsc2V7Y29uc3QgVD1oKk1hdGguc3FydChiKmItMSk7Zz12PT57Y29uc3QgUj1NYXRoLmV4cCgtYipoKnYpLF89TWF0aC5taW4oVCp2LDMwMCk7cmV0dXJuIG8tUiooKHkrYipoKkEpKk1hdGguc2luaChfKStUKkEqTWF0aC5jb3NoKF8pKS9UfX1jb25zdCBFPXtjYWxjdWxhdGVkRHVyYXRpb246ZiYmZHx8bnVsbCxuZXh0OlQ9Pntjb25zdCB2PWcoVCk7aWYoZilzLmRvbmU9VD49ZDtlbHNle2xldCBSPTA7YjwxJiYoUj1UPT09MD9kbih5KTpLSShnLFQsdikpO2NvbnN0IF89TWF0aC5hYnMoUik8PXIsST1NYXRoLmFicyhvLXYpPD1hO3MuZG9uZT1fJiZJfXJldHVybiBzLnZhbHVlPXMuZG9uZT9vOnYsc30sdG9TdHJpbmc6KCk9Pntjb25zdCBUPU1hdGgubWluKG1JKEUpLEttKSx2PWdJKFI9PkUubmV4dChUKlIpLnZhbHVlLFQsMzApO3JldHVybiBUKyJtcyAiK3Z9fTtyZXR1cm4gRX1mdW5jdGlvbiB3dih7a2V5ZnJhbWVzOmUsdmVsb2NpdHk6dD0wLHBvd2VyOm49LjgsdGltZUNvbnN0YW50OnI9MzI1LGJvdW5jZURhbXBpbmc6YT0xMCxib3VuY2VTdGlmZm5lc3M6aT01MDAsbW9kaWZ5VGFyZ2V0Om8sbWluOnMsbWF4OmwscmVzdERlbHRhOnU9LjUscmVzdFNwZWVkOmN9KXtjb25zdCBkPWVbMF0scD17ZG9uZTohMSx2YWx1ZTpkfSxmPV89PnMhPT12b2lkIDAmJl88c3x8bCE9PXZvaWQgMCYmXz5sLHk9Xz0+cz09PXZvaWQgMD9sOmw9PT12b2lkIDB8fE1hdGguYWJzKHMtXyk8TWF0aC5hYnMobC1fKT9zOmw7bGV0IGI9bip0O2NvbnN0IEE9ZCtiLGg9bz09PXZvaWQgMD9BOm8oQSk7aCE9PUEmJihiPWgtZCk7Y29uc3QgbT1fPT4tYipNYXRoLmV4cCgtXy9yKSxnPV89PmgrbShfKSxFPV89Pntjb25zdCBJPW0oXyksQz1nKF8pO3AuZG9uZT1NYXRoLmFicyhJKTw9dSxwLnZhbHVlPXAuZG9uZT9oOkN9O2xldCBULHY7Y29uc3QgUj1fPT57ZihwLnZhbHVlKSYmKFQ9Xyx2PVhJKHtrZXlmcmFtZXM6W3AudmFsdWUseShwLnZhbHVlKV0sdmVsb2NpdHk6S0koZyxfLHAudmFsdWUpLGRhbXBpbmc6YSxzdGlmZm5lc3M6aSxyZXN0RGVsdGE6dSxyZXN0U3BlZWQ6Y30pKX07cmV0dXJuIFIoMCkse2NhbGN1bGF0ZWREdXJhdGlvbjpudWxsLG5leHQ6Xz0+e2xldCBJPSExO3JldHVybiF2JiZUPT09dm9pZCAwJiYoST0hMCxFKF8pLFIoXykpLFQhPT12b2lkIDAmJl8+PVQ/di5uZXh0KF8tVCk6KCFJJiZFKF8pLHApfX19Y29uc3QgVUQ9RmkoLjQyLDAsMSwxKSxCRD1GaSgwLDAsLjU4LDEpLFpJPUZpKC40MiwwLC41OCwxKSwkRD1lPT5BcnJheS5pc0FycmF5KGUpJiZ0eXBlb2YgZVswXSE9Im51bWJlciIsekQ9e2xpbmVhcjpndCxlYXNlSW46VUQsZWFzZUluT3V0OlpJLGVhc2VPdXQ6QkQsY2lyY0luOldoLGNpcmNJbk91dDpDSSxjaXJjT3V0Ok5JLGJhY2tJbjpIaCxiYWNrSW5PdXQ6X0ksYmFja091dDpSSSxhbnRpY2lwYXRlOklJfSxUdj1lPT57aWYoemgoZSkpe1lfKGUubGVuZ3RoPT09NCk7Y29uc3RbdCxuLHIsYV09ZTtyZXR1cm4gRmkodCxuLHIsYSl9ZWxzZSBpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIHpEW2VdO3JldHVybiBlfTtmdW5jdGlvbiBqRChlLHQsbil7Y29uc3Qgcj1bXSxhPW58fFlJLGk9ZS5sZW5ndGgtMTtmb3IobGV0IG89MDtvPGk7bysrKXtsZXQgcz1hKGVbb10sZVtvKzFdKTtpZih0KXtjb25zdCBsPUFycmF5LmlzQXJyYXkodCk/dFtvXXx8Z3Q6dDtzPVVpKGwscyl9ci5wdXNoKHMpfXJldHVybiByfWZ1bmN0aW9uIEdEKGUsdCx7Y2xhbXA6bj0hMCxlYXNlOnIsbWl4ZXI6YX09e30pe2NvbnN0IGk9ZS5sZW5ndGg7aWYoWV8oaT09PXQubGVuZ3RoKSxpPT09MSlyZXR1cm4oKT0+dFswXTtpZihpPT09MiYmdFswXT09PXRbMV0pcmV0dXJuKCk9PnRbMV07Y29uc3Qgbz1lWzBdPT09ZVsxXTtlWzBdPmVbaS0xXSYmKGU9Wy4uLmVdLnJldmVyc2UoKSx0PVsuLi50XS5yZXZlcnNlKCkpO2NvbnN0IHM9akQodCxyLGEpLGw9cy5sZW5ndGgsdT1jPT57aWYobyYmYzxlWzBdKXJldHVybiB0WzBdO2xldCBkPTA7aWYobD4xKWZvcig7ZDxlLmxlbmd0aC0yJiYhKGM8ZVtkKzFdKTtkKyspO2NvbnN0IHA9aWEoZVtkXSxlW2QrMV0sYyk7cmV0dXJuIHNbZF0ocCl9O3JldHVybiBuP2M9PnUoYm4oZVswXSxlW2ktMV0sYykpOnV9ZnVuY3Rpb24gcUQoZSx0KXtjb25zdCBuPWVbZS5sZW5ndGgtMV07Zm9yKGxldCByPTE7cjw9dDtyKyspe2NvbnN0IGE9aWEoMCx0LHIpO2UucHVzaCh5ZShuLDEsYSkpfX1mdW5jdGlvbiBWRChlKXtjb25zdCB0PVswXTtyZXR1cm4gcUQodCxlLmxlbmd0aC0xKSx0fWZ1bmN0aW9uIEhEKGUsdCl7cmV0dXJuIGUubWFwKG49Pm4qdCl9ZnVuY3Rpb24gV0QoZSx0KXtyZXR1cm4gZS5tYXAoKCk9PnR8fFpJKS5zcGxpY2UoMCxlLmxlbmd0aC0xKX1mdW5jdGlvbiBmcyh7ZHVyYXRpb246ZT0zMDAsa2V5ZnJhbWVzOnQsdGltZXM6bixlYXNlOnI9ImVhc2VJbk91dCJ9KXtjb25zdCBhPSREKHIpP3IubWFwKFR2KTpUdihyKSxpPXtkb25lOiExLHZhbHVlOnRbMF19LG89SEQobiYmbi5sZW5ndGg9PT10Lmxlbmd0aD9uOlZEKHQpLGUpLHM9R0Qobyx0LHtlYXNlOkFycmF5LmlzQXJyYXkoYSk/YTpXRCh0LGEpfSk7cmV0dXJue2NhbGN1bGF0ZWREdXJhdGlvbjplLG5leHQ6bD0+KGkudmFsdWU9cyhsKSxpLmRvbmU9bD49ZSxpKX19Y29uc3QgWUQ9ZT0+e2NvbnN0IHQ9KHt0aW1lc3RhbXA6bn0pPT5lKG4pO3JldHVybntzdGFydDooKT0+bWUudXBkYXRlKHQsITApLHN0b3A6KCk9PiRuKHQpLG5vdzooKT0+RGUuaXNQcm9jZXNzaW5nP0RlLnRpbWVzdGFtcDplbi5ub3coKX19LEtEPXtkZWNheTp3dixpbmVydGlhOnd2LHR3ZWVuOmZzLGtleWZyYW1lczpmcyxzcHJpbmc6WEl9LFhEPWU9PmUvMTAwO2NsYXNzIEpoIGV4dGVuZHMgSEl7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5ob2xkVGltZT1udWxsLHRoaXMuY2FuY2VsVGltZT1udWxsLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLnBsYXliYWNrU3BlZWQ9MSx0aGlzLnBlbmRpbmdQbGF5U3RhdGU9InJ1bm5pbmciLHRoaXMuc3RhcnRUaW1lPW51bGwsdGhpcy5zdGF0ZT0iaWRsZSIsdGhpcy5zdG9wPSgpPT57aWYodGhpcy5yZXNvbHZlci5jYW5jZWwoKSx0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLnN0YXRlPT09ImlkbGUiKXJldHVybjt0aGlzLnRlYXJkb3duKCk7Y29uc3R7b25TdG9wOmx9PXRoaXMub3B0aW9ucztsJiZsKCl9O2NvbnN0e25hbWU6bixtb3Rpb25WYWx1ZTpyLGVsZW1lbnQ6YSxrZXlmcmFtZXM6aX09dGhpcy5vcHRpb25zLG89KGE9PW51bGw/dm9pZCAwOmEuS2V5ZnJhbWVSZXNvbHZlcil8fFpoLHM9KGwsdSk9PnRoaXMub25LZXlmcmFtZXNSZXNvbHZlZChsLHUpO3RoaXMucmVzb2x2ZXI9bmV3IG8oaSxzLG4scixhKSx0aGlzLnJlc29sdmVyLnNjaGVkdWxlUmVzb2x2ZSgpfWZsYXR0ZW4oKXtzdXBlci5mbGF0dGVuKCksdGhpcy5fcmVzb2x2ZWQmJk9iamVjdC5hc3NpZ24odGhpcy5fcmVzb2x2ZWQsdGhpcy5pbml0UGxheWJhY2sodGhpcy5fcmVzb2x2ZWQua2V5ZnJhbWVzKSl9aW5pdFBsYXliYWNrKHQpe2NvbnN0e3R5cGU6bj0ia2V5ZnJhbWVzIixyZXBlYXQ6cj0wLHJlcGVhdERlbGF5OmE9MCxyZXBlYXRUeXBlOmksdmVsb2NpdHk6bz0wfT10aGlzLm9wdGlvbnMscz0kaChuKT9uOktEW25dfHxmcztsZXQgbCx1O3MhPT1mcyYmdHlwZW9mIHRbMF0hPSJudW1iZXIiJiYobD1VaShYRCxZSSh0WzBdLHRbMV0pKSx0PVswLDEwMF0pO2NvbnN0IGM9cyh7Li4udGhpcy5vcHRpb25zLGtleWZyYW1lczp0fSk7aT09PSJtaXJyb3IiJiYodT1zKHsuLi50aGlzLm9wdGlvbnMsa2V5ZnJhbWVzOlsuLi50XS5yZXZlcnNlKCksdmVsb2NpdHk6LW99KSksYy5jYWxjdWxhdGVkRHVyYXRpb249PT1udWxsJiYoYy5jYWxjdWxhdGVkRHVyYXRpb249bUkoYykpO2NvbnN0e2NhbGN1bGF0ZWREdXJhdGlvbjpkfT1jLHA9ZCthLGY9cCoocisxKS1hO3JldHVybntnZW5lcmF0b3I6YyxtaXJyb3JlZEdlbmVyYXRvcjp1LG1hcFBlcmNlbnRUb0tleWZyYW1lczpsLGNhbGN1bGF0ZWREdXJhdGlvbjpkLHJlc29sdmVkRHVyYXRpb246cCx0b3RhbER1cmF0aW9uOmZ9fW9uUG9zdFJlc29sdmVkKCl7Y29uc3R7YXV0b3BsYXk6dD0hMH09dGhpcy5vcHRpb25zO3RoaXMucGxheSgpLHRoaXMucGVuZGluZ1BsYXlTdGF0ZT09PSJwYXVzZWQifHwhdD90aGlzLnBhdXNlKCk6dGhpcy5zdGF0ZT10aGlzLnBlbmRpbmdQbGF5U3RhdGV9dGljayh0LG49ITEpe2NvbnN0e3Jlc29sdmVkOnJ9PXRoaXM7aWYoIXIpe2NvbnN0e2tleWZyYW1lczpffT10aGlzLm9wdGlvbnM7cmV0dXJue2RvbmU6ITAsdmFsdWU6X1tfLmxlbmd0aC0xXX19Y29uc3R7ZmluYWxLZXlmcmFtZTphLGdlbmVyYXRvcjppLG1pcnJvcmVkR2VuZXJhdG9yOm8sbWFwUGVyY2VudFRvS2V5ZnJhbWVzOnMsa2V5ZnJhbWVzOmwsY2FsY3VsYXRlZER1cmF0aW9uOnUsdG90YWxEdXJhdGlvbjpjLHJlc29sdmVkRHVyYXRpb246ZH09cjtpZih0aGlzLnN0YXJ0VGltZT09PW51bGwpcmV0dXJuIGkubmV4dCgwKTtjb25zdHtkZWxheTpwLHJlcGVhdDpmLHJlcGVhdFR5cGU6eSxyZXBlYXREZWxheTpiLG9uVXBkYXRlOkF9PXRoaXMub3B0aW9uczt0aGlzLnNwZWVkPjA/dGhpcy5zdGFydFRpbWU9TWF0aC5taW4odGhpcy5zdGFydFRpbWUsdCk6dGhpcy5zcGVlZDwwJiYodGhpcy5zdGFydFRpbWU9TWF0aC5taW4odC1jL3RoaXMuc3BlZWQsdGhpcy5zdGFydFRpbWUpKSxuP3RoaXMuY3VycmVudFRpbWU9dDp0aGlzLmhvbGRUaW1lIT09bnVsbD90aGlzLmN1cnJlbnRUaW1lPXRoaXMuaG9sZFRpbWU6dGhpcy5jdXJyZW50VGltZT1NYXRoLnJvdW5kKHQtdGhpcy5zdGFydFRpbWUpKnRoaXMuc3BlZWQ7Y29uc3QgaD10aGlzLmN1cnJlbnRUaW1lLXAqKHRoaXMuc3BlZWQ+PTA/MTotMSksbT10aGlzLnNwZWVkPj0wP2g8MDpoPmM7dGhpcy5jdXJyZW50VGltZT1NYXRoLm1heChoLDApLHRoaXMuc3RhdGU9PT0iZmluaXNoZWQiJiZ0aGlzLmhvbGRUaW1lPT09bnVsbCYmKHRoaXMuY3VycmVudFRpbWU9Yyk7bGV0IGc9dGhpcy5jdXJyZW50VGltZSxFPWk7aWYoZil7Y29uc3QgXz1NYXRoLm1pbih0aGlzLmN1cnJlbnRUaW1lLGMpL2Q7bGV0IEk9TWF0aC5mbG9vcihfKSxDPV8lMTshQyYmXz49MSYmKEM9MSksQz09PTEmJkktLSxJPU1hdGgubWluKEksZisxKSwhIShJJTIpJiYoeT09PSJyZXZlcnNlIj8oQz0xLUMsYiYmKEMtPWIvZCkpOnk9PT0ibWlycm9yIiYmKEU9bykpLGc9Ym4oMCwxLEMpKmR9Y29uc3QgVD1tP3tkb25lOiExLHZhbHVlOmxbMF19OkUubmV4dChnKTtzJiYoVC52YWx1ZT1zKFQudmFsdWUpKTtsZXR7ZG9uZTp2fT1UOyFtJiZ1IT09bnVsbCYmKHY9dGhpcy5zcGVlZD49MD90aGlzLmN1cnJlbnRUaW1lPj1jOnRoaXMuY3VycmVudFRpbWU8PTApO2NvbnN0IFI9dGhpcy5ob2xkVGltZT09PW51bGwmJih0aGlzLnN0YXRlPT09ImZpbmlzaGVkInx8dGhpcy5zdGF0ZT09PSJydW5uaW5nIiYmdik7cmV0dXJuIFImJmEhPT12b2lkIDAmJihULnZhbHVlPUJzKGwsdGhpcy5vcHRpb25zLGEpKSxBJiZBKFQudmFsdWUpLFImJnRoaXMuZmluaXNoKCksVH1nZXQgZHVyYXRpb24oKXtjb25zdHtyZXNvbHZlZDp0fT10aGlzO3JldHVybiB0P3BuKHQuY2FsY3VsYXRlZER1cmF0aW9uKTowfWdldCB0aW1lKCl7cmV0dXJuIHBuKHRoaXMuY3VycmVudFRpbWUpfXNldCB0aW1lKHQpe3Q9ZG4odCksdGhpcy5jdXJyZW50VGltZT10LHRoaXMuaG9sZFRpbWUhPT1udWxsfHx0aGlzLnNwZWVkPT09MD90aGlzLmhvbGRUaW1lPXQ6dGhpcy5kcml2ZXImJih0aGlzLnN0YXJ0VGltZT10aGlzLmRyaXZlci5ub3coKS10L3RoaXMuc3BlZWQpfWdldCBzcGVlZCgpe3JldHVybiB0aGlzLnBsYXliYWNrU3BlZWR9c2V0IHNwZWVkKHQpe2NvbnN0IG49dGhpcy5wbGF5YmFja1NwZWVkIT09dDt0aGlzLnBsYXliYWNrU3BlZWQ9dCxuJiYodGhpcy50aW1lPXBuKHRoaXMuY3VycmVudFRpbWUpKX1wbGF5KCl7aWYodGhpcy5yZXNvbHZlci5pc1NjaGVkdWxlZHx8dGhpcy5yZXNvbHZlci5yZXN1bWUoKSwhdGhpcy5fcmVzb2x2ZWQpe3RoaXMucGVuZGluZ1BsYXlTdGF0ZT0icnVubmluZyI7cmV0dXJufWlmKHRoaXMuaXNTdG9wcGVkKXJldHVybjtjb25zdHtkcml2ZXI6dD1ZRCxvblBsYXk6bixzdGFydFRpbWU6cn09dGhpcy5vcHRpb25zO3RoaXMuZHJpdmVyfHwodGhpcy5kcml2ZXI9dChpPT50aGlzLnRpY2soaSkpKSxuJiZuKCk7Y29uc3QgYT10aGlzLmRyaXZlci5ub3coKTt0aGlzLmhvbGRUaW1lIT09bnVsbD90aGlzLnN0YXJ0VGltZT1hLXRoaXMuaG9sZFRpbWU6dGhpcy5zdGFydFRpbWU/dGhpcy5zdGF0ZT09PSJmaW5pc2hlZCImJih0aGlzLnN0YXJ0VGltZT1hKTp0aGlzLnN0YXJ0VGltZT1yPz90aGlzLmNhbGNTdGFydFRpbWUoKSx0aGlzLnN0YXRlPT09ImZpbmlzaGVkIiYmdGhpcy51cGRhdGVGaW5pc2hlZFByb21pc2UoKSx0aGlzLmNhbmNlbFRpbWU9dGhpcy5zdGFydFRpbWUsdGhpcy5ob2xkVGltZT1udWxsLHRoaXMuc3RhdGU9InJ1bm5pbmciLHRoaXMuZHJpdmVyLnN0YXJ0KCl9cGF1c2UoKXt2YXIgdDtpZighdGhpcy5fcmVzb2x2ZWQpe3RoaXMucGVuZGluZ1BsYXlTdGF0ZT0icGF1c2VkIjtyZXR1cm59dGhpcy5zdGF0ZT0icGF1c2VkIix0aGlzLmhvbGRUaW1lPSh0PXRoaXMuY3VycmVudFRpbWUpIT09bnVsbCYmdCE9PXZvaWQgMD90OjB9Y29tcGxldGUoKXt0aGlzLnN0YXRlIT09InJ1bm5pbmciJiZ0aGlzLnBsYXkoKSx0aGlzLnBlbmRpbmdQbGF5U3RhdGU9dGhpcy5zdGF0ZT0iZmluaXNoZWQiLHRoaXMuaG9sZFRpbWU9bnVsbH1maW5pc2goKXt0aGlzLnRlYXJkb3duKCksdGhpcy5zdGF0ZT0iZmluaXNoZWQiO2NvbnN0e29uQ29tcGxldGU6dH09dGhpcy5vcHRpb25zO3QmJnQoKX1jYW5jZWwoKXt0aGlzLmNhbmNlbFRpbWUhPT1udWxsJiZ0aGlzLnRpY2sodGhpcy5jYW5jZWxUaW1lKSx0aGlzLnRlYXJkb3duKCksdGhpcy51cGRhdGVGaW5pc2hlZFByb21pc2UoKX10ZWFyZG93bigpe3RoaXMuc3RhdGU9ImlkbGUiLHRoaXMuc3RvcERyaXZlcigpLHRoaXMucmVzb2x2ZUZpbmlzaGVkUHJvbWlzZSgpLHRoaXMudXBkYXRlRmluaXNoZWRQcm9taXNlKCksdGhpcy5zdGFydFRpbWU9dGhpcy5jYW5jZWxUaW1lPW51bGwsdGhpcy5yZXNvbHZlci5jYW5jZWwoKX1zdG9wRHJpdmVyKCl7dGhpcy5kcml2ZXImJih0aGlzLmRyaXZlci5zdG9wKCksdGhpcy5kcml2ZXI9dm9pZCAwKX1zYW1wbGUodCl7cmV0dXJuIHRoaXMuc3RhcnRUaW1lPTAsdGhpcy50aWNrKHQsITApfX1jb25zdCBaRD1uZXcgU2V0KFsib3BhY2l0eSIsImNsaXBQYXRoIiwiZmlsdGVyIiwidHJhbnNmb3JtIl0pO2Z1bmN0aW9uIFFEKGUsdCxuLHtkZWxheTpyPTAsZHVyYXRpb246YT0zMDAscmVwZWF0Omk9MCxyZXBlYXRUeXBlOm89Imxvb3AiLGVhc2U6cz0iZWFzZUluT3V0Iix0aW1lczpsfT17fSl7Y29uc3QgdT17W3RdOm59O2wmJih1Lm9mZnNldD1sKTtjb25zdCBjPWJJKHMsYSk7cmV0dXJuIEFycmF5LmlzQXJyYXkoYykmJih1LmVhc2luZz1jKSxlLmFuaW1hdGUodSx7ZGVsYXk6cixkdXJhdGlvbjphLGVhc2luZzpBcnJheS5pc0FycmF5KGMpPyJsaW5lYXIiOmMsZmlsbDoiYm90aCIsaXRlcmF0aW9uczppKzEsZGlyZWN0aW9uOm89PT0icmV2ZXJzZSI/ImFsdGVybmF0ZSI6Im5vcm1hbCJ9KX1jb25zdCBKRD1BaCgoKT0+T2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoRWxlbWVudC5wcm90b3R5cGUsImFuaW1hdGUiKSksbXM9MTAsZU09MmU0O2Z1bmN0aW9uIHRNKGUpe3JldHVybiAkaChlLnR5cGUpfHxlLnR5cGU9PT0ic3ByaW5nInx8IWhJKGUuZWFzZSl9ZnVuY3Rpb24gbk0oZSx0KXtjb25zdCBuPW5ldyBKaCh7Li4udCxrZXlmcmFtZXM6ZSxyZXBlYXQ6MCxkZWxheTowLGlzR2VuZXJhdG9yOiEwfSk7bGV0IHI9e2RvbmU6ITEsdmFsdWU6ZVswXX07Y29uc3QgYT1bXTtsZXQgaT0wO2Zvcig7IXIuZG9uZSYmaTxlTTspcj1uLnNhbXBsZShpKSxhLnB1c2goci52YWx1ZSksaSs9bXM7cmV0dXJue3RpbWVzOnZvaWQgMCxrZXlmcmFtZXM6YSxkdXJhdGlvbjppLW1zLGVhc2U6ImxpbmVhciJ9fWNvbnN0IFFJPXthbnRpY2lwYXRlOklJLGJhY2tJbk91dDpfSSxjaXJjSW5PdXQ6Q0l9O2Z1bmN0aW9uIHJNKGUpe3JldHVybiBlIGluIFFJfWNsYXNzIGt2IGV4dGVuZHMgSEl7Y29uc3RydWN0b3IodCl7c3VwZXIodCk7Y29uc3R7bmFtZTpuLG1vdGlvblZhbHVlOnIsZWxlbWVudDphLGtleWZyYW1lczppfT10aGlzLm9wdGlvbnM7dGhpcy5yZXNvbHZlcj1uZXcgVkkoaSwobyxzKT0+dGhpcy5vbktleWZyYW1lc1Jlc29sdmVkKG8scyksbixyLGEpLHRoaXMucmVzb2x2ZXIuc2NoZWR1bGVSZXNvbHZlKCl9aW5pdFBsYXliYWNrKHQsbil7bGV0e2R1cmF0aW9uOnI9MzAwLHRpbWVzOmEsZWFzZTppLHR5cGU6byxtb3Rpb25WYWx1ZTpzLG5hbWU6bCxzdGFydFRpbWU6dX09dGhpcy5vcHRpb25zO2lmKCFzLm93bmVyfHwhcy5vd25lci5jdXJyZW50KXJldHVybiExO2lmKHR5cGVvZiBpPT0ic3RyaW5nIiYmZHMoKSYmck0oaSkmJihpPVFJW2ldKSx0TSh0aGlzLm9wdGlvbnMpKXtjb25zdHtvbkNvbXBsZXRlOmQsb25VcGRhdGU6cCxtb3Rpb25WYWx1ZTpmLGVsZW1lbnQ6eSwuLi5ifT10aGlzLm9wdGlvbnMsQT1uTSh0LGIpO3Q9QS5rZXlmcmFtZXMsdC5sZW5ndGg9PT0xJiYodFsxXT10WzBdKSxyPUEuZHVyYXRpb24sYT1BLnRpbWVzLGk9QS5lYXNlLG89ImtleWZyYW1lcyJ9Y29uc3QgYz1RRChzLm93bmVyLmN1cnJlbnQsbCx0LHsuLi50aGlzLm9wdGlvbnMsZHVyYXRpb246cix0aW1lczphLGVhc2U6aX0pO3JldHVybiBjLnN0YXJ0VGltZT11Pz90aGlzLmNhbGNTdGFydFRpbWUoKSx0aGlzLnBlbmRpbmdUaW1lbGluZT8obHYoYyx0aGlzLnBlbmRpbmdUaW1lbGluZSksdGhpcy5wZW5kaW5nVGltZWxpbmU9dm9pZCAwKTpjLm9uZmluaXNoPSgpPT57Y29uc3R7b25Db21wbGV0ZTpkfT10aGlzLm9wdGlvbnM7cy5zZXQoQnModCx0aGlzLm9wdGlvbnMsbikpLGQmJmQoKSx0aGlzLmNhbmNlbCgpLHRoaXMucmVzb2x2ZUZpbmlzaGVkUHJvbWlzZSgpfSx7YW5pbWF0aW9uOmMsZHVyYXRpb246cix0aW1lczphLHR5cGU6byxlYXNlOmksa2V5ZnJhbWVzOnR9fWdldCBkdXJhdGlvbigpe2NvbnN0e3Jlc29sdmVkOnR9PXRoaXM7aWYoIXQpcmV0dXJuIDA7Y29uc3R7ZHVyYXRpb246bn09dDtyZXR1cm4gcG4obil9Z2V0IHRpbWUoKXtjb25zdHtyZXNvbHZlZDp0fT10aGlzO2lmKCF0KXJldHVybiAwO2NvbnN0e2FuaW1hdGlvbjpufT10O3JldHVybiBwbihuLmN1cnJlbnRUaW1lfHwwKX1zZXQgdGltZSh0KXtjb25zdHtyZXNvbHZlZDpufT10aGlzO2lmKCFuKXJldHVybjtjb25zdHthbmltYXRpb246cn09bjtyLmN1cnJlbnRUaW1lPWRuKHQpfWdldCBzcGVlZCgpe2NvbnN0e3Jlc29sdmVkOnR9PXRoaXM7aWYoIXQpcmV0dXJuIDE7Y29uc3R7YW5pbWF0aW9uOm59PXQ7cmV0dXJuIG4ucGxheWJhY2tSYXRlfXNldCBzcGVlZCh0KXtjb25zdHtyZXNvbHZlZDpufT10aGlzO2lmKCFuKXJldHVybjtjb25zdHthbmltYXRpb246cn09bjtyLnBsYXliYWNrUmF0ZT10fWdldCBzdGF0ZSgpe2NvbnN0e3Jlc29sdmVkOnR9PXRoaXM7aWYoIXQpcmV0dXJuImlkbGUiO2NvbnN0e2FuaW1hdGlvbjpufT10O3JldHVybiBuLnBsYXlTdGF0ZX1nZXQgc3RhcnRUaW1lKCl7Y29uc3R7cmVzb2x2ZWQ6dH09dGhpcztpZighdClyZXR1cm4gbnVsbDtjb25zdHthbmltYXRpb246bn09dDtyZXR1cm4gbi5zdGFydFRpbWV9YXR0YWNoVGltZWxpbmUodCl7aWYoIXRoaXMuX3Jlc29sdmVkKXRoaXMucGVuZGluZ1RpbWVsaW5lPXQ7ZWxzZXtjb25zdHtyZXNvbHZlZDpufT10aGlzO2lmKCFuKXJldHVybiBndDtjb25zdHthbmltYXRpb246cn09bjtsdihyLHQpfXJldHVybiBndH1wbGF5KCl7aWYodGhpcy5pc1N0b3BwZWQpcmV0dXJuO2NvbnN0e3Jlc29sdmVkOnR9PXRoaXM7aWYoIXQpcmV0dXJuO2NvbnN0e2FuaW1hdGlvbjpufT10O24ucGxheVN0YXRlPT09ImZpbmlzaGVkIiYmdGhpcy51cGRhdGVGaW5pc2hlZFByb21pc2UoKSxuLnBsYXkoKX1wYXVzZSgpe2NvbnN0e3Jlc29sdmVkOnR9PXRoaXM7aWYoIXQpcmV0dXJuO2NvbnN0e2FuaW1hdGlvbjpufT10O24ucGF1c2UoKX1zdG9wKCl7aWYodGhpcy5yZXNvbHZlci5jYW5jZWwoKSx0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLnN0YXRlPT09ImlkbGUiKXJldHVybjt0aGlzLnJlc29sdmVGaW5pc2hlZFByb21pc2UoKSx0aGlzLnVwZGF0ZUZpbmlzaGVkUHJvbWlzZSgpO2NvbnN0e3Jlc29sdmVkOnR9PXRoaXM7aWYoIXQpcmV0dXJuO2NvbnN0e2FuaW1hdGlvbjpuLGtleWZyYW1lczpyLGR1cmF0aW9uOmEsdHlwZTppLGVhc2U6byx0aW1lczpzfT10O2lmKG4ucGxheVN0YXRlPT09ImlkbGUifHxuLnBsYXlTdGF0ZT09PSJmaW5pc2hlZCIpcmV0dXJuO2lmKHRoaXMudGltZSl7Y29uc3R7bW90aW9uVmFsdWU6dSxvblVwZGF0ZTpjLG9uQ29tcGxldGU6ZCxlbGVtZW50OnAsLi4uZn09dGhpcy5vcHRpb25zLHk9bmV3IEpoKHsuLi5mLGtleWZyYW1lczpyLGR1cmF0aW9uOmEsdHlwZTppLGVhc2U6byx0aW1lczpzLGlzR2VuZXJhdG9yOiEwfSksYj1kbih0aGlzLnRpbWUpO3Uuc2V0V2l0aFZlbG9jaXR5KHkuc2FtcGxlKGItbXMpLnZhbHVlLHkuc2FtcGxlKGIpLnZhbHVlLG1zKX1jb25zdHtvblN0b3A6bH09dGhpcy5vcHRpb25zO2wmJmwoKSx0aGlzLmNhbmNlbCgpfWNvbXBsZXRlKCl7Y29uc3R7cmVzb2x2ZWQ6dH09dGhpczt0JiZ0LmFuaW1hdGlvbi5maW5pc2goKX1jYW5jZWwoKXtjb25zdHtyZXNvbHZlZDp0fT10aGlzO3QmJnQuYW5pbWF0aW9uLmNhbmNlbCgpfXN0YXRpYyBzdXBwb3J0cyh0KXtjb25zdHttb3Rpb25WYWx1ZTpuLG5hbWU6cixyZXBlYXREZWxheTphLHJlcGVhdFR5cGU6aSxkYW1waW5nOm8sdHlwZTpzfT10O2lmKCFufHwhbi5vd25lcnx8IShuLm93bmVyLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpcmV0dXJuITE7Y29uc3R7b25VcGRhdGU6bCx0cmFuc2Zvcm1UZW1wbGF0ZTp1fT1uLm93bmVyLmdldFByb3BzKCk7cmV0dXJuIEpEKCkmJnImJlpELmhhcyhyKSYmIWwmJiF1JiYhYSYmaSE9PSJtaXJyb3IiJiZvIT09MCYmcyE9PSJpbmVydGlhIn19Y29uc3QgYU09e3R5cGU6InNwcmluZyIsc3RpZmZuZXNzOjUwMCxkYW1waW5nOjI1LHJlc3RTcGVlZDoxMH0saU09ZT0+KHt0eXBlOiJzcHJpbmciLHN0aWZmbmVzczo1NTAsZGFtcGluZzplPT09MD8yKk1hdGguc3FydCg1NTApOjMwLHJlc3RTcGVlZDoxMH0pLG9NPXt0eXBlOiJrZXlmcmFtZXMiLGR1cmF0aW9uOi44fSxzTT17dHlwZToia2V5ZnJhbWVzIixlYXNlOlsuMjUsLjEsLjM1LDFdLGR1cmF0aW9uOi4zfSxsTT0oZSx7a2V5ZnJhbWVzOnR9KT0+dC5sZW5ndGg+Mj9vTTpici5oYXMoZSk/ZS5zdGFydHNXaXRoKCJzY2FsZSIpP2lNKHRbMV0pOmFNOnNNO2Z1bmN0aW9uIHVNKHt3aGVuOmUsZGVsYXk6dCxkZWxheUNoaWxkcmVuOm4sc3RhZ2dlckNoaWxkcmVuOnIsc3RhZ2dlckRpcmVjdGlvbjphLHJlcGVhdDppLHJlcGVhdFR5cGU6byxyZXBlYXREZWxheTpzLGZyb206bCxlbGFwc2VkOnUsLi4uY30pe3JldHVybiEhT2JqZWN0LmtleXMoYykubGVuZ3RofWNvbnN0IGViPShlLHQsbixyPXt9LGEsaSk9Pm89Pntjb25zdCBzPUJoKHIsZSl8fHt9LGw9cy5kZWxheXx8ci5kZWxheXx8MDtsZXR7ZWxhcHNlZDp1PTB9PXI7dT11LWRuKGwpO2xldCBjPXtrZXlmcmFtZXM6QXJyYXkuaXNBcnJheShuKT9uOltudWxsLG5dLGVhc2U6ImVhc2VPdXQiLHZlbG9jaXR5OnQuZ2V0VmVsb2NpdHkoKSwuLi5zLGRlbGF5Oi11LG9uVXBkYXRlOnA9Pnt0LnNldChwKSxzLm9uVXBkYXRlJiZzLm9uVXBkYXRlKHApfSxvbkNvbXBsZXRlOigpPT57bygpLHMub25Db21wbGV0ZSYmcy5vbkNvbXBsZXRlKCl9LG5hbWU6ZSxtb3Rpb25WYWx1ZTp0LGVsZW1lbnQ6aT92b2lkIDA6YX07dU0ocyl8fChjPXsuLi5jLC4uLmxNKGUsYyl9KSxjLmR1cmF0aW9uJiYoYy5kdXJhdGlvbj1kbihjLmR1cmF0aW9uKSksYy5yZXBlYXREZWxheSYmKGMucmVwZWF0RGVsYXk9ZG4oYy5yZXBlYXREZWxheSkpLGMuZnJvbSE9PXZvaWQgMCYmKGMua2V5ZnJhbWVzWzBdPWMuZnJvbSk7bGV0IGQ9ITE7aWYoKGMudHlwZT09PSExfHxjLmR1cmF0aW9uPT09MCYmIWMucmVwZWF0RGVsYXkpJiYoYy5kdXJhdGlvbj0wLGMuZGVsYXk9PT0wJiYoZD0hMCkpLGQmJiFpJiZ0LmdldCgpIT09dm9pZCAwKXtjb25zdCBwPUJzKGMua2V5ZnJhbWVzLHMpO2lmKHAhPT12b2lkIDApcmV0dXJuIG1lLnVwZGF0ZSgoKT0+e2Mub25VcGRhdGUocCksYy5vbkNvbXBsZXRlKCl9KSxuZXcgX0woW10pfXJldHVybiFpJiZrdi5zdXBwb3J0cyhjKT9uZXcga3YoYyk6bmV3IEpoKGMpfTtmdW5jdGlvbiBjTSh7cHJvdGVjdGVkS2V5czplLG5lZWRzQW5pbWF0aW5nOnR9LG4pe2NvbnN0IHI9ZS5oYXNPd25Qcm9wZXJ0eShuKSYmdFtuXSE9PSEwO3JldHVybiB0W25dPSExLHJ9ZnVuY3Rpb24gSkkoZSx0LHtkZWxheTpuPTAsdHJhbnNpdGlvbk92ZXJyaWRlOnIsdHlwZTphfT17fSl7dmFyIGk7bGV0e3RyYW5zaXRpb246bz1lLmdldERlZmF1bHRUcmFuc2l0aW9uKCksdHJhbnNpdGlvbkVuZDpzLC4uLmx9PXQ7ciYmKG89cik7Y29uc3QgdT1bXSxjPWEmJmUuYW5pbWF0aW9uU3RhdGUmJmUuYW5pbWF0aW9uU3RhdGUuZ2V0U3RhdGUoKVthXTtmb3IoY29uc3QgZCBpbiBsKXtjb25zdCBwPWUuZ2V0VmFsdWUoZCwoaT1lLmxhdGVzdFZhbHVlc1tkXSkhPT1udWxsJiZpIT09dm9pZCAwP2k6bnVsbCksZj1sW2RdO2lmKGY9PT12b2lkIDB8fGMmJmNNKGMsZCkpY29udGludWU7Y29uc3QgeT17ZGVsYXk6biwuLi5CaChvfHx7fSxkKX07bGV0IGI9ITE7aWYod2luZG93Lk1vdGlvbkhhbmRvZmZBbmltYXRpb24pe2NvbnN0IGg9VEkoZSk7aWYoaCl7Y29uc3QgbT13aW5kb3cuTW90aW9uSGFuZG9mZkFuaW1hdGlvbihoLGQsbWUpO20hPT1udWxsJiYoeS5zdGFydFRpbWU9bSxiPSEwKX19Wm0oZSxkKSxwLnN0YXJ0KGViKGQscCxmLGUuc2hvdWxkUmVkdWNlTW90aW9uJiZTSS5oYXMoZCk/e3R5cGU6ITF9OnksZSxiKSk7Y29uc3QgQT1wLmFuaW1hdGlvbjtBJiZ1LnB1c2goQSl9cmV0dXJuIHMmJlByb21pc2UuYWxsKHUpLnRoZW4oKCk9PnttZS51cGRhdGUoKCk9PntzJiZqTChlLHMpfSl9KSx1fWZ1bmN0aW9uIGFnKGUsdCxuPXt9KXt2YXIgcjtjb25zdCBhPVVzKGUsdCxuLnR5cGU9PT0iZXhpdCI/KHI9ZS5wcmVzZW5jZUNvbnRleHQpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5jdXN0b206dm9pZCAwKTtsZXR7dHJhbnNpdGlvbjppPWUuZ2V0RGVmYXVsdFRyYW5zaXRpb24oKXx8e319PWF8fHt9O24udHJhbnNpdGlvbk92ZXJyaWRlJiYoaT1uLnRyYW5zaXRpb25PdmVycmlkZSk7Y29uc3Qgbz1hPygpPT5Qcm9taXNlLmFsbChKSShlLGEsbikpOigpPT5Qcm9taXNlLnJlc29sdmUoKSxzPWUudmFyaWFudENoaWxkcmVuJiZlLnZhcmlhbnRDaGlsZHJlbi5zaXplPyh1PTApPT57Y29uc3R7ZGVsYXlDaGlsZHJlbjpjPTAsc3RhZ2dlckNoaWxkcmVuOmQsc3RhZ2dlckRpcmVjdGlvbjpwfT1pO3JldHVybiBkTShlLHQsYyt1LGQscCxuKX06KCk9PlByb21pc2UucmVzb2x2ZSgpLHt3aGVuOmx9PWk7aWYobCl7Y29uc3RbdSxjXT1sPT09ImJlZm9yZUNoaWxkcmVuIj9bbyxzXTpbcyxvXTtyZXR1cm4gdSgpLnRoZW4oKCk9PmMoKSl9ZWxzZSByZXR1cm4gUHJvbWlzZS5hbGwoW28oKSxzKG4uZGVsYXkpXSl9ZnVuY3Rpb24gZE0oZSx0LG49MCxyPTAsYT0xLGkpe2NvbnN0IG89W10scz0oZS52YXJpYW50Q2hpbGRyZW4uc2l6ZS0xKSpyLGw9YT09PTE/KHU9MCk9PnUqcjoodT0wKT0+cy11KnI7cmV0dXJuIEFycmF5LmZyb20oZS52YXJpYW50Q2hpbGRyZW4pLnNvcnQocE0pLmZvckVhY2goKHUsYyk9Pnt1Lm5vdGlmeSgiQW5pbWF0aW9uU3RhcnQiLHQpLG8ucHVzaChhZyh1LHQsey4uLmksZGVsYXk6bitsKGMpfSkudGhlbigoKT0+dS5ub3RpZnkoIkFuaW1hdGlvbkNvbXBsZXRlIix0KSkpfSksUHJvbWlzZS5hbGwobyl9ZnVuY3Rpb24gcE0oZSx0KXtyZXR1cm4gZS5zb3J0Tm9kZVBvc2l0aW9uKHQpfWZ1bmN0aW9uIGZNKGUsdCxuPXt9KXtlLm5vdGlmeSgiQW5pbWF0aW9uU3RhcnQiLHQpO2xldCByO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGE9dC5tYXAoaT0+YWcoZSxpLG4pKTtyPVByb21pc2UuYWxsKGEpfWVsc2UgaWYodHlwZW9mIHQ9PSJzdHJpbmciKXI9YWcoZSx0LG4pO2Vsc2V7Y29uc3QgYT10eXBlb2YgdD09ImZ1bmN0aW9uIj9VcyhlLHQsbi5jdXN0b20pOnQ7cj1Qcm9taXNlLmFsbChKSShlLGEsbikpfXJldHVybiByLnRoZW4oKCk9PntlLm5vdGlmeSgiQW5pbWF0aW9uQ29tcGxldGUiLHQpfSl9Y29uc3QgbU09UmgubGVuZ3RoO2Z1bmN0aW9uIGVOKGUpe2lmKCFlKXJldHVybjtpZighZS5pc0NvbnRyb2xsaW5nVmFyaWFudHMpe2NvbnN0IG49ZS5wYXJlbnQ/ZU4oZS5wYXJlbnQpfHx7fTp7fTtyZXR1cm4gZS5wcm9wcy5pbml0aWFsIT09dm9pZCAwJiYobi5pbml0aWFsPWUucHJvcHMuaW5pdGlhbCksbn1jb25zdCB0PXt9O2ZvcihsZXQgbj0wO248bU07bisrKXtjb25zdCByPVJoW25dLGE9ZS5wcm9wc1tyXTsod2koYSl8fGE9PT0hMSkmJih0W3JdPWEpfXJldHVybiB0fWNvbnN0IGdNPVsuLi54aF0ucmV2ZXJzZSgpLGhNPXhoLmxlbmd0aDtmdW5jdGlvbiBiTShlKXtyZXR1cm4gdD0+UHJvbWlzZS5hbGwodC5tYXAoKHthbmltYXRpb246bixvcHRpb25zOnJ9KT0+Zk0oZSxuLHIpKSl9ZnVuY3Rpb24geU0oZSl7bGV0IHQ9Yk0oZSksbj1BdigpLHI9ITA7Y29uc3QgYT1sPT4odSxjKT0+e3ZhciBkO2NvbnN0IHA9VXMoZSxjLGw9PT0iZXhpdCI/KGQ9ZS5wcmVzZW5jZUNvbnRleHQpPT09bnVsbHx8ZD09PXZvaWQgMD92b2lkIDA6ZC5jdXN0b206dm9pZCAwKTtpZihwKXtjb25zdHt0cmFuc2l0aW9uOmYsdHJhbnNpdGlvbkVuZDp5LC4uLmJ9PXA7dT17Li4udSwuLi5iLC4uLnl9fXJldHVybiB1fTtmdW5jdGlvbiBpKGwpe3Q9bChlKX1mdW5jdGlvbiBvKGwpe2NvbnN0e3Byb3BzOnV9PWUsYz1lTihlLnBhcmVudCl8fHt9LGQ9W10scD1uZXcgU2V0O2xldCBmPXt9LHk9MS8wO2ZvcihsZXQgQT0wO0E8aE07QSsrKXtjb25zdCBoPWdNW0FdLG09bltoXSxnPXVbaF0hPT12b2lkIDA/dVtoXTpjW2hdLEU9d2koZyksVD1oPT09bD9tLmlzQWN0aXZlOm51bGw7VD09PSExJiYoeT1BKTtsZXQgdj1nPT09Y1toXSYmZyE9PXVbaF0mJkU7aWYodiYmciYmZS5tYW51YWxseUFuaW1hdGVPbk1vdW50JiYodj0hMSksbS5wcm90ZWN0ZWRLZXlzPXsuLi5mfSwhbS5pc0FjdGl2ZSYmVD09PW51bGx8fCFnJiYhbS5wcmV2UHJvcHx8UHMoZyl8fHR5cGVvZiBnPT0iYm9vbGVhbiIpY29udGludWU7Y29uc3QgUj12TShtLnByZXZQcm9wLGcpO2xldCBfPVJ8fGg9PT1sJiZtLmlzQWN0aXZlJiYhdiYmRXx8QT55JiZFLEk9ITE7Y29uc3QgQz1BcnJheS5pc0FycmF5KGcpP2c6W2ddO2xldCBMPUMucmVkdWNlKGEoaCkse30pO1Q9PT0hMSYmKEw9e30pO2NvbnN0e3ByZXZSZXNvbHZlZFZhbHVlczpGPXt9fT1tLHE9ey4uLkYsLi4uTH0sVz1WPT57Xz0hMCxwLmhhcyhWKSYmKEk9ITAscC5kZWxldGUoVikpLG0ubmVlZHNBbmltYXRpbmdbVl09ITA7Y29uc3QgTj1lLmdldFZhbHVlKFYpO04mJihOLmxpdmVTdHlsZT0hMSl9O2Zvcihjb25zdCBWIGluIHEpe2NvbnN0IE49TFtWXSxVPUZbVl07aWYoZi5oYXNPd25Qcm9wZXJ0eShWKSljb250aW51ZTtsZXQgUz0hMTtZbShOKSYmWW0oVSk/Uz0hZkkoTixVKTpTPU4hPT1VLFM/TiE9bnVsbD9XKFYpOnAuYWRkKFYpOk4hPT12b2lkIDAmJnAuaGFzKFYpP1coVik6bS5wcm90ZWN0ZWRLZXlzW1ZdPSEwfW0ucHJldlByb3A9ZyxtLnByZXZSZXNvbHZlZFZhbHVlcz1MLG0uaXNBY3RpdmUmJihmPXsuLi5mLC4uLkx9KSxyJiZlLmJsb2NrSW5pdGlhbEFuaW1hdGlvbiYmKF89ITEpLF8mJighKHYmJlIpfHxJKSYmZC5wdXNoKC4uLkMubWFwKFY9Pih7YW5pbWF0aW9uOlYsb3B0aW9uczp7dHlwZTpofX0pKSl9aWYocC5zaXplKXtjb25zdCBBPXt9O3AuZm9yRWFjaChoPT57Y29uc3QgbT1lLmdldEJhc2VUYXJnZXQoaCksZz1lLmdldFZhbHVlKGgpO2cmJihnLmxpdmVTdHlsZT0hMCksQVtoXT1tPz9udWxsfSksZC5wdXNoKHthbmltYXRpb246QX0pfWxldCBiPSEhZC5sZW5ndGg7cmV0dXJuIHImJih1LmluaXRpYWw9PT0hMXx8dS5pbml0aWFsPT09dS5hbmltYXRlKSYmIWUubWFudWFsbHlBbmltYXRlT25Nb3VudCYmKGI9ITEpLHI9ITEsYj90KGQpOlByb21pc2UucmVzb2x2ZSgpfWZ1bmN0aW9uIHMobCx1KXt2YXIgYztpZihuW2xdLmlzQWN0aXZlPT09dSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7KGM9ZS52YXJpYW50Q2hpbGRyZW4pPT09bnVsbHx8Yz09PXZvaWQgMHx8Yy5mb3JFYWNoKHA9Pnt2YXIgZjtyZXR1cm4oZj1wLmFuaW1hdGlvblN0YXRlKT09PW51bGx8fGY9PT12b2lkIDA/dm9pZCAwOmYuc2V0QWN0aXZlKGwsdSl9KSxuW2xdLmlzQWN0aXZlPXU7Y29uc3QgZD1vKGwpO2Zvcihjb25zdCBwIGluIG4pbltwXS5wcm90ZWN0ZWRLZXlzPXt9O3JldHVybiBkfXJldHVybnthbmltYXRlQ2hhbmdlczpvLHNldEFjdGl2ZTpzLHNldEFuaW1hdGVGdW5jdGlvbjppLGdldFN0YXRlOigpPT5uLHJlc2V0OigpPT57bj1BdigpLHI9ITB9fX1mdW5jdGlvbiB2TShlLHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dCE9PWU6QXJyYXkuaXNBcnJheSh0KT8hZkkodCxlKTohMX1mdW5jdGlvbiBLbihlPSExKXtyZXR1cm57aXNBY3RpdmU6ZSxwcm90ZWN0ZWRLZXlzOnt9LG5lZWRzQW5pbWF0aW5nOnt9LHByZXZSZXNvbHZlZFZhbHVlczp7fX19ZnVuY3Rpb24gQXYoKXtyZXR1cm57YW5pbWF0ZTpLbighMCksd2hpbGVJblZpZXc6S24oKSx3aGlsZUhvdmVyOktuKCksd2hpbGVUYXA6S24oKSx3aGlsZURyYWc6S24oKSx3aGlsZUZvY3VzOktuKCksZXhpdDpLbigpfX1jbGFzcyBWbntjb25zdHJ1Y3Rvcih0KXt0aGlzLmlzTW91bnRlZD0hMSx0aGlzLm5vZGU9dH11cGRhdGUoKXt9fWNsYXNzIEVNIGV4dGVuZHMgVm57Y29uc3RydWN0b3IodCl7c3VwZXIodCksdC5hbmltYXRpb25TdGF0ZXx8KHQuYW5pbWF0aW9uU3RhdGU9eU0odCkpfXVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCl7Y29uc3R7YW5pbWF0ZTp0fT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtQcyh0KSYmKHRoaXMudW5tb3VudENvbnRyb2xzPXQuc3Vic2NyaWJlKHRoaXMubm9kZSkpfW1vdW50KCl7dGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpfXVwZGF0ZSgpe2NvbnN0e2FuaW1hdGU6dH09dGhpcy5ub2RlLmdldFByb3BzKCkse2FuaW1hdGU6bn09dGhpcy5ub2RlLnByZXZQcm9wc3x8e307dCE9PW4mJnRoaXMudXBkYXRlQW5pbWF0aW9uQ29udHJvbHNTdWJzY3JpcHRpb24oKX11bm1vdW50KCl7dmFyIHQ7dGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnJlc2V0KCksKHQ9dGhpcy51bm1vdW50Q29udHJvbHMpPT09bnVsbHx8dD09PXZvaWQgMHx8dC5jYWxsKHRoaXMpfX1sZXQgU009MDtjbGFzcyB3TSBleHRlbmRzIFZue2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlkPVNNKyt9dXBkYXRlKCl7aWYoIXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQpcmV0dXJuO2NvbnN0e2lzUHJlc2VudDp0LG9uRXhpdENvbXBsZXRlOm59PXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQse2lzUHJlc2VudDpyfT10aGlzLm5vZGUucHJldlByZXNlbmNlQ29udGV4dHx8e307aWYoIXRoaXMubm9kZS5hbmltYXRpb25TdGF0ZXx8dD09PXIpcmV0dXJuO2NvbnN0IGE9dGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZSgiZXhpdCIsIXQpO24mJiF0JiZhLnRoZW4oKCk9Pm4odGhpcy5pZCkpfW1vdW50KCl7Y29uc3R7cmVnaXN0ZXI6dH09dGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dHx8e307dCYmKHRoaXMudW5tb3VudD10KHRoaXMuaWQpKX11bm1vdW50KCl7fX1jb25zdCBUTT17YW5pbWF0aW9uOntGZWF0dXJlOkVNfSxleGl0OntGZWF0dXJlOndNfX07ZnVuY3Rpb24geGkoZSx0LG4scj17cGFzc2l2ZTohMH0pe3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIodCxuLHIpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuKX1mdW5jdGlvbiBCaShlKXtyZXR1cm57cG9pbnQ6e3g6ZS5wYWdlWCx5OmUucGFnZVl9fX1jb25zdCBrTT1lPT50PT5qaCh0KSYmZSh0LEJpKHQpKTtmdW5jdGlvbiBKYShlLHQsbixyKXtyZXR1cm4geGkoZSx0LGtNKG4pLHIpfWNvbnN0IHh2PShlLHQpPT5NYXRoLmFicyhlLXQpO2Z1bmN0aW9uIEFNKGUsdCl7Y29uc3Qgbj14dihlLngsdC54KSxyPXh2KGUueSx0LnkpO3JldHVybiBNYXRoLnNxcnQobioqMityKioyKX1jbGFzcyB0Tntjb25zdHJ1Y3Rvcih0LG4se3RyYW5zZm9ybVBhZ2VQb2ludDpyLGNvbnRleHRXaW5kb3c6YSxkcmFnU25hcFRvT3JpZ2luOmk9ITF9PXt9KXtpZih0aGlzLnN0YXJ0RXZlbnQ9bnVsbCx0aGlzLmxhc3RNb3ZlRXZlbnQ9bnVsbCx0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvPW51bGwsdGhpcy5oYW5kbGVycz17fSx0aGlzLmNvbnRleHRXaW5kb3c9d2luZG93LHRoaXMudXBkYXRlUG9pbnQ9KCk9PntpZighKHRoaXMubGFzdE1vdmVFdmVudCYmdGhpcy5sYXN0TW92ZUV2ZW50SW5mbykpcmV0dXJuO2NvbnN0IGQ9Q2wodGhpcy5sYXN0TW92ZUV2ZW50SW5mbyx0aGlzLmhpc3RvcnkpLHA9dGhpcy5zdGFydEV2ZW50IT09bnVsbCxmPUFNKGQub2Zmc2V0LHt4OjAseTowfSk+PTM7aWYoIXAmJiFmKXJldHVybjtjb25zdHtwb2ludDp5fT1kLHt0aW1lc3RhbXA6Yn09RGU7dGhpcy5oaXN0b3J5LnB1c2goey4uLnksdGltZXN0YW1wOmJ9KTtjb25zdHtvblN0YXJ0OkEsb25Nb3ZlOmh9PXRoaXMuaGFuZGxlcnM7cHx8KEEmJkEodGhpcy5sYXN0TW92ZUV2ZW50LGQpLHRoaXMuc3RhcnRFdmVudD10aGlzLmxhc3RNb3ZlRXZlbnQpLGgmJmgodGhpcy5sYXN0TW92ZUV2ZW50LGQpfSx0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlPShkLHApPT57dGhpcy5sYXN0TW92ZUV2ZW50PWQsdGhpcy5sYXN0TW92ZUV2ZW50SW5mbz1ObChwLHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSxtZS51cGRhdGUodGhpcy51cGRhdGVQb2ludCwhMCl9LHRoaXMuaGFuZGxlUG9pbnRlclVwPShkLHApPT57dGhpcy5lbmQoKTtjb25zdHtvbkVuZDpmLG9uU2Vzc2lvbkVuZDp5LHJlc3VtZUFuaW1hdGlvbjpifT10aGlzLmhhbmRsZXJzO2lmKHRoaXMuZHJhZ1NuYXBUb09yaWdpbiYmYiYmYigpLCEodGhpcy5sYXN0TW92ZUV2ZW50JiZ0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvKSlyZXR1cm47Y29uc3QgQT1DbChkLnR5cGU9PT0icG9pbnRlcmNhbmNlbCI/dGhpcy5sYXN0TW92ZUV2ZW50SW5mbzpObChwLHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSx0aGlzLmhpc3RvcnkpO3RoaXMuc3RhcnRFdmVudCYmZiYmZihkLEEpLHkmJnkoZCxBKX0sIWpoKHQpKXJldHVybjt0aGlzLmRyYWdTbmFwVG9PcmlnaW49aSx0aGlzLmhhbmRsZXJzPW4sdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQ9cix0aGlzLmNvbnRleHRXaW5kb3c9YXx8d2luZG93O2NvbnN0IG89QmkodCkscz1ObChvLHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSx7cG9pbnQ6bH09cyx7dGltZXN0YW1wOnV9PURlO3RoaXMuaGlzdG9yeT1bey4uLmwsdGltZXN0YW1wOnV9XTtjb25zdHtvblNlc3Npb25TdGFydDpjfT1uO2MmJmModCxDbChzLHRoaXMuaGlzdG9yeSkpLHRoaXMucmVtb3ZlTGlzdGVuZXJzPVVpKEphKHRoaXMuY29udGV4dFdpbmRvdywicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUG9pbnRlck1vdmUpLEphKHRoaXMuY29udGV4dFdpbmRvdywicG9pbnRlcnVwIix0aGlzLmhhbmRsZVBvaW50ZXJVcCksSmEodGhpcy5jb250ZXh0V2luZG93LCJwb2ludGVyY2FuY2VsIix0aGlzLmhhbmRsZVBvaW50ZXJVcCkpfXVwZGF0ZUhhbmRsZXJzKHQpe3RoaXMuaGFuZGxlcnM9dH1lbmQoKXt0aGlzLnJlbW92ZUxpc3RlbmVycyYmdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKSwkbih0aGlzLnVwZGF0ZVBvaW50KX19ZnVuY3Rpb24gTmwoZSx0KXtyZXR1cm4gdD97cG9pbnQ6dChlLnBvaW50KX06ZX1mdW5jdGlvbiBSdihlLHQpe3JldHVybnt4OmUueC10LngseTplLnktdC55fX1mdW5jdGlvbiBDbCh7cG9pbnQ6ZX0sdCl7cmV0dXJue3BvaW50OmUsZGVsdGE6UnYoZSxuTih0KSksb2Zmc2V0OlJ2KGUseE0odCkpLHZlbG9jaXR5OlJNKHQsLjEpfX1mdW5jdGlvbiB4TShlKXtyZXR1cm4gZVswXX1mdW5jdGlvbiBuTihlKXtyZXR1cm4gZVtlLmxlbmd0aC0xXX1mdW5jdGlvbiBSTShlLHQpe2lmKGUubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjB9O2xldCBuPWUubGVuZ3RoLTEscj1udWxsO2NvbnN0IGE9bk4oZSk7Zm9yKDtuPj0wJiYocj1lW25dLCEoYS50aW1lc3RhbXAtci50aW1lc3RhbXA+ZG4odCkpKTspbi0tO2lmKCFyKXJldHVybnt4OjAseTowfTtjb25zdCBpPXBuKGEudGltZXN0YW1wLXIudGltZXN0YW1wKTtpZihpPT09MClyZXR1cm57eDowLHk6MH07Y29uc3Qgbz17eDooYS54LXIueCkvaSx5OihhLnktci55KS9pfTtyZXR1cm4gby54PT09MS8wJiYoby54PTApLG8ueT09PTEvMCYmKG8ueT0wKSxvfWNvbnN0IHJOPTFlLTQsX009MS1yTixJTT0xK3JOLGFOPS4wMSxOTT0wLWFOLENNPTArYU47ZnVuY3Rpb24gYnQoZSl7cmV0dXJuIGUubWF4LWUubWlufWZ1bmN0aW9uIE9NKGUsdCxuKXtyZXR1cm4gTWF0aC5hYnMoZS10KTw9bn1mdW5jdGlvbiBfdihlLHQsbixyPS41KXtlLm9yaWdpbj1yLGUub3JpZ2luUG9pbnQ9eWUodC5taW4sdC5tYXgsZS5vcmlnaW4pLGUuc2NhbGU9YnQobikvYnQodCksZS50cmFuc2xhdGU9eWUobi5taW4sbi5tYXgsZS5vcmlnaW4pLWUub3JpZ2luUG9pbnQsKGUuc2NhbGU+PV9NJiZlLnNjYWxlPD1JTXx8aXNOYU4oZS5zY2FsZSkpJiYoZS5zY2FsZT0xKSwoZS50cmFuc2xhdGU+PU5NJiZlLnRyYW5zbGF0ZTw9Q018fGlzTmFOKGUudHJhbnNsYXRlKSkmJihlLnRyYW5zbGF0ZT0wKX1mdW5jdGlvbiBlaShlLHQsbixyKXtfdihlLngsdC54LG4ueCxyP3Iub3JpZ2luWDp2b2lkIDApLF92KGUueSx0Lnksbi55LHI/ci5vcmlnaW5ZOnZvaWQgMCl9ZnVuY3Rpb24gSXYoZSx0LG4pe2UubWluPW4ubWluK3QubWluLGUubWF4PWUubWluK2J0KHQpfWZ1bmN0aW9uIExNKGUsdCxuKXtJdihlLngsdC54LG4ueCksSXYoZS55LHQueSxuLnkpfWZ1bmN0aW9uIE52KGUsdCxuKXtlLm1pbj10Lm1pbi1uLm1pbixlLm1heD1lLm1pbitidCh0KX1mdW5jdGlvbiB0aShlLHQsbil7TnYoZS54LHQueCxuLngpLE52KGUueSx0Lnksbi55KX1mdW5jdGlvbiBETShlLHttaW46dCxtYXg6bn0scil7cmV0dXJuIHQhPT12b2lkIDAmJmU8dD9lPXI/eWUodCxlLHIubWluKTpNYXRoLm1heChlLHQpOm4hPT12b2lkIDAmJmU+biYmKGU9cj95ZShuLGUsci5tYXgpOk1hdGgubWluKGUsbikpLGV9ZnVuY3Rpb24gQ3YoZSx0LG4pe3JldHVybnttaW46dCE9PXZvaWQgMD9lLm1pbit0OnZvaWQgMCxtYXg6biE9PXZvaWQgMD9lLm1heCtuLShlLm1heC1lLm1pbik6dm9pZCAwfX1mdW5jdGlvbiBNTShlLHt0b3A6dCxsZWZ0Om4sYm90dG9tOnIscmlnaHQ6YX0pe3JldHVybnt4OkN2KGUueCxuLGEpLHk6Q3YoZS55LHQscil9fWZ1bmN0aW9uIE92KGUsdCl7bGV0IG49dC5taW4tZS5taW4scj10Lm1heC1lLm1heDtyZXR1cm4gdC5tYXgtdC5taW48ZS5tYXgtZS5taW4mJihbbixyXT1bcixuXSkse21pbjpuLG1heDpyfX1mdW5jdGlvbiBQTShlLHQpe3JldHVybnt4Ok92KGUueCx0LngpLHk6T3YoZS55LHQueSl9fWZ1bmN0aW9uIEZNKGUsdCl7bGV0IG49LjU7Y29uc3Qgcj1idChlKSxhPWJ0KHQpO3JldHVybiBhPnI/bj1pYSh0Lm1pbix0Lm1heC1yLGUubWluKTpyPmEmJihuPWlhKGUubWluLGUubWF4LWEsdC5taW4pKSxibigwLDEsbil9ZnVuY3Rpb24gVU0oZSx0KXtjb25zdCBuPXt9O3JldHVybiB0Lm1pbiE9PXZvaWQgMCYmKG4ubWluPXQubWluLWUubWluKSx0Lm1heCE9PXZvaWQgMCYmKG4ubWF4PXQubWF4LWUubWluKSxufWNvbnN0IGlnPS4zNTtmdW5jdGlvbiBCTShlPWlnKXtyZXR1cm4gZT09PSExP2U9MDplPT09ITAmJihlPWlnKSx7eDpMdihlLCJsZWZ0IiwicmlnaHQiKSx5Okx2KGUsInRvcCIsImJvdHRvbSIpfX1mdW5jdGlvbiBMdihlLHQsbil7cmV0dXJue21pbjpEdihlLHQpLG1heDpEdihlLG4pfX1mdW5jdGlvbiBEdihlLHQpe3JldHVybiB0eXBlb2YgZT09Im51bWJlciI/ZTplW3RdfHwwfWNvbnN0IE12PSgpPT4oe3RyYW5zbGF0ZTowLHNjYWxlOjEsb3JpZ2luOjAsb3JpZ2luUG9pbnQ6MH0pLCRyPSgpPT4oe3g6TXYoKSx5Ok12KCl9KSxQdj0oKT0+KHttaW46MCxtYXg6MH0pLGtlPSgpPT4oe3g6UHYoKSx5OlB2KCl9KTtmdW5jdGlvbiBrdChlKXtyZXR1cm5bZSgieCIpLGUoInkiKV19ZnVuY3Rpb24gaU4oe3RvcDplLGxlZnQ6dCxyaWdodDpuLGJvdHRvbTpyfSl7cmV0dXJue3g6e21pbjp0LG1heDpufSx5OnttaW46ZSxtYXg6cn19fWZ1bmN0aW9uICRNKHt4OmUseTp0fSl7cmV0dXJue3RvcDp0Lm1pbixyaWdodDplLm1heCxib3R0b206dC5tYXgsbGVmdDplLm1pbn19ZnVuY3Rpb24gek0oZSx0KXtpZighdClyZXR1cm4gZTtjb25zdCBuPXQoe3g6ZS5sZWZ0LHk6ZS50b3B9KSxyPXQoe3g6ZS5yaWdodCx5OmUuYm90dG9tfSk7cmV0dXJue3RvcDpuLnksbGVmdDpuLngsYm90dG9tOnIueSxyaWdodDpyLnh9fWZ1bmN0aW9uIE9sKGUpe3JldHVybiBlPT09dm9pZCAwfHxlPT09MX1mdW5jdGlvbiBvZyh7c2NhbGU6ZSxzY2FsZVg6dCxzY2FsZVk6bn0pe3JldHVybiFPbChlKXx8IU9sKHQpfHwhT2wobil9ZnVuY3Rpb24gSm4oZSl7cmV0dXJuIG9nKGUpfHxvTihlKXx8ZS56fHxlLnJvdGF0ZXx8ZS5yb3RhdGVYfHxlLnJvdGF0ZVl8fGUuc2tld1h8fGUuc2tld1l9ZnVuY3Rpb24gb04oZSl7cmV0dXJuIEZ2KGUueCl8fEZ2KGUueSl9ZnVuY3Rpb24gRnYoZSl7cmV0dXJuIGUmJmUhPT0iMCUifWZ1bmN0aW9uIGdzKGUsdCxuKXtjb25zdCByPWUtbixhPXQqcjtyZXR1cm4gbithfWZ1bmN0aW9uIFV2KGUsdCxuLHIsYSl7cmV0dXJuIGEhPT12b2lkIDAmJihlPWdzKGUsYSxyKSksZ3MoZSxuLHIpK3R9ZnVuY3Rpb24gc2coZSx0PTAsbj0xLHIsYSl7ZS5taW49VXYoZS5taW4sdCxuLHIsYSksZS5tYXg9VXYoZS5tYXgsdCxuLHIsYSl9ZnVuY3Rpb24gc04oZSx7eDp0LHk6bn0pe3NnKGUueCx0LnRyYW5zbGF0ZSx0LnNjYWxlLHQub3JpZ2luUG9pbnQpLHNnKGUueSxuLnRyYW5zbGF0ZSxuLnNjYWxlLG4ub3JpZ2luUG9pbnQpfWNvbnN0IEJ2PS45OTk5OTk5OTk5OTksJHY9MS4wMDAwMDAwMDAwMDAxO2Z1bmN0aW9uIGpNKGUsdCxuLHI9ITEpe2NvbnN0IGE9bi5sZW5ndGg7aWYoIWEpcmV0dXJuO3QueD10Lnk9MTtsZXQgaSxvO2ZvcihsZXQgcz0wO3M8YTtzKyspe2k9bltzXSxvPWkucHJvamVjdGlvbkRlbHRhO2NvbnN0e3Zpc3VhbEVsZW1lbnQ6bH09aS5vcHRpb25zO2wmJmwucHJvcHMuc3R5bGUmJmwucHJvcHMuc3R5bGUuZGlzcGxheT09PSJjb250ZW50cyJ8fChyJiZpLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZpLnNjcm9sbCYmaSE9PWkucm9vdCYmanIoZSx7eDotaS5zY3JvbGwub2Zmc2V0LngseTotaS5zY3JvbGwub2Zmc2V0Lnl9KSxvJiYodC54Kj1vLnguc2NhbGUsdC55Kj1vLnkuc2NhbGUsc04oZSxvKSksciYmSm4oaS5sYXRlc3RWYWx1ZXMpJiZqcihlLGkubGF0ZXN0VmFsdWVzKSl9dC54PCR2JiZ0Lng+QnYmJih0Lng9MSksdC55PCR2JiZ0Lnk+QnYmJih0Lnk9MSl9ZnVuY3Rpb24genIoZSx0KXtlLm1pbj1lLm1pbit0LGUubWF4PWUubWF4K3R9ZnVuY3Rpb24genYoZSx0LG4scixhPS41KXtjb25zdCBpPXllKGUubWluLGUubWF4LGEpO3NnKGUsdCxuLGkscil9ZnVuY3Rpb24ganIoZSx0KXt6dihlLngsdC54LHQuc2NhbGVYLHQuc2NhbGUsdC5vcmlnaW5YKSx6dihlLnksdC55LHQuc2NhbGVZLHQuc2NhbGUsdC5vcmlnaW5ZKX1mdW5jdGlvbiBsTihlLHQpe3JldHVybiBpTih6TShlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQpKX1mdW5jdGlvbiBHTShlLHQsbil7Y29uc3Qgcj1sTihlLG4pLHtzY3JvbGw6YX09dDtyZXR1cm4gYSYmKHpyKHIueCxhLm9mZnNldC54KSx6cihyLnksYS5vZmZzZXQueSkpLHJ9Y29uc3QgdU49KHtjdXJyZW50OmV9KT0+ZT9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6bnVsbCxxTT1uZXcgV2Vha01hcDtjbGFzcyBWTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLm9wZW5EcmFnTG9jaz1udWxsLHRoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmN1cnJlbnREaXJlY3Rpb249bnVsbCx0aGlzLm9yaWdpblBvaW50PXt4OjAseTowfSx0aGlzLmNvbnN0cmFpbnRzPSExLHRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzPSExLHRoaXMuZWxhc3RpYz1rZSgpLHRoaXMudmlzdWFsRWxlbWVudD10fXN0YXJ0KHQse3NuYXBUb0N1cnNvcjpuPSExfT17fSl7Y29uc3R7cHJlc2VuY2VDb250ZXh0OnJ9PXRoaXMudmlzdWFsRWxlbWVudDtpZihyJiZyLmlzUHJlc2VudD09PSExKXJldHVybjtjb25zdCBhPWM9Pntjb25zdHtkcmFnU25hcFRvT3JpZ2luOmR9PXRoaXMuZ2V0UHJvcHMoKTtkP3RoaXMucGF1c2VBbmltYXRpb24oKTp0aGlzLnN0b3BBbmltYXRpb24oKSxuJiZ0aGlzLnNuYXBUb0N1cnNvcihCaShjKS5wb2ludCl9LGk9KGMsZCk9Pntjb25zdHtkcmFnOnAsZHJhZ1Byb3BhZ2F0aW9uOmYsb25EcmFnU3RhcnQ6eX09dGhpcy5nZXRQcm9wcygpO2lmKHAmJiFmJiYodGhpcy5vcGVuRHJhZ0xvY2smJnRoaXMub3BlbkRyYWdMb2NrKCksdGhpcy5vcGVuRHJhZ0xvY2s9RkwocCksIXRoaXMub3BlbkRyYWdMb2NrKSlyZXR1cm47dGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuY3VycmVudERpcmVjdGlvbj1udWxsLHRoaXMucmVzb2x2ZUNvbnN0cmFpbnRzKCksdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24mJih0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5pc0FuaW1hdGlvbkJsb2NrZWQ9ITAsdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24udGFyZ2V0PXZvaWQgMCksa3QoQT0+e2xldCBoPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKEEpLmdldCgpfHwwO2lmKEp0LnRlc3QoaCkpe2NvbnN0e3Byb2plY3Rpb246bX09dGhpcy52aXN1YWxFbGVtZW50O2lmKG0mJm0ubGF5b3V0KXtjb25zdCBnPW0ubGF5b3V0LmxheW91dEJveFtBXTtnJiYoaD1idChnKSoocGFyc2VGbG9hdChoKS8xMDApKX19dGhpcy5vcmlnaW5Qb2ludFtBXT1ofSkseSYmbWUucG9zdFJlbmRlcigoKT0+eShjLGQpKSxabSh0aGlzLnZpc3VhbEVsZW1lbnQsInRyYW5zZm9ybSIpO2NvbnN0e2FuaW1hdGlvblN0YXRlOmJ9PXRoaXMudmlzdWFsRWxlbWVudDtiJiZiLnNldEFjdGl2ZSgid2hpbGVEcmFnIiwhMCl9LG89KGMsZCk9Pntjb25zdHtkcmFnUHJvcGFnYXRpb246cCxkcmFnRGlyZWN0aW9uTG9jazpmLG9uRGlyZWN0aW9uTG9jazp5LG9uRHJhZzpifT10aGlzLmdldFByb3BzKCk7aWYoIXAmJiF0aGlzLm9wZW5EcmFnTG9jaylyZXR1cm47Y29uc3R7b2Zmc2V0OkF9PWQ7aWYoZiYmdGhpcy5jdXJyZW50RGlyZWN0aW9uPT09bnVsbCl7dGhpcy5jdXJyZW50RGlyZWN0aW9uPUhNKEEpLHRoaXMuY3VycmVudERpcmVjdGlvbiE9PW51bGwmJnkmJnkodGhpcy5jdXJyZW50RGlyZWN0aW9uKTtyZXR1cm59dGhpcy51cGRhdGVBeGlzKCJ4IixkLnBvaW50LEEpLHRoaXMudXBkYXRlQXhpcygieSIsZC5wb2ludCxBKSx0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCksYiYmYihjLGQpfSxzPShjLGQpPT50aGlzLnN0b3AoYyxkKSxsPSgpPT5rdChjPT57dmFyIGQ7cmV0dXJuIHRoaXMuZ2V0QW5pbWF0aW9uU3RhdGUoYyk9PT0icGF1c2VkIiYmKChkPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGMpLmFuaW1hdGlvbik9PT1udWxsfHxkPT09dm9pZCAwP3ZvaWQgMDpkLnBsYXkoKSl9KSx7ZHJhZ1NuYXBUb09yaWdpbjp1fT10aGlzLmdldFByb3BzKCk7dGhpcy5wYW5TZXNzaW9uPW5ldyB0Tih0LHtvblNlc3Npb25TdGFydDphLG9uU3RhcnQ6aSxvbk1vdmU6byxvblNlc3Npb25FbmQ6cyxyZXN1bWVBbmltYXRpb246bH0se3RyYW5zZm9ybVBhZ2VQb2ludDp0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCksZHJhZ1NuYXBUb09yaWdpbjp1LGNvbnRleHRXaW5kb3c6dU4odGhpcy52aXN1YWxFbGVtZW50KX0pfXN0b3AodCxuKXtjb25zdCByPXRoaXMuaXNEcmFnZ2luZztpZih0aGlzLmNhbmNlbCgpLCFyKXJldHVybjtjb25zdHt2ZWxvY2l0eTphfT1uO3RoaXMuc3RhcnRBbmltYXRpb24oYSk7Y29uc3R7b25EcmFnRW5kOml9PXRoaXMuZ2V0UHJvcHMoKTtpJiZtZS5wb3N0UmVuZGVyKCgpPT5pKHQsbikpfWNhbmNlbCgpe3RoaXMuaXNEcmFnZ2luZz0hMTtjb25zdHtwcm9qZWN0aW9uOnQsYW5pbWF0aW9uU3RhdGU6bn09dGhpcy52aXN1YWxFbGVtZW50O3QmJih0LmlzQW5pbWF0aW9uQmxvY2tlZD0hMSksdGhpcy5wYW5TZXNzaW9uJiZ0aGlzLnBhblNlc3Npb24uZW5kKCksdGhpcy5wYW5TZXNzaW9uPXZvaWQgMDtjb25zdHtkcmFnUHJvcGFnYXRpb246cn09dGhpcy5nZXRQcm9wcygpOyFyJiZ0aGlzLm9wZW5EcmFnTG9jayYmKHRoaXMub3BlbkRyYWdMb2NrKCksdGhpcy5vcGVuRHJhZ0xvY2s9bnVsbCksbiYmbi5zZXRBY3RpdmUoIndoaWxlRHJhZyIsITEpfXVwZGF0ZUF4aXModCxuLHIpe2NvbnN0e2RyYWc6YX09dGhpcy5nZXRQcm9wcygpO2lmKCFyfHwhcG8odCxhLHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2NvbnN0IGk9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUodCk7bGV0IG89dGhpcy5vcmlnaW5Qb2ludFt0XStyW3RdO3RoaXMuY29uc3RyYWludHMmJnRoaXMuY29uc3RyYWludHNbdF0mJihvPURNKG8sdGhpcy5jb25zdHJhaW50c1t0XSx0aGlzLmVsYXN0aWNbdF0pKSxpLnNldChvKX1yZXNvbHZlQ29uc3RyYWludHMoKXt2YXIgdDtjb25zdHtkcmFnQ29uc3RyYWludHM6bixkcmFnRWxhc3RpYzpyfT10aGlzLmdldFByb3BzKCksYT10aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiYmIXRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmxheW91dD90aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5tZWFzdXJlKCExKToodD10aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbik9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LmxheW91dCxpPXRoaXMuY29uc3RyYWludHM7biYmVXIobik/dGhpcy5jb25zdHJhaW50c3x8KHRoaXMuY29uc3RyYWludHM9dGhpcy5yZXNvbHZlUmVmQ29uc3RyYWludHMoKSk6biYmYT90aGlzLmNvbnN0cmFpbnRzPU1NKGEubGF5b3V0Qm94LG4pOnRoaXMuY29uc3RyYWludHM9ITEsdGhpcy5lbGFzdGljPUJNKHIpLGkhPT10aGlzLmNvbnN0cmFpbnRzJiZhJiZ0aGlzLmNvbnN0cmFpbnRzJiYhdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMmJmt0KG89Pnt0aGlzLmNvbnN0cmFpbnRzIT09ITEmJnRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKG8pJiYodGhpcy5jb25zdHJhaW50c1tvXT1VTShhLmxheW91dEJveFtvXSx0aGlzLmNvbnN0cmFpbnRzW29dKSl9KX1yZXNvbHZlUmVmQ29uc3RyYWludHMoKXtjb25zdHtkcmFnQ29uc3RyYWludHM6dCxvbk1lYXN1cmVEcmFnQ29uc3RyYWludHM6bn09dGhpcy5nZXRQcm9wcygpO2lmKCF0fHwhVXIodCkpcmV0dXJuITE7Y29uc3Qgcj10LmN1cnJlbnQse3Byb2plY3Rpb246YX09dGhpcy52aXN1YWxFbGVtZW50O2lmKCFhfHwhYS5sYXlvdXQpcmV0dXJuITE7Y29uc3QgaT1HTShyLGEucm9vdCx0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCkpO2xldCBvPVBNKGEubGF5b3V0LmxheW91dEJveCxpKTtpZihuKXtjb25zdCBzPW4oJE0obykpO3RoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzPSEhcyxzJiYobz1pTihzKSl9cmV0dXJuIG99c3RhcnRBbmltYXRpb24odCl7Y29uc3R7ZHJhZzpuLGRyYWdNb21lbnR1bTpyLGRyYWdFbGFzdGljOmEsZHJhZ1RyYW5zaXRpb246aSxkcmFnU25hcFRvT3JpZ2luOm8sb25EcmFnVHJhbnNpdGlvbkVuZDpzfT10aGlzLmdldFByb3BzKCksbD10aGlzLmNvbnN0cmFpbnRzfHx7fSx1PWt0KGM9PntpZighcG8oYyxuLHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2xldCBkPWwmJmxbY118fHt9O28mJihkPXttaW46MCxtYXg6MH0pO2NvbnN0IHA9YT8yMDA6MWU2LGY9YT80MDoxZTcseT17dHlwZToiaW5lcnRpYSIsdmVsb2NpdHk6cj90W2NdOjAsYm91bmNlU3RpZmZuZXNzOnAsYm91bmNlRGFtcGluZzpmLHRpbWVDb25zdGFudDo3NTAscmVzdERlbHRhOjEscmVzdFNwZWVkOjEwLC4uLmksLi4uZH07cmV0dXJuIHRoaXMuc3RhcnRBeGlzVmFsdWVBbmltYXRpb24oYyx5KX0pO3JldHVybiBQcm9taXNlLmFsbCh1KS50aGVuKHMpfXN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKHQsbil7Y29uc3Qgcj10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZSh0KTtyZXR1cm4gWm0odGhpcy52aXN1YWxFbGVtZW50LHQpLHIuc3RhcnQoZWIodCxyLDAsbix0aGlzLnZpc3VhbEVsZW1lbnQsITEpKX1zdG9wQW5pbWF0aW9uKCl7a3QodD0+dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUodCkuc3RvcCgpKX1wYXVzZUFuaW1hdGlvbigpe2t0KHQ9Pnt2YXIgbjtyZXR1cm4obj10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZSh0KS5hbmltYXRpb24pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5wYXVzZSgpfSl9Z2V0QW5pbWF0aW9uU3RhdGUodCl7dmFyIG47cmV0dXJuKG49dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUodCkuYW5pbWF0aW9uKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uc3RhdGV9Z2V0QXhpc01vdGlvblZhbHVlKHQpe2NvbnN0IG49YF9kcmFnJHt0LnRvVXBwZXJDYXNlKCl9YCxyPXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpLGE9cltuXTtyZXR1cm4gYXx8dGhpcy52aXN1YWxFbGVtZW50LmdldFZhbHVlKHQsKHIuaW5pdGlhbD9yLmluaXRpYWxbdF06dm9pZCAwKXx8MCl9c25hcFRvQ3Vyc29yKHQpe2t0KG49Pntjb25zdHtkcmFnOnJ9PXRoaXMuZ2V0UHJvcHMoKTtpZighcG8obixyLHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2NvbnN0e3Byb2plY3Rpb246YX09dGhpcy52aXN1YWxFbGVtZW50LGk9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUobik7aWYoYSYmYS5sYXlvdXQpe2NvbnN0e21pbjpvLG1heDpzfT1hLmxheW91dC5sYXlvdXRCb3hbbl07aS5zZXQodFtuXS15ZShvLHMsLjUpKX19KX1zY2FsZVBvc2l0aW9uV2l0aGluQ29uc3RyYWludHMoKXtpZighdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpcmV0dXJuO2NvbnN0e2RyYWc6dCxkcmFnQ29uc3RyYWludHM6bn09dGhpcy5nZXRQcm9wcygpLHtwcm9qZWN0aW9uOnJ9PXRoaXMudmlzdWFsRWxlbWVudDtpZighVXIobil8fCFyfHwhdGhpcy5jb25zdHJhaW50cylyZXR1cm47dGhpcy5zdG9wQW5pbWF0aW9uKCk7Y29uc3QgYT17eDowLHk6MH07a3Qobz0+e2NvbnN0IHM9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUobyk7aWYocyYmdGhpcy5jb25zdHJhaW50cyE9PSExKXtjb25zdCBsPXMuZ2V0KCk7YVtvXT1GTSh7bWluOmwsbWF4Omx9LHRoaXMuY29uc3RyYWludHNbb10pfX0pO2NvbnN0e3RyYW5zZm9ybVRlbXBsYXRlOml9PXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO3RoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybT1pP2koe30sIiIpOiJub25lIixyLnJvb3QmJnIucm9vdC51cGRhdGVTY3JvbGwoKSxyLnVwZGF0ZUxheW91dCgpLHRoaXMucmVzb2x2ZUNvbnN0cmFpbnRzKCksa3Qobz0+e2lmKCFwbyhvLHQsbnVsbCkpcmV0dXJuO2NvbnN0IHM9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUobykse21pbjpsLG1heDp1fT10aGlzLmNvbnN0cmFpbnRzW29dO3Muc2V0KHllKGwsdSxhW29dKSl9KX1hZGRMaXN0ZW5lcnMoKXtpZighdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpcmV0dXJuO3FNLnNldCh0aGlzLnZpc3VhbEVsZW1lbnQsdGhpcyk7Y29uc3QgdD10aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudCxuPUphKHQsInBvaW50ZXJkb3duIixsPT57Y29uc3R7ZHJhZzp1LGRyYWdMaXN0ZW5lcjpjPSEwfT10aGlzLmdldFByb3BzKCk7dSYmYyYmdGhpcy5zdGFydChsKX0pLHI9KCk9Pntjb25zdHtkcmFnQ29uc3RyYWludHM6bH09dGhpcy5nZXRQcm9wcygpO1VyKGwpJiZsLmN1cnJlbnQmJih0aGlzLmNvbnN0cmFpbnRzPXRoaXMucmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCkpfSx7cHJvamVjdGlvbjphfT10aGlzLnZpc3VhbEVsZW1lbnQsaT1hLmFkZEV2ZW50TGlzdGVuZXIoIm1lYXN1cmUiLHIpO2EmJiFhLmxheW91dCYmKGEucm9vdCYmYS5yb290LnVwZGF0ZVNjcm9sbCgpLGEudXBkYXRlTGF5b3V0KCkpLG1lLnJlYWQocik7Y29uc3Qgbz14aSh3aW5kb3csInJlc2l6ZSIsKCk9PnRoaXMuc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkpLHM9YS5hZGRFdmVudExpc3RlbmVyKCJkaWRVcGRhdGUiLCh7ZGVsdGE6bCxoYXNMYXlvdXRDaGFuZ2VkOnV9KT0+e3RoaXMuaXNEcmFnZ2luZyYmdSYmKGt0KGM9Pntjb25zdCBkPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGMpO2QmJih0aGlzLm9yaWdpblBvaW50W2NdKz1sW2NdLnRyYW5zbGF0ZSxkLnNldChkLmdldCgpK2xbY10udHJhbnNsYXRlKSl9KSx0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCkpfSk7cmV0dXJuKCk9PntvKCksbigpLGkoKSxzJiZzKCl9fWdldFByb3BzKCl7Y29uc3QgdD10aGlzLnZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKSx7ZHJhZzpuPSExLGRyYWdEaXJlY3Rpb25Mb2NrOnI9ITEsZHJhZ1Byb3BhZ2F0aW9uOmE9ITEsZHJhZ0NvbnN0cmFpbnRzOmk9ITEsZHJhZ0VsYXN0aWM6bz1pZyxkcmFnTW9tZW50dW06cz0hMH09dDtyZXR1cm57Li4udCxkcmFnOm4sZHJhZ0RpcmVjdGlvbkxvY2s6cixkcmFnUHJvcGFnYXRpb246YSxkcmFnQ29uc3RyYWludHM6aSxkcmFnRWxhc3RpYzpvLGRyYWdNb21lbnR1bTpzfX19ZnVuY3Rpb24gcG8oZSx0LG4pe3JldHVybih0PT09ITB8fHQ9PT1lKSYmKG49PT1udWxsfHxuPT09ZSl9ZnVuY3Rpb24gSE0oZSx0PTEwKXtsZXQgbj1udWxsO3JldHVybiBNYXRoLmFicyhlLnkpPnQ/bj0ieSI6TWF0aC5hYnMoZS54KT50JiYobj0ieCIpLG59Y2xhc3MgV00gZXh0ZW5kcyBWbntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHM9Z3QsdGhpcy5yZW1vdmVMaXN0ZW5lcnM9Z3QsdGhpcy5jb250cm9scz1uZXcgVk0odCl9bW91bnQoKXtjb25zdHtkcmFnQ29udHJvbHM6dH09dGhpcy5ub2RlLmdldFByb3BzKCk7dCYmKHRoaXMucmVtb3ZlR3JvdXBDb250cm9scz10LnN1YnNjcmliZSh0aGlzLmNvbnRyb2xzKSksdGhpcy5yZW1vdmVMaXN0ZW5lcnM9dGhpcy5jb250cm9scy5hZGRMaXN0ZW5lcnMoKXx8Z3R9dW5tb3VudCgpe3RoaXMucmVtb3ZlR3JvdXBDb250cm9scygpLHRoaXMucmVtb3ZlTGlzdGVuZXJzKCl9fWNvbnN0IGp2PWU9Pih0LG4pPT57ZSYmbWUucG9zdFJlbmRlcigoKT0+ZSh0LG4pKX07Y2xhc3MgWU0gZXh0ZW5kcyBWbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyPWd0fW9uUG9pbnRlckRvd24odCl7dGhpcy5zZXNzaW9uPW5ldyB0Tih0LHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSx7dHJhbnNmb3JtUGFnZVBvaW50OnRoaXMubm9kZS5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSxjb250ZXh0V2luZG93OnVOKHRoaXMubm9kZSl9KX1jcmVhdGVQYW5IYW5kbGVycygpe2NvbnN0e29uUGFuU2Vzc2lvblN0YXJ0OnQsb25QYW5TdGFydDpuLG9uUGFuOnIsb25QYW5FbmQ6YX09dGhpcy5ub2RlLmdldFByb3BzKCk7cmV0dXJue29uU2Vzc2lvblN0YXJ0Omp2KHQpLG9uU3RhcnQ6anYobiksb25Nb3ZlOnIsb25FbmQ6KGksbyk9PntkZWxldGUgdGhpcy5zZXNzaW9uLGEmJm1lLnBvc3RSZW5kZXIoKCk9PmEoaSxvKSl9fX1tb3VudCgpe3RoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lcj1KYSh0aGlzLm5vZGUuY3VycmVudCwicG9pbnRlcmRvd24iLHQ9PnRoaXMub25Qb2ludGVyRG93bih0KSl9dXBkYXRlKCl7dGhpcy5zZXNzaW9uJiZ0aGlzLnNlc3Npb24udXBkYXRlSGFuZGxlcnModGhpcy5jcmVhdGVQYW5IYW5kbGVycygpKX11bm1vdW50KCl7dGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyKCksdGhpcy5zZXNzaW9uJiZ0aGlzLnNlc3Npb24uZW5kKCl9fWNvbnN0IExvPXtoYXNBbmltYXRlZFNpbmNlUmVzaXplOiEwLGhhc0V2ZXJVcGRhdGVkOiExfTtmdW5jdGlvbiBHdihlLHQpe3JldHVybiB0Lm1heD09PXQubWluPzA6ZS8odC5tYXgtdC5taW4pKjEwMH1jb25zdCBfYT17Y29ycmVjdDooZSx0KT0+e2lmKCF0LnRhcmdldClyZXR1cm4gZTtpZih0eXBlb2YgZT09InN0cmluZyIpaWYoSC50ZXN0KGUpKWU9cGFyc2VGbG9hdChlKTtlbHNlIHJldHVybiBlO2NvbnN0IG49R3YoZSx0LnRhcmdldC54KSxyPUd2KGUsdC50YXJnZXQueSk7cmV0dXJuYCR7bn0lICR7cn0lYH19LEtNPXtjb3JyZWN0OihlLHt0cmVlU2NhbGU6dCxwcm9qZWN0aW9uRGVsdGE6bn0pPT57Y29uc3Qgcj1lLGE9em4ucGFyc2UoZSk7aWYoYS5sZW5ndGg+NSlyZXR1cm4gcjtjb25zdCBpPXpuLmNyZWF0ZVRyYW5zZm9ybWVyKGUpLG89dHlwZW9mIGFbMF0hPSJudW1iZXIiPzE6MCxzPW4ueC5zY2FsZSp0LngsbD1uLnkuc2NhbGUqdC55O2FbMCtvXS89cyxhWzErb10vPWw7Y29uc3QgdT15ZShzLGwsLjUpO3JldHVybiB0eXBlb2YgYVsyK29dPT0ibnVtYmVyIiYmKGFbMitvXS89dSksdHlwZW9mIGFbMytvXT09Im51bWJlciImJihhWzMrb10vPXUpLGkoYSl9fTtjbGFzcyBYTSBleHRlbmRzIFAuQ29tcG9uZW50e2NvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7dmlzdWFsRWxlbWVudDp0LGxheW91dEdyb3VwOm4sc3dpdGNoTGF5b3V0R3JvdXA6cixsYXlvdXRJZDphfT10aGlzLnByb3BzLHtwcm9qZWN0aW9uOml9PXQ7aEwoWk0pLGkmJihuLmdyb3VwJiZuLmdyb3VwLmFkZChpKSxyJiZyLnJlZ2lzdGVyJiZhJiZyLnJlZ2lzdGVyKGkpLGkucm9vdC5kaWRVcGRhdGUoKSxpLmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbkNvbXBsZXRlIiwoKT0+e3RoaXMuc2FmZVRvUmVtb3ZlKCl9KSxpLnNldE9wdGlvbnMoey4uLmkub3B0aW9ucyxvbkV4aXRDb21wbGV0ZTooKT0+dGhpcy5zYWZlVG9SZW1vdmUoKX0pKSxMby5oYXNFdmVyVXBkYXRlZD0hMH1nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh0KXtjb25zdHtsYXlvdXREZXBlbmRlbmN5Om4sdmlzdWFsRWxlbWVudDpyLGRyYWc6YSxpc1ByZXNlbnQ6aX09dGhpcy5wcm9wcyxvPXIucHJvamVjdGlvbjtyZXR1cm4gbyYmKG8uaXNQcmVzZW50PWksYXx8dC5sYXlvdXREZXBlbmRlbmN5IT09bnx8bj09PXZvaWQgMD9vLndpbGxVcGRhdGUoKTp0aGlzLnNhZmVUb1JlbW92ZSgpLHQuaXNQcmVzZW50IT09aSYmKGk/by5wcm9tb3RlKCk6by5yZWxlZ2F0ZSgpfHxtZS5wb3N0UmVuZGVyKCgpPT57Y29uc3Qgcz1vLmdldFN0YWNrKCk7KCFzfHwhcy5tZW1iZXJzLmxlbmd0aCkmJnRoaXMuc2FmZVRvUmVtb3ZlKCl9KSkpLG51bGx9Y29tcG9uZW50RGlkVXBkYXRlKCl7Y29uc3R7cHJvamVjdGlvbjp0fT10aGlzLnByb3BzLnZpc3VhbEVsZW1lbnQ7dCYmKHQucm9vdC5kaWRVcGRhdGUoKSxJaC5wb3N0UmVuZGVyKCgpPT57IXQuY3VycmVudEFuaW1hdGlvbiYmdC5pc0xlYWQoKSYmdGhpcy5zYWZlVG9SZW1vdmUoKX0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0e3Zpc3VhbEVsZW1lbnQ6dCxsYXlvdXRHcm91cDpuLHN3aXRjaExheW91dEdyb3VwOnJ9PXRoaXMucHJvcHMse3Byb2plY3Rpb246YX09dDthJiYoYS5zY2hlZHVsZUNoZWNrQWZ0ZXJVbm1vdW50KCksbiYmbi5ncm91cCYmbi5ncm91cC5yZW1vdmUoYSksciYmci5kZXJlZ2lzdGVyJiZyLmRlcmVnaXN0ZXIoYSkpfXNhZmVUb1JlbW92ZSgpe2NvbnN0e3NhZmVUb1JlbW92ZTp0fT10aGlzLnByb3BzO3QmJnQoKX1yZW5kZXIoKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gY04oZSl7Y29uc3RbdCxuXT1IXygpLHI9UC51c2VDb250ZXh0KFNoKTtyZXR1cm4gay5qc3goWE0sey4uLmUsbGF5b3V0R3JvdXA6cixzd2l0Y2hMYXlvdXRHcm91cDpQLnVzZUNvbnRleHQoZUkpLGlzUHJlc2VudDp0LHNhZmVUb1JlbW92ZTpufSl9Y29uc3QgWk09e2JvcmRlclJhZGl1czp7Li4uX2EsYXBwbHlUbzpbImJvcmRlclRvcExlZnRSYWRpdXMiLCJib3JkZXJUb3BSaWdodFJhZGl1cyIsImJvcmRlckJvdHRvbUxlZnRSYWRpdXMiLCJib3JkZXJCb3R0b21SaWdodFJhZGl1cyJdfSxib3JkZXJUb3BMZWZ0UmFkaXVzOl9hLGJvcmRlclRvcFJpZ2h0UmFkaXVzOl9hLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6X2EsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6X2EsYm94U2hhZG93OktNfTtmdW5jdGlvbiBRTShlLHQsbil7Y29uc3Qgcj1HZShlKT9lOmtpKGUpO3JldHVybiByLnN0YXJ0KGViKCIiLHIsdCxuKSksci5hbmltYXRpb259ZnVuY3Rpb24gSk0oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50JiZlLnRhZ05hbWUhPT0ic3ZnIn1jb25zdCBlUD0oZSx0KT0+ZS5kZXB0aC10LmRlcHRoO2NsYXNzIHRQe2NvbnN0cnVjdG9yKCl7dGhpcy5jaGlsZHJlbj1bXSx0aGlzLmlzRGlydHk9ITF9YWRkKHQpe0doKHRoaXMuY2hpbGRyZW4sdCksdGhpcy5pc0RpcnR5PSEwfXJlbW92ZSh0KXtxaCh0aGlzLmNoaWxkcmVuLHQpLHRoaXMuaXNEaXJ0eT0hMH1mb3JFYWNoKHQpe3RoaXMuaXNEaXJ0eSYmdGhpcy5jaGlsZHJlbi5zb3J0KGVQKSx0aGlzLmlzRGlydHk9ITEsdGhpcy5jaGlsZHJlbi5mb3JFYWNoKHQpfX1mdW5jdGlvbiBuUChlLHQpe2NvbnN0IG49ZW4ubm93KCkscj0oe3RpbWVzdGFtcDphfSk9Pntjb25zdCBpPWEtbjtpPj10JiYoJG4ociksZShpLXQpKX07cmV0dXJuIG1lLnJlYWQociwhMCksKCk9PiRuKHIpfWNvbnN0IGROPVsiVG9wTGVmdCIsIlRvcFJpZ2h0IiwiQm90dG9tTGVmdCIsIkJvdHRvbVJpZ2h0Il0sclA9ZE4ubGVuZ3RoLHF2PWU9PnR5cGVvZiBlPT0ic3RyaW5nIj9wYXJzZUZsb2F0KGUpOmUsVnY9ZT0+dHlwZW9mIGU9PSJudW1iZXIifHxILnRlc3QoZSk7ZnVuY3Rpb24gYVAoZSx0LG4scixhLGkpe2E/KGUub3BhY2l0eT15ZSgwLG4ub3BhY2l0eSE9PXZvaWQgMD9uLm9wYWNpdHk6MSxpUChyKSksZS5vcGFjaXR5RXhpdD15ZSh0Lm9wYWNpdHkhPT12b2lkIDA/dC5vcGFjaXR5OjEsMCxvUChyKSkpOmkmJihlLm9wYWNpdHk9eWUodC5vcGFjaXR5IT09dm9pZCAwP3Qub3BhY2l0eToxLG4ub3BhY2l0eSE9PXZvaWQgMD9uLm9wYWNpdHk6MSxyKSk7Zm9yKGxldCBvPTA7bzxyUDtvKyspe2NvbnN0IHM9YGJvcmRlciR7ZE5bb119UmFkaXVzYDtsZXQgbD1Idih0LHMpLHU9SHYobixzKTtpZihsPT09dm9pZCAwJiZ1PT09dm9pZCAwKWNvbnRpbnVlO2x8fChsPTApLHV8fCh1PTApLGw9PT0wfHx1PT09MHx8VnYobCk9PT1Wdih1KT8oZVtzXT1NYXRoLm1heCh5ZShxdihsKSxxdih1KSxyKSwwKSwoSnQudGVzdCh1KXx8SnQudGVzdChsKSkmJihlW3NdKz0iJSIpKTplW3NdPXV9KHQucm90YXRlfHxuLnJvdGF0ZSkmJihlLnJvdGF0ZT15ZSh0LnJvdGF0ZXx8MCxuLnJvdGF0ZXx8MCxyKSl9ZnVuY3Rpb24gSHYoZSx0KXtyZXR1cm4gZVt0XSE9PXZvaWQgMD9lW3RdOmUuYm9yZGVyUmFkaXVzfWNvbnN0IGlQPXBOKDAsLjUsTkkpLG9QPXBOKC41LC45NSxndCk7ZnVuY3Rpb24gcE4oZSx0LG4pe3JldHVybiByPT5yPGU/MDpyPnQ/MTpuKGlhKGUsdCxyKSl9ZnVuY3Rpb24gV3YoZSx0KXtlLm1pbj10Lm1pbixlLm1heD10Lm1heH1mdW5jdGlvbiBTdChlLHQpe1d2KGUueCx0LngpLFd2KGUueSx0LnkpfWZ1bmN0aW9uIFl2KGUsdCl7ZS50cmFuc2xhdGU9dC50cmFuc2xhdGUsZS5zY2FsZT10LnNjYWxlLGUub3JpZ2luUG9pbnQ9dC5vcmlnaW5Qb2ludCxlLm9yaWdpbj10Lm9yaWdpbn1mdW5jdGlvbiBLdihlLHQsbixyLGEpe3JldHVybiBlLT10LGU9Z3MoZSwxL24sciksYSE9PXZvaWQgMCYmKGU9Z3MoZSwxL2EscikpLGV9ZnVuY3Rpb24gc1AoZSx0PTAsbj0xLHI9LjUsYSxpPWUsbz1lKXtpZihKdC50ZXN0KHQpJiYodD1wYXJzZUZsb2F0KHQpLHQ9eWUoby5taW4sby5tYXgsdC8xMDApLW8ubWluKSx0eXBlb2YgdCE9Im51bWJlciIpcmV0dXJuO2xldCBzPXllKGkubWluLGkubWF4LHIpO2U9PT1pJiYocy09dCksZS5taW49S3YoZS5taW4sdCxuLHMsYSksZS5tYXg9S3YoZS5tYXgsdCxuLHMsYSl9ZnVuY3Rpb24gWHYoZSx0LFtuLHIsYV0saSxvKXtzUChlLHRbbl0sdFtyXSx0W2FdLHQuc2NhbGUsaSxvKX1jb25zdCBsUD1bIngiLCJzY2FsZVgiLCJvcmlnaW5YIl0sdVA9WyJ5Iiwic2NhbGVZIiwib3JpZ2luWSJdO2Z1bmN0aW9uIFp2KGUsdCxuLHIpe1h2KGUueCx0LGxQLG4/bi54OnZvaWQgMCxyP3IueDp2b2lkIDApLFh2KGUueSx0LHVQLG4/bi55OnZvaWQgMCxyP3IueTp2b2lkIDApfWZ1bmN0aW9uIFF2KGUpe3JldHVybiBlLnRyYW5zbGF0ZT09PTAmJmUuc2NhbGU9PT0xfWZ1bmN0aW9uIGZOKGUpe3JldHVybiBRdihlLngpJiZRdihlLnkpfWZ1bmN0aW9uIEp2KGUsdCl7cmV0dXJuIGUubWluPT09dC5taW4mJmUubWF4PT09dC5tYXh9ZnVuY3Rpb24gY1AoZSx0KXtyZXR1cm4gSnYoZS54LHQueCkmJkp2KGUueSx0LnkpfWZ1bmN0aW9uIGVFKGUsdCl7cmV0dXJuIE1hdGgucm91bmQoZS5taW4pPT09TWF0aC5yb3VuZCh0Lm1pbikmJk1hdGgucm91bmQoZS5tYXgpPT09TWF0aC5yb3VuZCh0Lm1heCl9ZnVuY3Rpb24gbU4oZSx0KXtyZXR1cm4gZUUoZS54LHQueCkmJmVFKGUueSx0LnkpfWZ1bmN0aW9uIHRFKGUpe3JldHVybiBidChlLngpL2J0KGUueSl9ZnVuY3Rpb24gbkUoZSx0KXtyZXR1cm4gZS50cmFuc2xhdGU9PT10LnRyYW5zbGF0ZSYmZS5zY2FsZT09PXQuc2NhbGUmJmUub3JpZ2luUG9pbnQ9PT10Lm9yaWdpblBvaW50fWNsYXNzIGRQe2NvbnN0cnVjdG9yKCl7dGhpcy5tZW1iZXJzPVtdfWFkZCh0KXtHaCh0aGlzLm1lbWJlcnMsdCksdC5zY2hlZHVsZVJlbmRlcigpfXJlbW92ZSh0KXtpZihxaCh0aGlzLm1lbWJlcnMsdCksdD09PXRoaXMucHJldkxlYWQmJih0aGlzLnByZXZMZWFkPXZvaWQgMCksdD09PXRoaXMubGVhZCl7Y29uc3Qgbj10aGlzLm1lbWJlcnNbdGhpcy5tZW1iZXJzLmxlbmd0aC0xXTtuJiZ0aGlzLnByb21vdGUobil9fXJlbGVnYXRlKHQpe2NvbnN0IG49dGhpcy5tZW1iZXJzLmZpbmRJbmRleChhPT50PT09YSk7aWYobj09PTApcmV0dXJuITE7bGV0IHI7Zm9yKGxldCBhPW47YT49MDthLS0pe2NvbnN0IGk9dGhpcy5tZW1iZXJzW2FdO2lmKGkuaXNQcmVzZW50IT09ITEpe3I9aTticmVha319cmV0dXJuIHI/KHRoaXMucHJvbW90ZShyKSwhMCk6ITF9cHJvbW90ZSh0LG4pe2NvbnN0IHI9dGhpcy5sZWFkO2lmKHQhPT1yJiYodGhpcy5wcmV2TGVhZD1yLHRoaXMubGVhZD10LHQuc2hvdygpLHIpKXtyLmluc3RhbmNlJiZyLnNjaGVkdWxlUmVuZGVyKCksdC5zY2hlZHVsZVJlbmRlcigpLHQucmVzdW1lRnJvbT1yLG4mJih0LnJlc3VtZUZyb20ucHJlc2VydmVPcGFjaXR5PSEwKSxyLnNuYXBzaG90JiYodC5zbmFwc2hvdD1yLnNuYXBzaG90LHQuc25hcHNob3QubGF0ZXN0VmFsdWVzPXIuYW5pbWF0aW9uVmFsdWVzfHxyLmxhdGVzdFZhbHVlcyksdC5yb290JiZ0LnJvb3QuaXNVcGRhdGluZyYmKHQuaXNMYXlvdXREaXJ0eT0hMCk7Y29uc3R7Y3Jvc3NmYWRlOmF9PXQub3B0aW9uczthPT09ITEmJnIuaGlkZSgpfX1leGl0QW5pbWF0aW9uQ29tcGxldGUoKXt0aGlzLm1lbWJlcnMuZm9yRWFjaCh0PT57Y29uc3R7b3B0aW9uczpuLHJlc3VtaW5nRnJvbTpyfT10O24ub25FeGl0Q29tcGxldGUmJm4ub25FeGl0Q29tcGxldGUoKSxyJiZyLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJnIub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpfSl9c2NoZWR1bGVSZW5kZXIoKXt0aGlzLm1lbWJlcnMuZm9yRWFjaCh0PT57dC5pbnN0YW5jZSYmdC5zY2hlZHVsZVJlbmRlcighMSl9KX1yZW1vdmVMZWFkU25hcHNob3QoKXt0aGlzLmxlYWQmJnRoaXMubGVhZC5zbmFwc2hvdCYmKHRoaXMubGVhZC5zbmFwc2hvdD12b2lkIDApfX1mdW5jdGlvbiBwUChlLHQsbil7bGV0IHI9IiI7Y29uc3QgYT1lLngudHJhbnNsYXRlL3QueCxpPWUueS50cmFuc2xhdGUvdC55LG89KG49PW51bGw/dm9pZCAwOm4ueil8fDA7aWYoKGF8fGl8fG8pJiYocj1gdHJhbnNsYXRlM2QoJHthfXB4LCAke2l9cHgsICR7b31weCkgYCksKHQueCE9PTF8fHQueSE9PTEpJiYocis9YHNjYWxlKCR7MS90Lnh9LCAkezEvdC55fSkgYCksbil7Y29uc3R7dHJhbnNmb3JtUGVyc3BlY3RpdmU6dSxyb3RhdGU6Yyxyb3RhdGVYOmQscm90YXRlWTpwLHNrZXdYOmYsc2tld1k6eX09bjt1JiYocj1gcGVyc3BlY3RpdmUoJHt1fXB4KSAke3J9YCksYyYmKHIrPWByb3RhdGUoJHtjfWRlZykgYCksZCYmKHIrPWByb3RhdGVYKCR7ZH1kZWcpIGApLHAmJihyKz1gcm90YXRlWSgke3B9ZGVnKSBgKSxmJiYocis9YHNrZXdYKCR7Zn1kZWcpIGApLHkmJihyKz1gc2tld1koJHt5fWRlZykgYCl9Y29uc3Qgcz1lLnguc2NhbGUqdC54LGw9ZS55LnNjYWxlKnQueTtyZXR1cm4ocyE9PTF8fGwhPT0xKSYmKHIrPWBzY2FsZSgke3N9LCAke2x9KWApLHJ8fCJub25lIn1jb25zdCBlcj17dHlwZToicHJvamVjdGlvbkZyYW1lIix0b3RhbE5vZGVzOjAscmVzb2x2ZWRUYXJnZXREZWx0YXM6MCxyZWNhbGN1bGF0ZWRQcm9qZWN0aW9uOjB9LCRhPXR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuTW90aW9uRGVidWchPT12b2lkIDAsTGw9WyIiLCJYIiwiWSIsIloiXSxmUD17dmlzaWJpbGl0eToiaGlkZGVuIn0sckU9MWUzO2xldCBtUD0wO2Z1bmN0aW9uIERsKGUsdCxuLHIpe2NvbnN0e2xhdGVzdFZhbHVlczphfT10O2FbZV0mJihuW2VdPWFbZV0sdC5zZXRTdGF0aWNWYWx1ZShlLDApLHImJihyW2VdPTApKX1mdW5jdGlvbiBnTihlKXtpZihlLmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXI9ITAsZS5yb290PT09ZSlyZXR1cm47Y29uc3R7dmlzdWFsRWxlbWVudDp0fT1lLm9wdGlvbnM7aWYoIXQpcmV0dXJuO2NvbnN0IG49VEkodCk7aWYod2luZG93Lk1vdGlvbkhhc09wdGltaXNlZEFuaW1hdGlvbihuLCJ0cmFuc2Zvcm0iKSl7Y29uc3R7bGF5b3V0OmEsbGF5b3V0SWQ6aX09ZS5vcHRpb25zO3dpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24obiwidHJhbnNmb3JtIixtZSwhKGF8fGkpKX1jb25zdHtwYXJlbnQ6cn09ZTtyJiYhci5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyJiZnTihyKX1mdW5jdGlvbiBoTih7YXR0YWNoUmVzaXplTGlzdGVuZXI6ZSxkZWZhdWx0UGFyZW50OnQsbWVhc3VyZVNjcm9sbDpuLGNoZWNrSXNTY3JvbGxSb290OnIscmVzZXRUcmFuc2Zvcm06YX0pe3JldHVybiBjbGFzc3tjb25zdHJ1Y3RvcihvPXt9LHM9dD09bnVsbD92b2lkIDA6dCgpKXt0aGlzLmlkPW1QKyssdGhpcy5hbmltYXRpb25JZD0wLHRoaXMuY2hpbGRyZW49bmV3IFNldCx0aGlzLm9wdGlvbnM9e30sdGhpcy5pc1RyZWVBbmltYXRpbmc9ITEsdGhpcy5pc0FuaW1hdGlvbkJsb2NrZWQ9ITEsdGhpcy5pc0xheW91dERpcnR5PSExLHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITEsdGhpcy5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eT0hMSx0aGlzLmlzVHJhbnNmb3JtRGlydHk9ITEsdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQ9ITEsdGhpcy51cGRhdGVCbG9ja2VkQnlSZXNpemU9ITEsdGhpcy5pc1VwZGF0aW5nPSExLHRoaXMuaXNTVkc9ITEsdGhpcy5uZWVkc1Jlc2V0PSExLHRoaXMuc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITEsdGhpcy5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyPSExLHRoaXMudHJlZVNjYWxlPXt4OjEseToxfSx0aGlzLmV2ZW50SGFuZGxlcnM9bmV3IE1hcCx0aGlzLmhhc1RyZWVBbmltYXRlZD0hMSx0aGlzLnVwZGF0ZVNjaGVkdWxlZD0hMSx0aGlzLnNjaGVkdWxlVXBkYXRlPSgpPT50aGlzLnVwZGF0ZSgpLHRoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZD0hMSx0aGlzLmNoZWNrVXBkYXRlRmFpbGVkPSgpPT57dGhpcy5pc1VwZGF0aW5nJiYodGhpcy5pc1VwZGF0aW5nPSExLHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKSl9LHRoaXMudXBkYXRlUHJvamVjdGlvbj0oKT0+e3RoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZD0hMSwkYSYmKGVyLnRvdGFsTm9kZXM9ZXIucmVzb2x2ZWRUYXJnZXREZWx0YXM9ZXIucmVjYWxjdWxhdGVkUHJvamVjdGlvbj0wKSx0aGlzLm5vZGVzLmZvckVhY2goYlApLHRoaXMubm9kZXMuZm9yRWFjaCh3UCksdGhpcy5ub2Rlcy5mb3JFYWNoKFRQKSx0aGlzLm5vZGVzLmZvckVhY2goeVApLCRhJiZ3aW5kb3cuTW90aW9uRGVidWcucmVjb3JkKGVyKX0sdGhpcy5yZXNvbHZlZFJlbGF0aXZlVGFyZ2V0QXQ9MCx0aGlzLmhhc1Byb2plY3RlZD0hMSx0aGlzLmlzVmlzaWJsZT0hMCx0aGlzLmFuaW1hdGlvblByb2dyZXNzPTAsdGhpcy5zaGFyZWROb2Rlcz1uZXcgTWFwLHRoaXMubGF0ZXN0VmFsdWVzPW8sdGhpcy5yb290PXM/cy5yb290fHxzOnRoaXMsdGhpcy5wYXRoPXM/Wy4uLnMucGF0aCxzXTpbXSx0aGlzLnBhcmVudD1zLHRoaXMuZGVwdGg9cz9zLmRlcHRoKzE6MDtmb3IobGV0IGw9MDtsPHRoaXMucGF0aC5sZW5ndGg7bCsrKXRoaXMucGF0aFtsXS5zaG91bGRSZXNldFRyYW5zZm9ybT0hMDt0aGlzLnJvb3Q9PT10aGlzJiYodGhpcy5ub2Rlcz1uZXcgdFApfWFkZEV2ZW50TGlzdGVuZXIobyxzKXtyZXR1cm4gdGhpcy5ldmVudEhhbmRsZXJzLmhhcyhvKXx8dGhpcy5ldmVudEhhbmRsZXJzLnNldChvLG5ldyBWaCksdGhpcy5ldmVudEhhbmRsZXJzLmdldChvKS5hZGQocyl9bm90aWZ5TGlzdGVuZXJzKG8sLi4ucyl7Y29uc3QgbD10aGlzLmV2ZW50SGFuZGxlcnMuZ2V0KG8pO2wmJmwubm90aWZ5KC4uLnMpfWhhc0xpc3RlbmVycyhvKXtyZXR1cm4gdGhpcy5ldmVudEhhbmRsZXJzLmhhcyhvKX1tb3VudChvLHM9dGhpcy5yb290Lmhhc1RyZWVBbmltYXRlZCl7aWYodGhpcy5pbnN0YW5jZSlyZXR1cm47dGhpcy5pc1NWRz1KTShvKSx0aGlzLmluc3RhbmNlPW87Y29uc3R7bGF5b3V0SWQ6bCxsYXlvdXQ6dSx2aXN1YWxFbGVtZW50OmN9PXRoaXMub3B0aW9ucztpZihjJiYhYy5jdXJyZW50JiZjLm1vdW50KG8pLHRoaXMucm9vdC5ub2Rlcy5hZGQodGhpcyksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmNoaWxkcmVuLmFkZCh0aGlzKSxzJiYodXx8bCkmJih0aGlzLmlzTGF5b3V0RGlydHk9ITApLGUpe2xldCBkO2NvbnN0IHA9KCk9PnRoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemU9ITE7ZShvLCgpPT57dGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZT0hMCxkJiZkKCksZD1uUChwLDI1MCksTG8uaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSYmKExvLmhhc0FuaW1hdGVkU2luY2VSZXNpemU9ITEsdGhpcy5ub2Rlcy5mb3JFYWNoKGlFKSl9KX1sJiZ0aGlzLnJvb3QucmVnaXN0ZXJTaGFyZWROb2RlKGwsdGhpcyksdGhpcy5vcHRpb25zLmFuaW1hdGUhPT0hMSYmYyYmKGx8fHUpJiZ0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRpZFVwZGF0ZSIsKHtkZWx0YTpkLGhhc0xheW91dENoYW5nZWQ6cCxoYXNSZWxhdGl2ZVRhcmdldENoYW5nZWQ6ZixsYXlvdXQ6eX0pPT57aWYodGhpcy5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCkpe3RoaXMudGFyZ2V0PXZvaWQgMCx0aGlzLnJlbGF0aXZlVGFyZ2V0PXZvaWQgMDtyZXR1cm59Y29uc3QgYj10aGlzLm9wdGlvbnMudHJhbnNpdGlvbnx8Yy5nZXREZWZhdWx0VHJhbnNpdGlvbigpfHxfUCx7b25MYXlvdXRBbmltYXRpb25TdGFydDpBLG9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGU6aH09Yy5nZXRQcm9wcygpLG09IXRoaXMudGFyZ2V0TGF5b3V0fHwhbU4odGhpcy50YXJnZXRMYXlvdXQseSl8fGYsZz0hcCYmZjtpZih0aGlzLm9wdGlvbnMubGF5b3V0Um9vdHx8dGhpcy5yZXN1bWVGcm9tJiZ0aGlzLnJlc3VtZUZyb20uaW5zdGFuY2V8fGd8fHAmJihtfHwhdGhpcy5jdXJyZW50QW5pbWF0aW9uKSl7dGhpcy5yZXN1bWVGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb209dGhpcy5yZXN1bWVGcm9tLHRoaXMucmVzdW1pbmdGcm9tLnJlc3VtaW5nRnJvbT12b2lkIDApLHRoaXMuc2V0QW5pbWF0aW9uT3JpZ2luKGQsZyk7Y29uc3QgRT17Li4uQmgoYiwibGF5b3V0Iiksb25QbGF5OkEsb25Db21wbGV0ZTpofTsoYy5zaG91bGRSZWR1Y2VNb3Rpb258fHRoaXMub3B0aW9ucy5sYXlvdXRSb290KSYmKEUuZGVsYXk9MCxFLnR5cGU9ITEpLHRoaXMuc3RhcnRBbmltYXRpb24oRSl9ZWxzZSBwfHxpRSh0aGlzKSx0aGlzLmlzTGVhZCgpJiZ0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJnRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO3RoaXMudGFyZ2V0TGF5b3V0PXl9KX11bm1vdW50KCl7dGhpcy5vcHRpb25zLmxheW91dElkJiZ0aGlzLndpbGxVcGRhdGUoKSx0aGlzLnJvb3Qubm9kZXMucmVtb3ZlKHRoaXMpO2NvbnN0IG89dGhpcy5nZXRTdGFjaygpO28mJm8ucmVtb3ZlKHRoaXMpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyksdGhpcy5pbnN0YW5jZT12b2lkIDAsJG4odGhpcy51cGRhdGVQcm9qZWN0aW9uKX1ibG9ja1VwZGF0ZSgpe3RoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkPSEwfXVuYmxvY2tVcGRhdGUoKXt0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZD0hMX1pc1VwZGF0ZUJsb2NrZWQoKXtyZXR1cm4gdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWR8fHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplfWlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKXtyZXR1cm4gdGhpcy5pc0FuaW1hdGlvbkJsb2NrZWR8fHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCl8fCExfXN0YXJ0VXBkYXRlKCl7dGhpcy5pc1VwZGF0ZUJsb2NrZWQoKXx8KHRoaXMuaXNVcGRhdGluZz0hMCx0aGlzLm5vZGVzJiZ0aGlzLm5vZGVzLmZvckVhY2goa1ApLHRoaXMuYW5pbWF0aW9uSWQrKyl9Z2V0VHJhbnNmb3JtVGVtcGxhdGUoKXtjb25zdHt2aXN1YWxFbGVtZW50Om99PXRoaXMub3B0aW9ucztyZXR1cm4gbyYmby5nZXRQcm9wcygpLnRyYW5zZm9ybVRlbXBsYXRlfXdpbGxVcGRhdGUobz0hMCl7aWYodGhpcy5yb290Lmhhc1RyZWVBbmltYXRlZD0hMCx0aGlzLnJvb3QuaXNVcGRhdGVCbG9ja2VkKCkpe3RoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSYmdGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7cmV0dXJufWlmKHdpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24mJiF0aGlzLmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXImJmdOKHRoaXMpLCF0aGlzLnJvb3QuaXNVcGRhdGluZyYmdGhpcy5yb290LnN0YXJ0VXBkYXRlKCksdGhpcy5pc0xheW91dERpcnR5KXJldHVybjt0aGlzLmlzTGF5b3V0RGlydHk9ITA7Zm9yKGxldCBjPTA7Yzx0aGlzLnBhdGgubGVuZ3RoO2MrKyl7Y29uc3QgZD10aGlzLnBhdGhbY107ZC5zaG91bGRSZXNldFRyYW5zZm9ybT0hMCxkLnVwZGF0ZVNjcm9sbCgic25hcHNob3QiKSxkLm9wdGlvbnMubGF5b3V0Um9vdCYmZC53aWxsVXBkYXRlKCExKX1jb25zdHtsYXlvdXRJZDpzLGxheW91dDpsfT10aGlzLm9wdGlvbnM7aWYocz09PXZvaWQgMCYmIWwpcmV0dXJuO2NvbnN0IHU9dGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO3RoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWU9dT91KHRoaXMubGF0ZXN0VmFsdWVzLCIiKTp2b2lkIDAsdGhpcy51cGRhdGVTbmFwc2hvdCgpLG8mJnRoaXMubm90aWZ5TGlzdGVuZXJzKCJ3aWxsVXBkYXRlIil9dXBkYXRlKCl7aWYodGhpcy51cGRhdGVTY2hlZHVsZWQ9ITEsdGhpcy5pc1VwZGF0ZUJsb2NrZWQoKSl7dGhpcy51bmJsb2NrVXBkYXRlKCksdGhpcy5jbGVhckFsbFNuYXBzaG90cygpLHRoaXMubm9kZXMuZm9yRWFjaChhRSk7cmV0dXJufXRoaXMuaXNVcGRhdGluZ3x8dGhpcy5ub2Rlcy5mb3JFYWNoKEVQKSx0aGlzLmlzVXBkYXRpbmc9ITEsdGhpcy5ub2Rlcy5mb3JFYWNoKFNQKSx0aGlzLm5vZGVzLmZvckVhY2goZ1ApLHRoaXMubm9kZXMuZm9yRWFjaChoUCksdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO2NvbnN0IHM9ZW4ubm93KCk7RGUuZGVsdGE9Ym4oMCwxZTMvNjAscy1EZS50aW1lc3RhbXApLERlLnRpbWVzdGFtcD1zLERlLmlzUHJvY2Vzc2luZz0hMCxrbC51cGRhdGUucHJvY2VzcyhEZSksa2wucHJlUmVuZGVyLnByb2Nlc3MoRGUpLGtsLnJlbmRlci5wcm9jZXNzKERlKSxEZS5pc1Byb2Nlc3Npbmc9ITF9ZGlkVXBkYXRlKCl7dGhpcy51cGRhdGVTY2hlZHVsZWR8fCh0aGlzLnVwZGF0ZVNjaGVkdWxlZD0hMCxJaC5yZWFkKHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1jbGVhckFsbFNuYXBzaG90cygpe3RoaXMubm9kZXMuZm9yRWFjaCh2UCksdGhpcy5zaGFyZWROb2Rlcy5mb3JFYWNoKEFQKX1zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKXt0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWR8fCh0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQ9ITAsbWUucHJlUmVuZGVyKHRoaXMudXBkYXRlUHJvamVjdGlvbiwhMSwhMCkpfXNjaGVkdWxlQ2hlY2tBZnRlclVubW91bnQoKXttZS5wb3N0UmVuZGVyKCgpPT57dGhpcy5pc0xheW91dERpcnR5P3RoaXMucm9vdC5kaWRVcGRhdGUoKTp0aGlzLnJvb3QuY2hlY2tVcGRhdGVGYWlsZWQoKX0pfXVwZGF0ZVNuYXBzaG90KCl7dGhpcy5zbmFwc2hvdHx8IXRoaXMuaW5zdGFuY2V8fCh0aGlzLnNuYXBzaG90PXRoaXMubWVhc3VyZSgpKX11cGRhdGVMYXlvdXQoKXtpZighdGhpcy5pbnN0YW5jZXx8KHRoaXMudXBkYXRlU2Nyb2xsKCksISh0aGlzLm9wdGlvbnMuYWx3YXlzTWVhc3VyZUxheW91dCYmdGhpcy5pc0xlYWQoKSkmJiF0aGlzLmlzTGF5b3V0RGlydHkpKXJldHVybjtpZih0aGlzLnJlc3VtZUZyb20mJiF0aGlzLnJlc3VtZUZyb20uaW5zdGFuY2UpZm9yKGxldCBsPTA7bDx0aGlzLnBhdGgubGVuZ3RoO2wrKyl0aGlzLnBhdGhbbF0udXBkYXRlU2Nyb2xsKCk7Y29uc3Qgbz10aGlzLmxheW91dDt0aGlzLmxheW91dD10aGlzLm1lYXN1cmUoITEpLHRoaXMubGF5b3V0Q29ycmVjdGVkPWtlKCksdGhpcy5pc0xheW91dERpcnR5PSExLHRoaXMucHJvamVjdGlvbkRlbHRhPXZvaWQgMCx0aGlzLm5vdGlmeUxpc3RlbmVycygibWVhc3VyZSIsdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtjb25zdHt2aXN1YWxFbGVtZW50OnN9PXRoaXMub3B0aW9ucztzJiZzLm5vdGlmeSgiTGF5b3V0TWVhc3VyZSIsdGhpcy5sYXlvdXQubGF5b3V0Qm94LG8/by5sYXlvdXRCb3g6dm9pZCAwKX11cGRhdGVTY3JvbGwobz0ibWVhc3VyZSIpe2xldCBzPSEhKHRoaXMub3B0aW9ucy5sYXlvdXRTY3JvbGwmJnRoaXMuaW5zdGFuY2UpO2lmKHRoaXMuc2Nyb2xsJiZ0aGlzLnNjcm9sbC5hbmltYXRpb25JZD09PXRoaXMucm9vdC5hbmltYXRpb25JZCYmdGhpcy5zY3JvbGwucGhhc2U9PT1vJiYocz0hMSkscyl7Y29uc3QgbD1yKHRoaXMuaW5zdGFuY2UpO3RoaXMuc2Nyb2xsPXthbmltYXRpb25JZDp0aGlzLnJvb3QuYW5pbWF0aW9uSWQscGhhc2U6byxpc1Jvb3Q6bCxvZmZzZXQ6bih0aGlzLmluc3RhbmNlKSx3YXNSb290OnRoaXMuc2Nyb2xsP3RoaXMuc2Nyb2xsLmlzUm9vdDpsfX19cmVzZXRUcmFuc2Zvcm0oKXtpZighYSlyZXR1cm47Y29uc3Qgbz10aGlzLmlzTGF5b3V0RGlydHl8fHRoaXMuc2hvdWxkUmVzZXRUcmFuc2Zvcm18fHRoaXMub3B0aW9ucy5hbHdheXNNZWFzdXJlTGF5b3V0LHM9dGhpcy5wcm9qZWN0aW9uRGVsdGEmJiFmTih0aGlzLnByb2plY3Rpb25EZWx0YSksbD10aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCksdT1sP2wodGhpcy5sYXRlc3RWYWx1ZXMsIiIpOnZvaWQgMCxjPXUhPT10aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlO28mJihzfHxKbih0aGlzLmxhdGVzdFZhbHVlcyl8fGMpJiYoYSh0aGlzLmluc3RhbmNlLHUpLHRoaXMuc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITEsdGhpcy5zY2hlZHVsZVJlbmRlcigpKX1tZWFzdXJlKG89ITApe2NvbnN0IHM9dGhpcy5tZWFzdXJlUGFnZUJveCgpO2xldCBsPXRoaXMucmVtb3ZlRWxlbWVudFNjcm9sbChzKTtyZXR1cm4gbyYmKGw9dGhpcy5yZW1vdmVUcmFuc2Zvcm0obCkpLElQKGwpLHthbmltYXRpb25JZDp0aGlzLnJvb3QuYW5pbWF0aW9uSWQsbWVhc3VyZWRCb3g6cyxsYXlvdXRCb3g6bCxsYXRlc3RWYWx1ZXM6e30sc291cmNlOnRoaXMuaWR9fW1lYXN1cmVQYWdlQm94KCl7dmFyIG87Y29uc3R7dmlzdWFsRWxlbWVudDpzfT10aGlzLm9wdGlvbnM7aWYoIXMpcmV0dXJuIGtlKCk7Y29uc3QgbD1zLm1lYXN1cmVWaWV3cG9ydEJveCgpO2lmKCEoKChvPXRoaXMuc2Nyb2xsKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8ud2FzUm9vdCl8fHRoaXMucGF0aC5zb21lKE5QKSkpe2NvbnN0e3Njcm9sbDpjfT10aGlzLnJvb3Q7YyYmKHpyKGwueCxjLm9mZnNldC54KSx6cihsLnksYy5vZmZzZXQueSkpfXJldHVybiBsfXJlbW92ZUVsZW1lbnRTY3JvbGwobyl7dmFyIHM7Y29uc3QgbD1rZSgpO2lmKFN0KGwsbyksISgocz10aGlzLnNjcm9sbCk9PT1udWxsfHxzPT09dm9pZCAwKSYmcy53YXNSb290KXJldHVybiBsO2ZvcihsZXQgdT0wO3U8dGhpcy5wYXRoLmxlbmd0aDt1Kyspe2NvbnN0IGM9dGhpcy5wYXRoW3VdLHtzY3JvbGw6ZCxvcHRpb25zOnB9PWM7YyE9PXRoaXMucm9vdCYmZCYmcC5sYXlvdXRTY3JvbGwmJihkLndhc1Jvb3QmJlN0KGwsbyksenIobC54LGQub2Zmc2V0LngpLHpyKGwueSxkLm9mZnNldC55KSl9cmV0dXJuIGx9YXBwbHlUcmFuc2Zvcm0obyxzPSExKXtjb25zdCBsPWtlKCk7U3QobCxvKTtmb3IobGV0IHU9MDt1PHRoaXMucGF0aC5sZW5ndGg7dSsrKXtjb25zdCBjPXRoaXMucGF0aFt1XTshcyYmYy5vcHRpb25zLmxheW91dFNjcm9sbCYmYy5zY3JvbGwmJmMhPT1jLnJvb3QmJmpyKGwse3g6LWMuc2Nyb2xsLm9mZnNldC54LHk6LWMuc2Nyb2xsLm9mZnNldC55fSksSm4oYy5sYXRlc3RWYWx1ZXMpJiZqcihsLGMubGF0ZXN0VmFsdWVzKX1yZXR1cm4gSm4odGhpcy5sYXRlc3RWYWx1ZXMpJiZqcihsLHRoaXMubGF0ZXN0VmFsdWVzKSxsfXJlbW92ZVRyYW5zZm9ybShvKXtjb25zdCBzPWtlKCk7U3QocyxvKTtmb3IobGV0IGw9MDtsPHRoaXMucGF0aC5sZW5ndGg7bCsrKXtjb25zdCB1PXRoaXMucGF0aFtsXTtpZighdS5pbnN0YW5jZXx8IUpuKHUubGF0ZXN0VmFsdWVzKSljb250aW51ZTtvZyh1LmxhdGVzdFZhbHVlcykmJnUudXBkYXRlU25hcHNob3QoKTtjb25zdCBjPWtlKCksZD11Lm1lYXN1cmVQYWdlQm94KCk7U3QoYyxkKSxadihzLHUubGF0ZXN0VmFsdWVzLHUuc25hcHNob3Q/dS5zbmFwc2hvdC5sYXlvdXRCb3g6dm9pZCAwLGMpfXJldHVybiBKbih0aGlzLmxhdGVzdFZhbHVlcykmJlp2KHMsdGhpcy5sYXRlc3RWYWx1ZXMpLHN9c2V0VGFyZ2V0RGVsdGEobyl7dGhpcy50YXJnZXREZWx0YT1vLHRoaXMucm9vdC5zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKSx0aGlzLmlzUHJvamVjdGlvbkRpcnR5PSEwfXNldE9wdGlvbnMobyl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4ubyxjcm9zc2ZhZGU6by5jcm9zc2ZhZGUhPT12b2lkIDA/by5jcm9zc2ZhZGU6ITB9fWNsZWFyTWVhc3VyZW1lbnRzKCl7dGhpcy5zY3JvbGw9dm9pZCAwLHRoaXMubGF5b3V0PXZvaWQgMCx0aGlzLnNuYXBzaG90PXZvaWQgMCx0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlPXZvaWQgMCx0aGlzLnRhcmdldERlbHRhPXZvaWQgMCx0aGlzLnRhcmdldD12b2lkIDAsdGhpcy5pc0xheW91dERpcnR5PSExfWZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKXt0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCE9PURlLnRpbWVzdGFtcCYmdGhpcy5yZWxhdGl2ZVBhcmVudC5yZXNvbHZlVGFyZ2V0RGVsdGEoITApfXJlc29sdmVUYXJnZXREZWx0YShvPSExKXt2YXIgcztjb25zdCBsPXRoaXMuZ2V0TGVhZCgpO3RoaXMuaXNQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzUHJvamVjdGlvbkRpcnR5PWwuaXNQcm9qZWN0aW9uRGlydHkpLHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eXx8KHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eT1sLmlzVHJhbnNmb3JtRGlydHkpLHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PWwuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpO2NvbnN0IHU9ISF0aGlzLnJlc3VtaW5nRnJvbXx8dGhpcyE9PWw7aWYoIShvfHx1JiZ0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5fHx0aGlzLmlzUHJvamVjdGlvbkRpcnR5fHwhKChzPXRoaXMucGFyZW50KT09PW51bGx8fHM9PT12b2lkIDApJiZzLmlzUHJvamVjdGlvbkRpcnR5fHx0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldHx8dGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSkpcmV0dXJuO2NvbnN0e2xheW91dDpkLGxheW91dElkOnB9PXRoaXMub3B0aW9ucztpZighKCF0aGlzLmxheW91dHx8IShkfHxwKSkpe2lmKHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0PURlLnRpbWVzdGFtcCwhdGhpcy50YXJnZXREZWx0YSYmIXRoaXMucmVsYXRpdmVUYXJnZXQpe2NvbnN0IGY9dGhpcy5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO2YmJmYubGF5b3V0JiZ0aGlzLmFuaW1hdGlvblByb2dyZXNzIT09MT8odGhpcy5yZWxhdGl2ZVBhcmVudD1mLHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpLHRoaXMucmVsYXRpdmVUYXJnZXQ9a2UoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPWtlKCksdGkodGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbix0aGlzLmxheW91dC5sYXlvdXRCb3gsZi5sYXlvdXQubGF5b3V0Qm94KSxTdCh0aGlzLnJlbGF0aXZlVGFyZ2V0LHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4pKTp0aGlzLnJlbGF0aXZlUGFyZW50PXRoaXMucmVsYXRpdmVUYXJnZXQ9dm9pZCAwfWlmKCEoIXRoaXMucmVsYXRpdmVUYXJnZXQmJiF0aGlzLnRhcmdldERlbHRhKSl7aWYodGhpcy50YXJnZXR8fCh0aGlzLnRhcmdldD1rZSgpLHRoaXMudGFyZ2V0V2l0aFRyYW5zZm9ybXM9a2UoKSksdGhpcy5yZWxhdGl2ZVRhcmdldCYmdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiYmdGhpcy5yZWxhdGl2ZVBhcmVudCYmdGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQ/KHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpLExNKHRoaXMudGFyZ2V0LHRoaXMucmVsYXRpdmVUYXJnZXQsdGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQpKTp0aGlzLnRhcmdldERlbHRhPyh0aGlzLnJlc3VtaW5nRnJvbT90aGlzLnRhcmdldD10aGlzLmFwcGx5VHJhbnNmb3JtKHRoaXMubGF5b3V0LmxheW91dEJveCk6U3QodGhpcy50YXJnZXQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KSxzTih0aGlzLnRhcmdldCx0aGlzLnRhcmdldERlbHRhKSk6U3QodGhpcy50YXJnZXQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KSx0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCl7dGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQ9ITE7Y29uc3QgZj10aGlzLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7ZiYmISFmLnJlc3VtaW5nRnJvbT09ISF0aGlzLnJlc3VtaW5nRnJvbSYmIWYub3B0aW9ucy5sYXlvdXRTY3JvbGwmJmYudGFyZ2V0JiZ0aGlzLmFuaW1hdGlvblByb2dyZXNzIT09MT8odGhpcy5yZWxhdGl2ZVBhcmVudD1mLHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpLHRoaXMucmVsYXRpdmVUYXJnZXQ9a2UoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPWtlKCksdGkodGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbix0aGlzLnRhcmdldCxmLnRhcmdldCksU3QodGhpcy5yZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luKSk6dGhpcy5yZWxhdGl2ZVBhcmVudD10aGlzLnJlbGF0aXZlVGFyZ2V0PXZvaWQgMH0kYSYmZXIucmVzb2x2ZWRUYXJnZXREZWx0YXMrK319fWdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCl7aWYoISghdGhpcy5wYXJlbnR8fG9nKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcyl8fG9OKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykpKXJldHVybiB0aGlzLnBhcmVudC5pc1Byb2plY3RpbmcoKT90aGlzLnBhcmVudDp0aGlzLnBhcmVudC5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpfWlzUHJvamVjdGluZygpe3JldHVybiEhKCh0aGlzLnJlbGF0aXZlVGFyZ2V0fHx0aGlzLnRhcmdldERlbHRhfHx0aGlzLm9wdGlvbnMubGF5b3V0Um9vdCkmJnRoaXMubGF5b3V0KX1jYWxjUHJvamVjdGlvbigpe3ZhciBvO2NvbnN0IHM9dGhpcy5nZXRMZWFkKCksbD0hIXRoaXMucmVzdW1pbmdGcm9tfHx0aGlzIT09cztsZXQgdT0hMDtpZigodGhpcy5pc1Byb2plY3Rpb25EaXJ0eXx8ISgobz10aGlzLnBhcmVudCk9PT1udWxsfHxvPT09dm9pZCAwKSYmby5pc1Byb2plY3Rpb25EaXJ0eSkmJih1PSExKSxsJiYodGhpcy5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eXx8dGhpcy5pc1RyYW5zZm9ybURpcnR5KSYmKHU9ITEpLHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0PT09RGUudGltZXN0YW1wJiYodT0hMSksdSlyZXR1cm47Y29uc3R7bGF5b3V0OmMsbGF5b3V0SWQ6ZH09dGhpcy5vcHRpb25zO2lmKHRoaXMuaXNUcmVlQW5pbWF0aW5nPSEhKHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpbmd8fHRoaXMuY3VycmVudEFuaW1hdGlvbnx8dGhpcy5wZW5kaW5nQW5pbWF0aW9uKSx0aGlzLmlzVHJlZUFuaW1hdGluZ3x8KHRoaXMudGFyZ2V0RGVsdGE9dGhpcy5yZWxhdGl2ZVRhcmdldD12b2lkIDApLCF0aGlzLmxheW91dHx8IShjfHxkKSlyZXR1cm47U3QodGhpcy5sYXlvdXRDb3JyZWN0ZWQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtjb25zdCBwPXRoaXMudHJlZVNjYWxlLngsZj10aGlzLnRyZWVTY2FsZS55O2pNKHRoaXMubGF5b3V0Q29ycmVjdGVkLHRoaXMudHJlZVNjYWxlLHRoaXMucGF0aCxsKSxzLmxheW91dCYmIXMudGFyZ2V0JiYodGhpcy50cmVlU2NhbGUueCE9PTF8fHRoaXMudHJlZVNjYWxlLnkhPT0xKSYmKHMudGFyZ2V0PXMubGF5b3V0LmxheW91dEJveCxzLnRhcmdldFdpdGhUcmFuc2Zvcm1zPWtlKCkpO2NvbnN0e3RhcmdldDp5fT1zO2lmKCF5KXt0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEmJih0aGlzLmNyZWF0ZVByb2plY3Rpb25EZWx0YXMoKSx0aGlzLnNjaGVkdWxlUmVuZGVyKCkpO3JldHVybn0hdGhpcy5wcm9qZWN0aW9uRGVsdGF8fCF0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGE/dGhpcy5jcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCk6KFl2KHRoaXMucHJldlByb2plY3Rpb25EZWx0YS54LHRoaXMucHJvamVjdGlvbkRlbHRhLngpLFl2KHRoaXMucHJldlByb2plY3Rpb25EZWx0YS55LHRoaXMucHJvamVjdGlvbkRlbHRhLnkpKSxlaSh0aGlzLnByb2plY3Rpb25EZWx0YSx0aGlzLmxheW91dENvcnJlY3RlZCx5LHRoaXMubGF0ZXN0VmFsdWVzKSwodGhpcy50cmVlU2NhbGUueCE9PXB8fHRoaXMudHJlZVNjYWxlLnkhPT1mfHwhbkUodGhpcy5wcm9qZWN0aW9uRGVsdGEueCx0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueCl8fCFuRSh0aGlzLnByb2plY3Rpb25EZWx0YS55LHRoaXMucHJldlByb2plY3Rpb25EZWx0YS55KSkmJih0aGlzLmhhc1Byb2plY3RlZD0hMCx0aGlzLnNjaGVkdWxlUmVuZGVyKCksdGhpcy5ub3RpZnlMaXN0ZW5lcnMoInByb2plY3Rpb25VcGRhdGUiLHkpKSwkYSYmZXIucmVjYWxjdWxhdGVkUHJvamVjdGlvbisrfWhpZGUoKXt0aGlzLmlzVmlzaWJsZT0hMX1zaG93KCl7dGhpcy5pc1Zpc2libGU9ITB9c2NoZWR1bGVSZW5kZXIobz0hMCl7dmFyIHM7aWYoKHM9dGhpcy5vcHRpb25zLnZpc3VhbEVsZW1lbnQpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5zY2hlZHVsZVJlbmRlcigpLG8pe2NvbnN0IGw9dGhpcy5nZXRTdGFjaygpO2wmJmwuc2NoZWR1bGVSZW5kZXIoKX10aGlzLnJlc3VtaW5nRnJvbSYmIXRoaXMucmVzdW1pbmdGcm9tLmluc3RhbmNlJiYodGhpcy5yZXN1bWluZ0Zyb209dm9pZCAwKX1jcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCl7dGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhPSRyKCksdGhpcy5wcm9qZWN0aW9uRGVsdGE9JHIoKSx0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm09JHIoKX1zZXRBbmltYXRpb25PcmlnaW4obyxzPSExKXtjb25zdCBsPXRoaXMuc25hcHNob3QsdT1sP2wubGF0ZXN0VmFsdWVzOnt9LGM9ey4uLnRoaXMubGF0ZXN0VmFsdWVzfSxkPSRyKCk7KCF0aGlzLnJlbGF0aXZlUGFyZW50fHwhdGhpcy5yZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QpJiYodGhpcy5yZWxhdGl2ZVRhcmdldD10aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPXZvaWQgMCksdGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQ9IXM7Y29uc3QgcD1rZSgpLGY9bD9sLnNvdXJjZTp2b2lkIDAseT10aGlzLmxheW91dD90aGlzLmxheW91dC5zb3VyY2U6dm9pZCAwLGI9ZiE9PXksQT10aGlzLmdldFN0YWNrKCksaD0hQXx8QS5tZW1iZXJzLmxlbmd0aDw9MSxtPSEhKGImJiFoJiZ0aGlzLm9wdGlvbnMuY3Jvc3NmYWRlPT09ITAmJiF0aGlzLnBhdGguc29tZShSUCkpO3RoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M9MDtsZXQgZzt0aGlzLm1peFRhcmdldERlbHRhPUU9Pntjb25zdCBUPUUvMWUzO29FKGQueCxvLngsVCksb0UoZC55LG8ueSxUKSx0aGlzLnNldFRhcmdldERlbHRhKGQpLHRoaXMucmVsYXRpdmVUYXJnZXQmJnRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4mJnRoaXMubGF5b3V0JiZ0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dCYmKHRpKHAsdGhpcy5sYXlvdXQubGF5b3V0Qm94LHRoaXMucmVsYXRpdmVQYXJlbnQubGF5b3V0LmxheW91dEJveCkseFAodGhpcy5yZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luLHAsVCksZyYmY1AodGhpcy5yZWxhdGl2ZVRhcmdldCxnKSYmKHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITEpLGd8fChnPWtlKCkpLFN0KGcsdGhpcy5yZWxhdGl2ZVRhcmdldCkpLGImJih0aGlzLmFuaW1hdGlvblZhbHVlcz1jLGFQKGMsdSx0aGlzLmxhdGVzdFZhbHVlcyxULG0saCkpLHRoaXMucm9vdC5zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKSx0aGlzLnNjaGVkdWxlUmVuZGVyKCksdGhpcy5hbmltYXRpb25Qcm9ncmVzcz1UfSx0aGlzLm1peFRhcmdldERlbHRhKHRoaXMub3B0aW9ucy5sYXlvdXRSb290PzFlMzowKX1zdGFydEFuaW1hdGlvbihvKXt0aGlzLm5vdGlmeUxpc3RlbmVycygiYW5pbWF0aW9uU3RhcnQiKSx0aGlzLmN1cnJlbnRBbmltYXRpb24mJnRoaXMuY3VycmVudEFuaW1hdGlvbi5zdG9wKCksdGhpcy5yZXN1bWluZ0Zyb20mJnRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24mJnRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpLHRoaXMucGVuZGluZ0FuaW1hdGlvbiYmKCRuKHRoaXMucGVuZGluZ0FuaW1hdGlvbiksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPXZvaWQgMCksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPW1lLnVwZGF0ZSgoKT0+e0xvLmhhc0FuaW1hdGVkU2luY2VSZXNpemU9ITAsdGhpcy5jdXJyZW50QW5pbWF0aW9uPVFNKDAsckUsey4uLm8sb25VcGRhdGU6cz0+e3RoaXMubWl4VGFyZ2V0RGVsdGEocyksby5vblVwZGF0ZSYmby5vblVwZGF0ZShzKX0sb25Db21wbGV0ZTooKT0+e28ub25Db21wbGV0ZSYmby5vbkNvbXBsZXRlKCksdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpfX0pLHRoaXMucmVzdW1pbmdGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb20uY3VycmVudEFuaW1hdGlvbj10aGlzLmN1cnJlbnRBbmltYXRpb24pLHRoaXMucGVuZGluZ0FuaW1hdGlvbj12b2lkIDB9KX1jb21wbGV0ZUFuaW1hdGlvbigpe3RoaXMucmVzdW1pbmdGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb20uY3VycmVudEFuaW1hdGlvbj12b2lkIDAsdGhpcy5yZXN1bWluZ0Zyb20ucHJlc2VydmVPcGFjaXR5PXZvaWQgMCk7Y29uc3Qgbz10aGlzLmdldFN0YWNrKCk7byYmby5leGl0QW5pbWF0aW9uQ29tcGxldGUoKSx0aGlzLnJlc3VtaW5nRnJvbT10aGlzLmN1cnJlbnRBbmltYXRpb249dGhpcy5hbmltYXRpb25WYWx1ZXM9dm9pZCAwLHRoaXMubm90aWZ5TGlzdGVuZXJzKCJhbmltYXRpb25Db21wbGV0ZSIpfWZpbmlzaEFuaW1hdGlvbigpe3RoaXMuY3VycmVudEFuaW1hdGlvbiYmKHRoaXMubWl4VGFyZ2V0RGVsdGEmJnRoaXMubWl4VGFyZ2V0RGVsdGEockUpLHRoaXMuY3VycmVudEFuaW1hdGlvbi5zdG9wKCkpLHRoaXMuY29tcGxldGVBbmltYXRpb24oKX1hcHBseVRyYW5zZm9ybXNUb1RhcmdldCgpe2NvbnN0IG89dGhpcy5nZXRMZWFkKCk7bGV0e3RhcmdldFdpdGhUcmFuc2Zvcm1zOnMsdGFyZ2V0OmwsbGF5b3V0OnUsbGF0ZXN0VmFsdWVzOmN9PW87aWYoISghc3x8IWx8fCF1KSl7aWYodGhpcyE9PW8mJnRoaXMubGF5b3V0JiZ1JiZiTih0aGlzLm9wdGlvbnMuYW5pbWF0aW9uVHlwZSx0aGlzLmxheW91dC5sYXlvdXRCb3gsdS5sYXlvdXRCb3gpKXtsPXRoaXMudGFyZ2V0fHxrZSgpO2NvbnN0IGQ9YnQodGhpcy5sYXlvdXQubGF5b3V0Qm94LngpO2wueC5taW49by50YXJnZXQueC5taW4sbC54Lm1heD1sLngubWluK2Q7Y29uc3QgcD1idCh0aGlzLmxheW91dC5sYXlvdXRCb3gueSk7bC55Lm1pbj1vLnRhcmdldC55Lm1pbixsLnkubWF4PWwueS5taW4rcH1TdChzLGwpLGpyKHMsYyksZWkodGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtLHRoaXMubGF5b3V0Q29ycmVjdGVkLHMsYyl9fXJlZ2lzdGVyU2hhcmVkTm9kZShvLHMpe3RoaXMuc2hhcmVkTm9kZXMuaGFzKG8pfHx0aGlzLnNoYXJlZE5vZGVzLnNldChvLG5ldyBkUCksdGhpcy5zaGFyZWROb2Rlcy5nZXQobykuYWRkKHMpO2NvbnN0IHU9cy5vcHRpb25zLmluaXRpYWxQcm9tb3Rpb25Db25maWc7cy5wcm9tb3RlKHt0cmFuc2l0aW9uOnU/dS50cmFuc2l0aW9uOnZvaWQgMCxwcmVzZXJ2ZUZvbGxvd09wYWNpdHk6dSYmdS5zaG91bGRQcmVzZXJ2ZUZvbGxvd09wYWNpdHk/dS5zaG91bGRQcmVzZXJ2ZUZvbGxvd09wYWNpdHkocyk6dm9pZCAwfSl9aXNMZWFkKCl7Y29uc3Qgbz10aGlzLmdldFN0YWNrKCk7cmV0dXJuIG8/by5sZWFkPT09dGhpczohMH1nZXRMZWFkKCl7dmFyIG87Y29uc3R7bGF5b3V0SWQ6c309dGhpcy5vcHRpb25zO3JldHVybiBzPygobz10aGlzLmdldFN0YWNrKCkpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5sZWFkKXx8dGhpczp0aGlzfWdldFByZXZMZWFkKCl7dmFyIG87Y29uc3R7bGF5b3V0SWQ6c309dGhpcy5vcHRpb25zO3JldHVybiBzPyhvPXRoaXMuZ2V0U3RhY2soKSk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLnByZXZMZWFkOnZvaWQgMH1nZXRTdGFjaygpe2NvbnN0e2xheW91dElkOm99PXRoaXMub3B0aW9ucztpZihvKXJldHVybiB0aGlzLnJvb3Quc2hhcmVkTm9kZXMuZ2V0KG8pfXByb21vdGUoe25lZWRzUmVzZXQ6byx0cmFuc2l0aW9uOnMscHJlc2VydmVGb2xsb3dPcGFjaXR5Omx9PXt9KXtjb25zdCB1PXRoaXMuZ2V0U3RhY2soKTt1JiZ1LnByb21vdGUodGhpcyxsKSxvJiYodGhpcy5wcm9qZWN0aW9uRGVsdGE9dm9pZCAwLHRoaXMubmVlZHNSZXNldD0hMCkscyYmdGhpcy5zZXRPcHRpb25zKHt0cmFuc2l0aW9uOnN9KX1yZWxlZ2F0ZSgpe2NvbnN0IG89dGhpcy5nZXRTdGFjaygpO3JldHVybiBvP28ucmVsZWdhdGUodGhpcyk6ITF9cmVzZXRTa2V3QW5kUm90YXRpb24oKXtjb25zdHt2aXN1YWxFbGVtZW50Om99PXRoaXMub3B0aW9ucztpZighbylyZXR1cm47bGV0IHM9ITE7Y29uc3R7bGF0ZXN0VmFsdWVzOmx9PW87aWYoKGwuenx8bC5yb3RhdGV8fGwucm90YXRlWHx8bC5yb3RhdGVZfHxsLnJvdGF0ZVp8fGwuc2tld1h8fGwuc2tld1kpJiYocz0hMCksIXMpcmV0dXJuO2NvbnN0IHU9e307bC56JiZEbCgieiIsbyx1LHRoaXMuYW5pbWF0aW9uVmFsdWVzKTtmb3IobGV0IGM9MDtjPExsLmxlbmd0aDtjKyspRGwoYHJvdGF0ZSR7TGxbY119YCxvLHUsdGhpcy5hbmltYXRpb25WYWx1ZXMpLERsKGBza2V3JHtMbFtjXX1gLG8sdSx0aGlzLmFuaW1hdGlvblZhbHVlcyk7by5yZW5kZXIoKTtmb3IoY29uc3QgYyBpbiB1KW8uc2V0U3RhdGljVmFsdWUoYyx1W2NdKSx0aGlzLmFuaW1hdGlvblZhbHVlcyYmKHRoaXMuYW5pbWF0aW9uVmFsdWVzW2NdPXVbY10pO28uc2NoZWR1bGVSZW5kZXIoKX1nZXRQcm9qZWN0aW9uU3R5bGVzKG8pe3ZhciBzLGw7aWYoIXRoaXMuaW5zdGFuY2V8fHRoaXMuaXNTVkcpcmV0dXJuO2lmKCF0aGlzLmlzVmlzaWJsZSlyZXR1cm4gZlA7Y29uc3QgdT17dmlzaWJpbGl0eToiIn0sYz10aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCk7aWYodGhpcy5uZWVkc1Jlc2V0KXJldHVybiB0aGlzLm5lZWRzUmVzZXQ9ITEsdS5vcGFjaXR5PSIiLHUucG9pbnRlckV2ZW50cz1DbyhvPT1udWxsP3ZvaWQgMDpvLnBvaW50ZXJFdmVudHMpfHwiIix1LnRyYW5zZm9ybT1jP2ModGhpcy5sYXRlc3RWYWx1ZXMsIiIpOiJub25lIix1O2NvbnN0IGQ9dGhpcy5nZXRMZWFkKCk7aWYoIXRoaXMucHJvamVjdGlvbkRlbHRhfHwhdGhpcy5sYXlvdXR8fCFkLnRhcmdldCl7Y29uc3QgYj17fTtyZXR1cm4gdGhpcy5vcHRpb25zLmxheW91dElkJiYoYi5vcGFjaXR5PXRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHkhPT12b2lkIDA/dGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eToxLGIucG9pbnRlckV2ZW50cz1DbyhvPT1udWxsP3ZvaWQgMDpvLnBvaW50ZXJFdmVudHMpfHwiIiksdGhpcy5oYXNQcm9qZWN0ZWQmJiFKbih0aGlzLmxhdGVzdFZhbHVlcykmJihiLnRyYW5zZm9ybT1jP2Moe30sIiIpOiJub25lIix0aGlzLmhhc1Byb2plY3RlZD0hMSksYn1jb25zdCBwPWQuYW5pbWF0aW9uVmFsdWVzfHxkLmxhdGVzdFZhbHVlczt0aGlzLmFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCksdS50cmFuc2Zvcm09cFAodGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtLHRoaXMudHJlZVNjYWxlLHApLGMmJih1LnRyYW5zZm9ybT1jKHAsdS50cmFuc2Zvcm0pKTtjb25zdHt4OmYseX09dGhpcy5wcm9qZWN0aW9uRGVsdGE7dS50cmFuc2Zvcm1PcmlnaW49YCR7Zi5vcmlnaW4qMTAwfSUgJHt5Lm9yaWdpbioxMDB9JSAwYCxkLmFuaW1hdGlvblZhbHVlcz91Lm9wYWNpdHk9ZD09PXRoaXM/KGw9KHM9cC5vcGFjaXR5KSE9PW51bGwmJnMhPT12b2lkIDA/czp0aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5KSE9PW51bGwmJmwhPT12b2lkIDA/bDoxOnRoaXMucHJlc2VydmVPcGFjaXR5P3RoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHk6cC5vcGFjaXR5RXhpdDp1Lm9wYWNpdHk9ZD09PXRoaXM/cC5vcGFjaXR5IT09dm9pZCAwP3Aub3BhY2l0eToiIjpwLm9wYWNpdHlFeGl0IT09dm9pZCAwP3Aub3BhY2l0eUV4aXQ6MDtmb3IoY29uc3QgYiBpbiBjcyl7aWYocFtiXT09PXZvaWQgMCljb250aW51ZTtjb25zdHtjb3JyZWN0OkEsYXBwbHlUbzpofT1jc1tiXSxtPXUudHJhbnNmb3JtPT09Im5vbmUiP3BbYl06QShwW2JdLGQpO2lmKGgpe2NvbnN0IGc9aC5sZW5ndGg7Zm9yKGxldCBFPTA7RTxnO0UrKyl1W2hbRV1dPW19ZWxzZSB1W2JdPW19cmV0dXJuIHRoaXMub3B0aW9ucy5sYXlvdXRJZCYmKHUucG9pbnRlckV2ZW50cz1kPT09dGhpcz9DbyhvPT1udWxsP3ZvaWQgMDpvLnBvaW50ZXJFdmVudHMpfHwiIjoibm9uZSIpLHV9Y2xlYXJTbmFwc2hvdCgpe3RoaXMucmVzdW1lRnJvbT10aGlzLnNuYXBzaG90PXZvaWQgMH1yZXNldFRyZWUoKXt0aGlzLnJvb3Qubm9kZXMuZm9yRWFjaChvPT57dmFyIHM7cmV0dXJuKHM9by5jdXJyZW50QW5pbWF0aW9uKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnMuc3RvcCgpfSksdGhpcy5yb290Lm5vZGVzLmZvckVhY2goYUUpLHRoaXMucm9vdC5zaGFyZWROb2Rlcy5jbGVhcigpfX19ZnVuY3Rpb24gZ1AoZSl7ZS51cGRhdGVMYXlvdXQoKX1mdW5jdGlvbiBoUChlKXt2YXIgdDtjb25zdCBuPSgodD1lLnJlc3VtZUZyb20pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5zbmFwc2hvdCl8fGUuc25hcHNob3Q7aWYoZS5pc0xlYWQoKSYmZS5sYXlvdXQmJm4mJmUuaGFzTGlzdGVuZXJzKCJkaWRVcGRhdGUiKSl7Y29uc3R7bGF5b3V0Qm94OnIsbWVhc3VyZWRCb3g6YX09ZS5sYXlvdXQse2FuaW1hdGlvblR5cGU6aX09ZS5vcHRpb25zLG89bi5zb3VyY2UhPT1lLmxheW91dC5zb3VyY2U7aT09PSJzaXplIj9rdChkPT57Y29uc3QgcD1vP24ubWVhc3VyZWRCb3hbZF06bi5sYXlvdXRCb3hbZF0sZj1idChwKTtwLm1pbj1yW2RdLm1pbixwLm1heD1wLm1pbitmfSk6Yk4oaSxuLmxheW91dEJveCxyKSYma3QoZD0+e2NvbnN0IHA9bz9uLm1lYXN1cmVkQm94W2RdOm4ubGF5b3V0Qm94W2RdLGY9YnQocltkXSk7cC5tYXg9cC5taW4rZixlLnJlbGF0aXZlVGFyZ2V0JiYhZS5jdXJyZW50QW5pbWF0aW9uJiYoZS5pc1Byb2plY3Rpb25EaXJ0eT0hMCxlLnJlbGF0aXZlVGFyZ2V0W2RdLm1heD1lLnJlbGF0aXZlVGFyZ2V0W2RdLm1pbitmKX0pO2NvbnN0IHM9JHIoKTtlaShzLHIsbi5sYXlvdXRCb3gpO2NvbnN0IGw9JHIoKTtvP2VpKGwsZS5hcHBseVRyYW5zZm9ybShhLCEwKSxuLm1lYXN1cmVkQm94KTplaShsLHIsbi5sYXlvdXRCb3gpO2NvbnN0IHU9IWZOKHMpO2xldCBjPSExO2lmKCFlLnJlc3VtZUZyb20pe2NvbnN0IGQ9ZS5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO2lmKGQmJiFkLnJlc3VtZUZyb20pe2NvbnN0e3NuYXBzaG90OnAsbGF5b3V0OmZ9PWQ7aWYocCYmZil7Y29uc3QgeT1rZSgpO3RpKHksbi5sYXlvdXRCb3gscC5sYXlvdXRCb3gpO2NvbnN0IGI9a2UoKTt0aShiLHIsZi5sYXlvdXRCb3gpLG1OKHksYil8fChjPSEwKSxkLm9wdGlvbnMubGF5b3V0Um9vdCYmKGUucmVsYXRpdmVUYXJnZXQ9YixlLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPXksZS5yZWxhdGl2ZVBhcmVudD1kKX19fWUubm90aWZ5TGlzdGVuZXJzKCJkaWRVcGRhdGUiLHtsYXlvdXQ6cixzbmFwc2hvdDpuLGRlbHRhOmwsbGF5b3V0RGVsdGE6cyxoYXNMYXlvdXRDaGFuZ2VkOnUsaGFzUmVsYXRpdmVUYXJnZXRDaGFuZ2VkOmN9KX1lbHNlIGlmKGUuaXNMZWFkKCkpe2NvbnN0e29uRXhpdENvbXBsZXRlOnJ9PWUub3B0aW9ucztyJiZyKCl9ZS5vcHRpb25zLnRyYW5zaXRpb249dm9pZCAwfWZ1bmN0aW9uIGJQKGUpeyRhJiZlci50b3RhbE5vZGVzKyssZS5wYXJlbnQmJihlLmlzUHJvamVjdGluZygpfHwoZS5pc1Byb2plY3Rpb25EaXJ0eT1lLnBhcmVudC5pc1Byb2plY3Rpb25EaXJ0eSksZS5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eXx8KGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHk9ISEoZS5pc1Byb2plY3Rpb25EaXJ0eXx8ZS5wYXJlbnQuaXNQcm9qZWN0aW9uRGlydHl8fGUucGFyZW50LmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSksZS5pc1RyYW5zZm9ybURpcnR5fHwoZS5pc1RyYW5zZm9ybURpcnR5PWUucGFyZW50LmlzVHJhbnNmb3JtRGlydHkpKX1mdW5jdGlvbiB5UChlKXtlLmlzUHJvamVjdGlvbkRpcnR5PWUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHk9ZS5pc1RyYW5zZm9ybURpcnR5PSExfWZ1bmN0aW9uIHZQKGUpe2UuY2xlYXJTbmFwc2hvdCgpfWZ1bmN0aW9uIGFFKGUpe2UuY2xlYXJNZWFzdXJlbWVudHMoKX1mdW5jdGlvbiBFUChlKXtlLmlzTGF5b3V0RGlydHk9ITF9ZnVuY3Rpb24gU1AoZSl7Y29uc3R7dmlzdWFsRWxlbWVudDp0fT1lLm9wdGlvbnM7dCYmdC5nZXRQcm9wcygpLm9uQmVmb3JlTGF5b3V0TWVhc3VyZSYmdC5ub3RpZnkoIkJlZm9yZUxheW91dE1lYXN1cmUiKSxlLnJlc2V0VHJhbnNmb3JtKCl9ZnVuY3Rpb24gaUUoZSl7ZS5maW5pc2hBbmltYXRpb24oKSxlLnRhcmdldERlbHRhPWUucmVsYXRpdmVUYXJnZXQ9ZS50YXJnZXQ9dm9pZCAwLGUuaXNQcm9qZWN0aW9uRGlydHk9ITB9ZnVuY3Rpb24gd1AoZSl7ZS5yZXNvbHZlVGFyZ2V0RGVsdGEoKX1mdW5jdGlvbiBUUChlKXtlLmNhbGNQcm9qZWN0aW9uKCl9ZnVuY3Rpb24ga1AoZSl7ZS5yZXNldFNrZXdBbmRSb3RhdGlvbigpfWZ1bmN0aW9uIEFQKGUpe2UucmVtb3ZlTGVhZFNuYXBzaG90KCl9ZnVuY3Rpb24gb0UoZSx0LG4pe2UudHJhbnNsYXRlPXllKHQudHJhbnNsYXRlLDAsbiksZS5zY2FsZT15ZSh0LnNjYWxlLDEsbiksZS5vcmlnaW49dC5vcmlnaW4sZS5vcmlnaW5Qb2ludD10Lm9yaWdpblBvaW50fWZ1bmN0aW9uIHNFKGUsdCxuLHIpe2UubWluPXllKHQubWluLG4ubWluLHIpLGUubWF4PXllKHQubWF4LG4ubWF4LHIpfWZ1bmN0aW9uIHhQKGUsdCxuLHIpe3NFKGUueCx0Lngsbi54LHIpLHNFKGUueSx0Lnksbi55LHIpfWZ1bmN0aW9uIFJQKGUpe3JldHVybiBlLmFuaW1hdGlvblZhbHVlcyYmZS5hbmltYXRpb25WYWx1ZXMub3BhY2l0eUV4aXQhPT12b2lkIDB9Y29uc3QgX1A9e2R1cmF0aW9uOi40NSxlYXNlOlsuNCwwLC4xLDFdfSxsRT1lPT50eXBlb2YgbmF2aWdhdG9yPCJ1IiYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGUpLHVFPWxFKCJhcHBsZXdlYmtpdC8iKSYmIWxFKCJjaHJvbWUvIik/TWF0aC5yb3VuZDpndDtmdW5jdGlvbiBjRShlKXtlLm1pbj11RShlLm1pbiksZS5tYXg9dUUoZS5tYXgpfWZ1bmN0aW9uIElQKGUpe2NFKGUueCksY0UoZS55KX1mdW5jdGlvbiBiTihlLHQsbil7cmV0dXJuIGU9PT0icG9zaXRpb24ifHxlPT09InByZXNlcnZlLWFzcGVjdCImJiFPTSh0RSh0KSx0RShuKSwuMil9ZnVuY3Rpb24gTlAoZSl7dmFyIHQ7cmV0dXJuIGUhPT1lLnJvb3QmJigodD1lLnNjcm9sbCk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0Lndhc1Jvb3QpfWNvbnN0IENQPWhOKHthdHRhY2hSZXNpemVMaXN0ZW5lcjooZSx0KT0+eGkoZSwicmVzaXplIix0KSxtZWFzdXJlU2Nyb2xsOigpPT4oe3g6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCx5OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfSksY2hlY2tJc1Njcm9sbFJvb3Q6KCk9PiEwfSksTWw9e2N1cnJlbnQ6dm9pZCAwfSx5Tj1oTih7bWVhc3VyZVNjcm9sbDplPT4oe3g6ZS5zY3JvbGxMZWZ0LHk6ZS5zY3JvbGxUb3B9KSxkZWZhdWx0UGFyZW50OigpPT57aWYoIU1sLmN1cnJlbnQpe2NvbnN0IGU9bmV3IENQKHt9KTtlLm1vdW50KHdpbmRvdyksZS5zZXRPcHRpb25zKHtsYXlvdXRTY3JvbGw6ITB9KSxNbC5jdXJyZW50PWV9cmV0dXJuIE1sLmN1cnJlbnR9LHJlc2V0VHJhbnNmb3JtOihlLHQpPT57ZS5zdHlsZS50cmFuc2Zvcm09dCE9PXZvaWQgMD90OiJub25lIn0sY2hlY2tJc1Njcm9sbFJvb3Q6ZT0+d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkucG9zaXRpb249PT0iZml4ZWQifSksT1A9e3Bhbjp7RmVhdHVyZTpZTX0sZHJhZzp7RmVhdHVyZTpXTSxQcm9qZWN0aW9uTm9kZTp5TixNZWFzdXJlTGF5b3V0OmNOfX07ZnVuY3Rpb24gZEUoZSx0LG4pe2NvbnN0e3Byb3BzOnJ9PWU7ZS5hbmltYXRpb25TdGF0ZSYmci53aGlsZUhvdmVyJiZlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZSgid2hpbGVIb3ZlciIsbj09PSJTdGFydCIpO2NvbnN0IGE9Im9uSG92ZXIiK24saT1yW2FdO2kmJm1lLnBvc3RSZW5kZXIoKCk9PmkodCxCaSh0KSkpfWNsYXNzIExQIGV4dGVuZHMgVm57bW91bnQoKXtjb25zdHtjdXJyZW50OnR9PXRoaXMubm9kZTt0JiYodGhpcy51bm1vdW50PU9MKHQsbj0+KGRFKHRoaXMubm9kZSxuLCJTdGFydCIpLHI9PmRFKHRoaXMubm9kZSxyLCJFbmQiKSkpKX11bm1vdW50KCl7fX1jbGFzcyBEUCBleHRlbmRzIFZue2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlzQWN0aXZlPSExfW9uRm9jdXMoKXtsZXQgdD0hMTt0cnl7dD10aGlzLm5vZGUuY3VycmVudC5tYXRjaGVzKCI6Zm9jdXMtdmlzaWJsZSIpfWNhdGNoe3Q9ITB9IXR8fCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGV8fCh0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKCJ3aGlsZUZvY3VzIiwhMCksdGhpcy5pc0FjdGl2ZT0hMCl9b25CbHVyKCl7IXRoaXMuaXNBY3RpdmV8fCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGV8fCh0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKCJ3aGlsZUZvY3VzIiwhMSksdGhpcy5pc0FjdGl2ZT0hMSl9bW91bnQoKXt0aGlzLnVubW91bnQ9VWkoeGkodGhpcy5ub2RlLmN1cnJlbnQsImZvY3VzIiwoKT0+dGhpcy5vbkZvY3VzKCkpLHhpKHRoaXMubm9kZS5jdXJyZW50LCJibHVyIiwoKT0+dGhpcy5vbkJsdXIoKSkpfXVubW91bnQoKXt9fWZ1bmN0aW9uIHBFKGUsdCxuKXtjb25zdHtwcm9wczpyfT1lO2UuYW5pbWF0aW9uU3RhdGUmJnIud2hpbGVUYXAmJmUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKCJ3aGlsZVRhcCIsbj09PSJTdGFydCIpO2NvbnN0IGE9Im9uVGFwIisobj09PSJFbmQiPyIiOm4pLGk9clthXTtpJiZtZS5wb3N0UmVuZGVyKCgpPT5pKHQsQmkodCkpKX1jbGFzcyBNUCBleHRlbmRzIFZue21vdW50KCl7Y29uc3R7Y3VycmVudDp0fT10aGlzLm5vZGU7dCYmKHRoaXMudW5tb3VudD1QTCh0LG49PihwRSh0aGlzLm5vZGUsbiwiU3RhcnQiKSwocix7c3VjY2VzczphfSk9PnBFKHRoaXMubm9kZSxyLGE/IkVuZCI6IkNhbmNlbCIpKSx7dXNlR2xvYmFsVGFyZ2V0OnRoaXMubm9kZS5wcm9wcy5nbG9iYWxUYXBUYXJnZXR9KSl9dW5tb3VudCgpe319Y29uc3QgbGc9bmV3IFdlYWtNYXAsUGw9bmV3IFdlYWtNYXAsUFA9ZT0+e2NvbnN0IHQ9bGcuZ2V0KGUudGFyZ2V0KTt0JiZ0KGUpfSxGUD1lPT57ZS5mb3JFYWNoKFBQKX07ZnVuY3Rpb24gVVAoe3Jvb3Q6ZSwuLi50fSl7Y29uc3Qgbj1lfHxkb2N1bWVudDtQbC5oYXMobil8fFBsLnNldChuLHt9KTtjb25zdCByPVBsLmdldChuKSxhPUpTT04uc3RyaW5naWZ5KHQpO3JldHVybiByW2FdfHwoclthXT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoRlAse3Jvb3Q6ZSwuLi50fSkpLHJbYV19ZnVuY3Rpb24gQlAoZSx0LG4pe2NvbnN0IHI9VVAodCk7cmV0dXJuIGxnLnNldChlLG4pLHIub2JzZXJ2ZShlKSwoKT0+e2xnLmRlbGV0ZShlKSxyLnVub2JzZXJ2ZShlKX19Y29uc3QgJFA9e3NvbWU6MCxhbGw6MX07Y2xhc3MgelAgZXh0ZW5kcyBWbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5oYXNFbnRlcmVkVmlldz0hMSx0aGlzLmlzSW5WaWV3PSExfXN0YXJ0T2JzZXJ2ZXIoKXt0aGlzLnVubW91bnQoKTtjb25zdHt2aWV3cG9ydDp0PXt9fT10aGlzLm5vZGUuZ2V0UHJvcHMoKSx7cm9vdDpuLG1hcmdpbjpyLGFtb3VudDphPSJzb21lIixvbmNlOml9PXQsbz17cm9vdDpuP24uY3VycmVudDp2b2lkIDAscm9vdE1hcmdpbjpyLHRocmVzaG9sZDp0eXBlb2YgYT09Im51bWJlciI/YTokUFthXX0scz1sPT57Y29uc3R7aXNJbnRlcnNlY3Rpbmc6dX09bDtpZih0aGlzLmlzSW5WaWV3PT09dXx8KHRoaXMuaXNJblZpZXc9dSxpJiYhdSYmdGhpcy5oYXNFbnRlcmVkVmlldykpcmV0dXJuO3UmJih0aGlzLmhhc0VudGVyZWRWaWV3PSEwKSx0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUmJnRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoIndoaWxlSW5WaWV3Iix1KTtjb25zdHtvblZpZXdwb3J0RW50ZXI6YyxvblZpZXdwb3J0TGVhdmU6ZH09dGhpcy5ub2RlLmdldFByb3BzKCkscD11P2M6ZDtwJiZwKGwpfTtyZXR1cm4gQlAodGhpcy5ub2RlLmN1cnJlbnQsbyxzKX1tb3VudCgpe3RoaXMuc3RhcnRPYnNlcnZlcigpfXVwZGF0ZSgpe2lmKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj4idSIpcmV0dXJuO2NvbnN0e3Byb3BzOnQscHJldlByb3BzOm59PXRoaXMubm9kZTtbImFtb3VudCIsIm1hcmdpbiIsInJvb3QiXS5zb21lKGpQKHQsbikpJiZ0aGlzLnN0YXJ0T2JzZXJ2ZXIoKX11bm1vdW50KCl7fX1mdW5jdGlvbiBqUCh7dmlld3BvcnQ6ZT17fX0se3ZpZXdwb3J0OnQ9e319PXt9KXtyZXR1cm4gbj0+ZVtuXSE9PXRbbl19Y29uc3QgR1A9e2luVmlldzp7RmVhdHVyZTp6UH0sdGFwOntGZWF0dXJlOk1QfSxmb2N1czp7RmVhdHVyZTpEUH0saG92ZXI6e0ZlYXR1cmU6TFB9fSxxUD17bGF5b3V0OntQcm9qZWN0aW9uTm9kZTp5TixNZWFzdXJlTGF5b3V0OmNOfX0sdWc9e2N1cnJlbnQ6bnVsbH0sdk49e2N1cnJlbnQ6ITF9O2Z1bmN0aW9uIFZQKCl7aWYodk4uY3VycmVudD0hMCwhIWtoKWlmKHdpbmRvdy5tYXRjaE1lZGlhKXtjb25zdCBlPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikiKSx0PSgpPT51Zy5jdXJyZW50PWUubWF0Y2hlcztlLmFkZExpc3RlbmVyKHQpLHQoKX1lbHNlIHVnLmN1cnJlbnQ9ITF9Y29uc3QgSFA9Wy4uLnFJLHplLHpuXSxXUD1lPT5IUC5maW5kKEdJKGUpKSxmRT1uZXcgV2Vha01hcDtmdW5jdGlvbiBZUChlLHQsbil7Zm9yKGNvbnN0IHIgaW4gdCl7Y29uc3QgYT10W3JdLGk9bltyXTtpZihHZShhKSllLmFkZFZhbHVlKHIsYSk7ZWxzZSBpZihHZShpKSllLmFkZFZhbHVlKHIsa2koYSx7b3duZXI6ZX0pKTtlbHNlIGlmKGkhPT1hKWlmKGUuaGFzVmFsdWUocikpe2NvbnN0IG89ZS5nZXRWYWx1ZShyKTtvLmxpdmVTdHlsZT09PSEwP28uanVtcChhKTpvLmhhc0FuaW1hdGVkfHxvLnNldChhKX1lbHNle2NvbnN0IG89ZS5nZXRTdGF0aWNWYWx1ZShyKTtlLmFkZFZhbHVlKHIsa2kobyE9PXZvaWQgMD9vOmEse293bmVyOmV9KSl9fWZvcihjb25zdCByIGluIG4pdFtyXT09PXZvaWQgMCYmZS5yZW1vdmVWYWx1ZShyKTtyZXR1cm4gdH1jb25zdCBtRT1bIkFuaW1hdGlvblN0YXJ0IiwiQW5pbWF0aW9uQ29tcGxldGUiLCJVcGRhdGUiLCJCZWZvcmVMYXlvdXRNZWFzdXJlIiwiTGF5b3V0TWVhc3VyZSIsIkxheW91dEFuaW1hdGlvblN0YXJ0IiwiTGF5b3V0QW5pbWF0aW9uQ29tcGxldGUiXTtjbGFzcyBLUHtzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHModCxuLHIpe3JldHVybnt9fWNvbnN0cnVjdG9yKHtwYXJlbnQ6dCxwcm9wczpuLHByZXNlbmNlQ29udGV4dDpyLHJlZHVjZWRNb3Rpb25Db25maWc6YSxibG9ja0luaXRpYWxBbmltYXRpb246aSx2aXN1YWxTdGF0ZTpvfSxzPXt9KXt0aGlzLmN1cnJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPW5ldyBTZXQsdGhpcy5pc1ZhcmlhbnROb2RlPSExLHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzPSExLHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uPW51bGwsdGhpcy52YWx1ZXM9bmV3IE1hcCx0aGlzLktleWZyYW1lUmVzb2x2ZXI9WmgsdGhpcy5mZWF0dXJlcz17fSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucz1uZXcgTWFwLHRoaXMucHJldk1vdGlvblZhbHVlcz17fSx0aGlzLmV2ZW50cz17fSx0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnM9e30sdGhpcy5ub3RpZnlVcGRhdGU9KCk9PnRoaXMubm90aWZ5KCJVcGRhdGUiLHRoaXMubGF0ZXN0VmFsdWVzKSx0aGlzLnJlbmRlcj0oKT0+e3RoaXMuY3VycmVudCYmKHRoaXMudHJpZ2dlckJ1aWxkKCksdGhpcy5yZW5kZXJJbnN0YW5jZSh0aGlzLmN1cnJlbnQsdGhpcy5yZW5kZXJTdGF0ZSx0aGlzLnByb3BzLnN0eWxlLHRoaXMucHJvamVjdGlvbikpfSx0aGlzLnJlbmRlclNjaGVkdWxlZEF0PTAsdGhpcy5zY2hlZHVsZVJlbmRlcj0oKT0+e2NvbnN0IGY9ZW4ubm93KCk7dGhpcy5yZW5kZXJTY2hlZHVsZWRBdDxmJiYodGhpcy5yZW5kZXJTY2hlZHVsZWRBdD1mLG1lLnJlbmRlcih0aGlzLnJlbmRlciwhMSwhMCkpfTtjb25zdHtsYXRlc3RWYWx1ZXM6bCxyZW5kZXJTdGF0ZTp1LG9uVXBkYXRlOmN9PW87dGhpcy5vblVwZGF0ZT1jLHRoaXMubGF0ZXN0VmFsdWVzPWwsdGhpcy5iYXNlVGFyZ2V0PXsuLi5sfSx0aGlzLmluaXRpYWxWYWx1ZXM9bi5pbml0aWFsP3suLi5sfTp7fSx0aGlzLnJlbmRlclN0YXRlPXUsdGhpcy5wYXJlbnQ9dCx0aGlzLnByb3BzPW4sdGhpcy5wcmVzZW5jZUNvbnRleHQ9cix0aGlzLmRlcHRoPXQ/dC5kZXB0aCsxOjAsdGhpcy5yZWR1Y2VkTW90aW9uQ29uZmlnPWEsdGhpcy5vcHRpb25zPXMsdGhpcy5ibG9ja0luaXRpYWxBbmltYXRpb249ISFpLHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzPUZzKG4pLHRoaXMuaXNWYXJpYW50Tm9kZT1RXyhuKSx0aGlzLmlzVmFyaWFudE5vZGUmJih0aGlzLnZhcmlhbnRDaGlsZHJlbj1uZXcgU2V0KSx0aGlzLm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQ9ISEodCYmdC5jdXJyZW50KTtjb25zdHt3aWxsQ2hhbmdlOmQsLi4ucH09dGhpcy5zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMobix7fSx0aGlzKTtmb3IoY29uc3QgZiBpbiBwKXtjb25zdCB5PXBbZl07bFtmXSE9PXZvaWQgMCYmR2UoeSkmJnkuc2V0KGxbZl0sITEpfX1tb3VudCh0KXt0aGlzLmN1cnJlbnQ9dCxmRS5zZXQodCx0aGlzKSx0aGlzLnByb2plY3Rpb24mJiF0aGlzLnByb2plY3Rpb24uaW5zdGFuY2UmJnRoaXMucHJvamVjdGlvbi5tb3VudCh0KSx0aGlzLnBhcmVudCYmdGhpcy5pc1ZhcmlhbnROb2RlJiYhdGhpcy5pc0NvbnRyb2xsaW5nVmFyaWFudHMmJih0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZT10aGlzLnBhcmVudC5hZGRWYXJpYW50Q2hpbGQodGhpcykpLHRoaXMudmFsdWVzLmZvckVhY2goKG4scik9PnRoaXMuYmluZFRvTW90aW9uVmFsdWUocixuKSksdk4uY3VycmVudHx8VlAoKSx0aGlzLnNob3VsZFJlZHVjZU1vdGlvbj10aGlzLnJlZHVjZWRNb3Rpb25Db25maWc9PT0ibmV2ZXIiPyExOnRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZz09PSJhbHdheXMiPyEwOnVnLmN1cnJlbnQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmNoaWxkcmVuLmFkZCh0aGlzKSx0aGlzLnVwZGF0ZSh0aGlzLnByb3BzLHRoaXMucHJlc2VuY2VDb250ZXh0KX11bm1vdW50KCl7ZkUuZGVsZXRlKHRoaXMuY3VycmVudCksdGhpcy5wcm9qZWN0aW9uJiZ0aGlzLnByb2plY3Rpb24udW5tb3VudCgpLCRuKHRoaXMubm90aWZ5VXBkYXRlKSwkbih0aGlzLnJlbmRlciksdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZm9yRWFjaCh0PT50KCkpLHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmNsZWFyKCksdGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWUmJnRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlKCksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmNoaWxkcmVuLmRlbGV0ZSh0aGlzKTtmb3IoY29uc3QgdCBpbiB0aGlzLmV2ZW50cyl0aGlzLmV2ZW50c1t0XS5jbGVhcigpO2Zvcihjb25zdCB0IGluIHRoaXMuZmVhdHVyZXMpe2NvbnN0IG49dGhpcy5mZWF0dXJlc1t0XTtuJiYobi51bm1vdW50KCksbi5pc01vdW50ZWQ9ITEpfXRoaXMuY3VycmVudD1udWxsfWJpbmRUb01vdGlvblZhbHVlKHQsbil7dGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuaGFzKHQpJiZ0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5nZXQodCkoKTtjb25zdCByPWJyLmhhcyh0KSxhPW4ub24oImNoYW5nZSIscz0+e3RoaXMubGF0ZXN0VmFsdWVzW3RdPXMsdGhpcy5wcm9wcy5vblVwZGF0ZSYmbWUucHJlUmVuZGVyKHRoaXMubm90aWZ5VXBkYXRlKSxyJiZ0aGlzLnByb2plY3Rpb24mJih0aGlzLnByb2plY3Rpb24uaXNUcmFuc2Zvcm1EaXJ0eT0hMCl9KSxpPW4ub24oInJlbmRlclJlcXVlc3QiLHRoaXMuc2NoZWR1bGVSZW5kZXIpO2xldCBvO3dpbmRvdy5Nb3Rpb25DaGVja0FwcGVhclN5bmMmJihvPXdpbmRvdy5Nb3Rpb25DaGVja0FwcGVhclN5bmModGhpcyx0LG4pKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5zZXQodCwoKT0+e2EoKSxpKCksbyYmbygpLG4ub3duZXImJm4uc3RvcCgpfSl9c29ydE5vZGVQb3NpdGlvbih0KXtyZXR1cm4hdGhpcy5jdXJyZW50fHwhdGhpcy5zb3J0SW5zdGFuY2VOb2RlUG9zaXRpb258fHRoaXMudHlwZSE9PXQudHlwZT8wOnRoaXMuc29ydEluc3RhbmNlTm9kZVBvc2l0aW9uKHRoaXMuY3VycmVudCx0LmN1cnJlbnQpfXVwZGF0ZUZlYXR1cmVzKCl7bGV0IHQ9ImFuaW1hdGlvbiI7Zm9yKHQgaW4gb2Epe2NvbnN0IG49b2FbdF07aWYoIW4pY29udGludWU7Y29uc3R7aXNFbmFibGVkOnIsRmVhdHVyZTphfT1uO2lmKCF0aGlzLmZlYXR1cmVzW3RdJiZhJiZyKHRoaXMucHJvcHMpJiYodGhpcy5mZWF0dXJlc1t0XT1uZXcgYSh0aGlzKSksdGhpcy5mZWF0dXJlc1t0XSl7Y29uc3QgaT10aGlzLmZlYXR1cmVzW3RdO2kuaXNNb3VudGVkP2kudXBkYXRlKCk6KGkubW91bnQoKSxpLmlzTW91bnRlZD0hMCl9fX10cmlnZ2VyQnVpbGQoKXt0aGlzLmJ1aWxkKHRoaXMucmVuZGVyU3RhdGUsdGhpcy5sYXRlc3RWYWx1ZXMsdGhpcy5wcm9wcyl9bWVhc3VyZVZpZXdwb3J0Qm94KCl7cmV0dXJuIHRoaXMuY3VycmVudD90aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94KHRoaXMuY3VycmVudCx0aGlzLnByb3BzKTprZSgpfWdldFN0YXRpY1ZhbHVlKHQpe3JldHVybiB0aGlzLmxhdGVzdFZhbHVlc1t0XX1zZXRTdGF0aWNWYWx1ZSh0LG4pe3RoaXMubGF0ZXN0VmFsdWVzW3RdPW59dXBkYXRlKHQsbil7KHQudHJhbnNmb3JtVGVtcGxhdGV8fHRoaXMucHJvcHMudHJhbnNmb3JtVGVtcGxhdGUpJiZ0aGlzLnNjaGVkdWxlUmVuZGVyKCksdGhpcy5wcmV2UHJvcHM9dGhpcy5wcm9wcyx0aGlzLnByb3BzPXQsdGhpcy5wcmV2UHJlc2VuY2VDb250ZXh0PXRoaXMucHJlc2VuY2VDb250ZXh0LHRoaXMucHJlc2VuY2VDb250ZXh0PW47Zm9yKGxldCByPTA7cjxtRS5sZW5ndGg7cisrKXtjb25zdCBhPW1FW3JdO3RoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1thXSYmKHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1thXSgpLGRlbGV0ZSB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNbYV0pO2NvbnN0IGk9Im9uIithLG89dFtpXTtvJiYodGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW2FdPXRoaXMub24oYSxvKSl9dGhpcy5wcmV2TW90aW9uVmFsdWVzPVlQKHRoaXMsdGhpcy5zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHModCx0aGlzLnByZXZQcm9wcyx0aGlzKSx0aGlzLnByZXZNb3Rpb25WYWx1ZXMpLHRoaXMuaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSYmdGhpcy5oYW5kbGVDaGlsZE1vdGlvblZhbHVlKCksdGhpcy5vblVwZGF0ZSYmdGhpcy5vblVwZGF0ZSh0aGlzKX1nZXRQcm9wcygpe3JldHVybiB0aGlzLnByb3BzfWdldFZhcmlhbnQodCl7cmV0dXJuIHRoaXMucHJvcHMudmFyaWFudHM/dGhpcy5wcm9wcy52YXJpYW50c1t0XTp2b2lkIDB9Z2V0RGVmYXVsdFRyYW5zaXRpb24oKXtyZXR1cm4gdGhpcy5wcm9wcy50cmFuc2l0aW9ufWdldFRyYW5zZm9ybVBhZ2VQb2ludCgpe3JldHVybiB0aGlzLnByb3BzLnRyYW5zZm9ybVBhZ2VQb2ludH1nZXRDbG9zZXN0VmFyaWFudE5vZGUoKXtyZXR1cm4gdGhpcy5pc1ZhcmlhbnROb2RlP3RoaXM6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCk6dm9pZCAwfWFkZFZhcmlhbnRDaGlsZCh0KXtjb25zdCBuPXRoaXMuZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCk7aWYobilyZXR1cm4gbi52YXJpYW50Q2hpbGRyZW4mJm4udmFyaWFudENoaWxkcmVuLmFkZCh0KSwoKT0+bi52YXJpYW50Q2hpbGRyZW4uZGVsZXRlKHQpfWFkZFZhbHVlKHQsbil7Y29uc3Qgcj10aGlzLnZhbHVlcy5nZXQodCk7biE9PXImJihyJiZ0aGlzLnJlbW92ZVZhbHVlKHQpLHRoaXMuYmluZFRvTW90aW9uVmFsdWUodCxuKSx0aGlzLnZhbHVlcy5zZXQodCxuKSx0aGlzLmxhdGVzdFZhbHVlc1t0XT1uLmdldCgpKX1yZW1vdmVWYWx1ZSh0KXt0aGlzLnZhbHVlcy5kZWxldGUodCk7Y29uc3Qgbj10aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5nZXQodCk7biYmKG4oKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5kZWxldGUodCkpLGRlbGV0ZSB0aGlzLmxhdGVzdFZhbHVlc1t0XSx0aGlzLnJlbW92ZVZhbHVlRnJvbVJlbmRlclN0YXRlKHQsdGhpcy5yZW5kZXJTdGF0ZSl9aGFzVmFsdWUodCl7cmV0dXJuIHRoaXMudmFsdWVzLmhhcyh0KX1nZXRWYWx1ZSh0LG4pe2lmKHRoaXMucHJvcHMudmFsdWVzJiZ0aGlzLnByb3BzLnZhbHVlc1t0XSlyZXR1cm4gdGhpcy5wcm9wcy52YWx1ZXNbdF07bGV0IHI9dGhpcy52YWx1ZXMuZ2V0KHQpO3JldHVybiByPT09dm9pZCAwJiZuIT09dm9pZCAwJiYocj1raShuPT09bnVsbD92b2lkIDA6bix7b3duZXI6dGhpc30pLHRoaXMuYWRkVmFsdWUodCxyKSkscn1yZWFkVmFsdWUodCxuKXt2YXIgcjtsZXQgYT10aGlzLmxhdGVzdFZhbHVlc1t0XSE9PXZvaWQgMHx8IXRoaXMuY3VycmVudD90aGlzLmxhdGVzdFZhbHVlc1t0XToocj10aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcyx0KSkhPT1udWxsJiZyIT09dm9pZCAwP3I6dGhpcy5yZWFkVmFsdWVGcm9tSW5zdGFuY2UodGhpcy5jdXJyZW50LHQsdGhpcy5vcHRpb25zKTtyZXR1cm4gYSE9bnVsbCYmKHR5cGVvZiBhPT0ic3RyaW5nIiYmKHpJKGEpfHxPSShhKSk/YT1wYXJzZUZsb2F0KGEpOiFXUChhKSYmem4udGVzdChuKSYmKGE9VUkodCxuKSksdGhpcy5zZXRCYXNlVGFyZ2V0KHQsR2UoYSk/YS5nZXQoKTphKSksR2UoYSk/YS5nZXQoKTphfXNldEJhc2VUYXJnZXQodCxuKXt0aGlzLmJhc2VUYXJnZXRbdF09bn1nZXRCYXNlVGFyZ2V0KHQpe3ZhciBuO2NvbnN0e2luaXRpYWw6cn09dGhpcy5wcm9wcztsZXQgYTtpZih0eXBlb2Ygcj09InN0cmluZyJ8fHR5cGVvZiByPT0ib2JqZWN0Iil7Y29uc3Qgbz1DaCh0aGlzLnByb3BzLHIsKG49dGhpcy5wcmVzZW5jZUNvbnRleHQpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5jdXN0b20pO28mJihhPW9bdF0pfWlmKHImJmEhPT12b2lkIDApcmV0dXJuIGE7Y29uc3QgaT10aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcyx0KTtyZXR1cm4gaSE9PXZvaWQgMCYmIUdlKGkpP2k6dGhpcy5pbml0aWFsVmFsdWVzW3RdIT09dm9pZCAwJiZhPT09dm9pZCAwP3ZvaWQgMDp0aGlzLmJhc2VUYXJnZXRbdF19b24odCxuKXtyZXR1cm4gdGhpcy5ldmVudHNbdF18fCh0aGlzLmV2ZW50c1t0XT1uZXcgVmgpLHRoaXMuZXZlbnRzW3RdLmFkZChuKX1ub3RpZnkodCwuLi5uKXt0aGlzLmV2ZW50c1t0XSYmdGhpcy5ldmVudHNbdF0ubm90aWZ5KC4uLm4pfX1jbGFzcyBFTiBleHRlbmRzIEtQe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLktleWZyYW1lUmVzb2x2ZXI9Vkl9c29ydEluc3RhbmNlTm9kZVBvc2l0aW9uKHQsbil7cmV0dXJuIHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24obikmMj8xOi0xfWdldEJhc2VUYXJnZXRGcm9tUHJvcHModCxuKXtyZXR1cm4gdC5zdHlsZT90LnN0eWxlW25dOnZvaWQgMH1yZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZSh0LHt2YXJzOm4sc3R5bGU6cn0pe2RlbGV0ZSBuW3RdLGRlbGV0ZSByW3RdfWhhbmRsZUNoaWxkTW90aW9uVmFsdWUoKXt0aGlzLmNoaWxkU3Vic2NyaXB0aW9uJiYodGhpcy5jaGlsZFN1YnNjcmlwdGlvbigpLGRlbGV0ZSB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uKTtjb25zdHtjaGlsZHJlbjp0fT10aGlzLnByb3BzO0dlKHQpJiYodGhpcy5jaGlsZFN1YnNjcmlwdGlvbj10Lm9uKCJjaGFuZ2UiLG49Pnt0aGlzLmN1cnJlbnQmJih0aGlzLmN1cnJlbnQudGV4dENvbnRlbnQ9YCR7bn1gKX0pKX19ZnVuY3Rpb24gWFAoZSl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpfWNsYXNzIFpQIGV4dGVuZHMgRU57Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0iaHRtbCIsdGhpcy5yZW5kZXJJbnN0YW5jZT1zSX1yZWFkVmFsdWVGcm9tSW5zdGFuY2UodCxuKXtpZihici5oYXMobikpe2NvbnN0IHI9WGgobik7cmV0dXJuIHImJnIuZGVmYXVsdHx8MH1lbHNle2NvbnN0IHI9WFAodCksYT0oYUkobik/ci5nZXRQcm9wZXJ0eVZhbHVlKG4pOnJbbl0pfHwwO3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/YS50cmltKCk6YX19bWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3godCx7dHJhbnNmb3JtUGFnZVBvaW50Om59KXtyZXR1cm4gbE4odCxuKX1idWlsZCh0LG4scil7RGgodCxuLHIudHJhbnNmb3JtVGVtcGxhdGUpfXNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyh0LG4scil7cmV0dXJuIFVoKHQsbixyKX19Y2xhc3MgUVAgZXh0ZW5kcyBFTntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPSJzdmciLHRoaXMuaXNTVkdUYWc9ITEsdGhpcy5tZWFzdXJlSW5zdGFuY2VWaWV3cG9ydEJveD1rZX1nZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHQsbil7cmV0dXJuIHRbbl19cmVhZFZhbHVlRnJvbUluc3RhbmNlKHQsbil7aWYoYnIuaGFzKG4pKXtjb25zdCByPVhoKG4pO3JldHVybiByJiZyLmRlZmF1bHR8fDB9cmV0dXJuIG49bEkuaGFzKG4pP246X2gobiksdC5nZXRBdHRyaWJ1dGUobil9c2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHQsbixyKXtyZXR1cm4gZEkodCxuLHIpfWJ1aWxkKHQsbixyKXtNaCh0LG4sdGhpcy5pc1NWR1RhZyxyLnRyYW5zZm9ybVRlbXBsYXRlKX1yZW5kZXJJbnN0YW5jZSh0LG4scixhKXt1SSh0LG4scixhKX1tb3VudCh0KXt0aGlzLmlzU1ZHVGFnPUZoKHQudGFnTmFtZSksc3VwZXIubW91bnQodCl9fWNvbnN0IEpQPShlLHQpPT5OaChlKT9uZXcgUVAodCk6bmV3IFpQKHQse2FsbG93UHJvamVjdGlvbjplIT09UC5GcmFnbWVudH0pLGVGPUFMKHsuLi5UTSwuLi5HUCwuLi5PUCwuLi5xUH0sSlApLE50PSRPKGVGKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgdEY9ZT0+ZS5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksU049KC4uLmUpPT5lLmZpbHRlcigodCxuLHIpPT4hIXQmJnIuaW5kZXhPZih0KT09PW4pLmpvaW4oIiAiKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovdmFyIG5GPXt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoyLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgckY9UC5mb3J3YXJkUmVmKCh7Y29sb3I6ZT0iY3VycmVudENvbG9yIixzaXplOnQ9MjQsc3Ryb2tlV2lkdGg6bj0yLGFic29sdXRlU3Ryb2tlV2lkdGg6cixjbGFzc05hbWU6YT0iIixjaGlsZHJlbjppLGljb25Ob2RlOm8sLi4uc30sbCk9PlAuY3JlYXRlRWxlbWVudCgic3ZnIix7cmVmOmwsLi4ubkYsd2lkdGg6dCxoZWlnaHQ6dCxzdHJva2U6ZSxzdHJva2VXaWR0aDpyP051bWJlcihuKSoyNC9OdW1iZXIodCk6bixjbGFzc05hbWU6U04oImx1Y2lkZSIsYSksLi4uc30sWy4uLm8ubWFwKChbdSxjXSk9PlAuY3JlYXRlRWxlbWVudCh1LGMpKSwuLi5BcnJheS5pc0FycmF5KGkpP2k6W2ldXSkpOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBjZT0oZSx0KT0+e2NvbnN0IG49UC5mb3J3YXJkUmVmKCh7Y2xhc3NOYW1lOnIsLi4uYX0saSk9PlAuY3JlYXRlRWxlbWVudChyRix7cmVmOmksaWNvbk5vZGU6dCxjbGFzc05hbWU6U04oYGx1Y2lkZS0ke3RGKGUpfWAsciksLi4uYX0pKTtyZXR1cm4gbi5kaXNwbGF5TmFtZT1gJHtlfWAsbn07LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGFGPWNlKCJBY3Rpdml0eSIsW1sicGF0aCIse2Q6Ik0yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyIixrZXk6IjE2OXpzZSJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBvcj1jZSgiQnJhaW4iLFtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoiLGtleToibDV4amEifV0sWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAxIDUuOTk3LjEyNSA0IDQgMCAwIDEgMi41MjYgNS43NyA0IDQgMCAwIDEtLjU1NiA2LjU4OEE0IDQgMCAxIDEgMTIgMThaIixrZXk6ImVwM2Y4ciJ9XSxbInBhdGgiLHtkOiJNMTUgMTNhNC41IDQuNSAwIDAgMS0zLTQgNC41IDQuNSAwIDAgMS0zIDQiLGtleToiMXA0YzRxIn1dLFsicGF0aCIse2Q6Ik0xNy41OTkgNi41YTMgMyAwIDAgMCAuMzk5LTEuMzc1IixrZXk6InRtZWlxdyJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVBMyAzIDAgMCAwIDYuNDAxIDYuNSIsa2V5OiIxMDVzcXkifV0sWyJwYXRoIix7ZDoiTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2IixrZXk6InFsM3lpbiJ9XSxbInBhdGgiLHtkOiJNMTkuOTM4IDEwLjVhNCA0IDAgMCAxIC41ODUuMzk2IixrZXk6IjFxZm9kZSJ9XSxbInBhdGgiLHtkOiJNNiAxOGE0IDQgMCAwIDEtMS45NjctLjUxNiIsa2V5OiIyZTRsb2oifV0sWyJwYXRoIix7ZDoiTTE5Ljk2NyAxNy40ODRBNCA0IDAgMCAxIDE4IDE4IixrZXk6IjE1OWV6NiJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBpRj1jZSgiQ2FsY3VsYXRvciIsW1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIiLGtleToiMW5iOTV2In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiI2Iix5MjoiNiIsa2V5OiJ4NG53bDAifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTYiLHkxOiIxNCIseTI6IjE4IixrZXk6IndqeWUzciJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIixrZXk6IjFtOTR3eiJ9XSxbInBhdGgiLHtkOiJNMTIgMTBoLjAxIixrZXk6IjFucmFyYyJ9XSxbInBhdGgiLHtkOiJNOCAxMGguMDEiLGtleToiMTljbHQ4In1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEiLGtleToiMWV0aWxpIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSIsa2V5OiI2NDIzYmgifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSIsa2V5OiJtaHlndnUifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIixrZXk6ImxycDM1dCJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBvRj1jZSgiQ2hlY2siLFtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUiLGtleToiMWdtZjJjIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IHNGPWNlKCJDaGV2cm9uTGVmdCIsW1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02IixrZXk6IjF3bmZnMyJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBsRj1jZSgiQ2xvY2siLFtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCIsa2V5OiIxbWdsYXkifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTIgNiAxMiAxMiAxNiAxNCIsa2V5OiI2OGVzZ3YifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgUmk9Y2UoIkNvZGVYbWwiLFtbInBhdGgiLHtkOiJtMTggMTYgNC00LTQtNCIsa2V5OiIxaW5icXAifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0IixrZXk6IjE1enJnciJ9XSxbInBhdGgiLHtkOiJtMTQuNSA0LTUgMTYiLGtleToiZTdvaXJtIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IHVGPWNlKCJDb3JuZXJEb3duTGVmdCIsW1sicG9seWxpbmUiLHtwb2ludHM6IjkgMTAgNCAxNSA5IDIwIixrZXk6InIzanBydiJ9XSxbInBhdGgiLHtkOiJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIsa2V5OiI2bzViN2wifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgY2c9Y2UoIkNwdSIsW1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiNCIscng6IjIiLGtleToiMTRsN3U3In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjkiLHJ4OiIxIixrZXk6IjVhbGp2NCJ9XSxbInBhdGgiLHtkOiJNMTUgMnYyIixrZXk6IjEzbDQyciJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2MiIsa2V5OiIxNW1rem0ifV0sWyJwYXRoIix7ZDoiTTIgMTVoMiIsa2V5OiIxZ3hkNWwifV0sWyJwYXRoIix7ZDoiTTIgOWgyIixrZXk6IjFiYnhrcCJ9XSxbInBhdGgiLHtkOiJNMjAgMTVoMiIsa2V5OiIxOWU2eTgifV0sWyJwYXRoIix7ZDoiTTIwIDloMiIsa2V5OiIxOXR6cTcifV0sWyJwYXRoIix7ZDoiTTkgMnYyIixrZXk6IjE2NW8ybyJ9XSxbInBhdGgiLHtkOiJNOSAyMHYyIixrZXk6ImkyYnFvOCJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBjRj1jZSgiRmlsZVRleHQiLFtbInBhdGgiLHtkOiJNMTUgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdaIixrZXk6IjFycWZ6NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNCIsa2V5OiJ0bnFybGIifV0sWyJwYXRoIix7ZDoiTTEwIDlIOCIsa2V5OiJiMW1ybHIifV0sWyJwYXRoIix7ZDoiTTE2IDEzSDgiLGtleToidDRlMDAyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0g4IixrZXk6InoxdWgzYSJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBnRT1jZSgiR2xvYmUiLFtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCIsa2V5OiIxbWdsYXkifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAiLGtleToiMTNvMXpsIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIixrZXk6IjlpNHB1NCJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCBkRj1jZSgiTGFuZ3VhZ2VzIixbWyJwYXRoIix7ZDoibTUgOCA2IDYiLGtleToiMXd1NWh2In1dLFsicGF0aCIse2Q6Im00IDE0IDYtNiAyLTMiLGtleToiMWsxZzhkIn1dLFsicGF0aCIse2Q6Ik0yIDVoMTIiLGtleToib3IxNzdmIn1dLFsicGF0aCIse2Q6Ik03IDJoMSIsa2V5OiIxdDJqc3gifV0sWyJwYXRoIix7ZDoibTIyIDIyLTUtMTAtNSAxMCIsa2V5OiJkb243bmUifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYiLGtleToiMW04azZyIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IHBGPWNlKCJMb2FkZXJDaXJjbGUiLFtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiLGtleToiMTN6YWxkIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGZGPWNlKCJNZW51IixbWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIiLGtleToiMWUwYTlpIn1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiI2Iix5MjoiNiIsa2V5OiIxb3dvYjMifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjE4Iix5MjoiMTgiLGtleToieWs1emoxIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGhFPWNlKCJNZXNzYWdlU3F1YXJlIixbWyJwYXRoIix7ZDoiTTIxIDE1YTIgMiAwIDAgMS0yIDJIN2wtNCA0VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyeiIsa2V5OiIxbGllbHoifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3Qgd049Y2UoIlBsdXMiLFtbInBhdGgiLHtkOiJNNSAxMmgxNCIsa2V5OiIxYXlzMGgifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQiLGtleToiczY5OWxlIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IFROPWNlKCJTZWFyY2giLFtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4IixrZXk6IjRlajk3dSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyIsa2V5OiIxcWllM3EifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgbUY9Y2UoIlNlbmQiLFtbInBhdGgiLHtkOiJtMjIgMi03IDIwLTQtOS05LTRaIixrZXk6IjFxM3ZnZyJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMSAxMyIsa2V5OiJuemJxZWYifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgZ0Y9Y2UoIlRhZyIsW1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoiLGtleToidmt0c2QwIn1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciIsa2V5OiJrcXY5NDQifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3Qga049Y2UoIlRyYXNoMiIsW1sicGF0aCIse2Q6Ik0zIDZoMTgiLGtleToiZDB3bTBqIn1dLFsicGF0aCIse2Q6Ik0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYiLGtleToiNGFscnQ0In1dLFsicGF0aCIse2Q6Ik04IDZWNGMwLTEgMS0yIDItMmg0YzEgMCAyIDEgMiAydjIiLGtleToidjA3czBlIn1dLFsibGluZSIse3gxOiIxMCIseDI6IjEwIix5MToiMTEiLHkyOiIxNyIsa2V5OiIxdXVmcjUifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiMTQiLHkxOiIxMSIseTI6IjE3IixrZXk6Inh0eGtkIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGhGPWNlKCJXYW5kU3BhcmtsZXMiLFtbInBhdGgiLHtkOiJtMjEuNjQgMy42NC0xLjI4LTEuMjhhMS4yMSAxLjIxIDAgMCAwLTEuNzIgMEwyLjM2IDE4LjY0YTEuMjEgMS4yMSAwIDAgMCAwIDEuNzJsMS4yOCAxLjI4YTEuMiAxLjIgMCAwIDAgMS43MiAwTDIxLjY0IDUuMzZhMS4yIDEuMiAwIDAgMCAwLTEuNzIiLGtleToidWw3NG82In1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyIsa2V5OiIxcjVuNDIifV0sWyJwYXRoIix7ZDoiTTUgNnY0IixrZXk6ImlsYjhiYSJ9XSxbInBhdGgiLHtkOiJNMTkgMTR2NCIsa2V5OiJibGhwdWcifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiIsa2V5OiI3dTBxZGMifV0sWyJwYXRoIix7ZDoiTTcgOEgzIixrZXk6InpmYjZ5ciJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTQiLGtleToiMWNubW94In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkiLGtleToiMW9icDd1In1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IGJGPWNlKCJXaWZpT2ZmIixbWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSIsa2V5OiJ6ZWtlaTkifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCIsa2V5OiIxYnljZmYifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSIsa2V5OiIxZGwxd2YifV0sWyJwYXRoIix7ZDoiTTE5IDEyLjg1OWExMCAxMCAwIDAgMC0yLjAwNy0xLjUyMyIsa2V5OiI0azIza24ifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSA0LjE3Ny0yLjY0MyIsa2V5OiIxZ3JoanAifV0sWyJwYXRoIix7ZDoiTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0IixrZXk6InozandieSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIixrZXk6IjFvb2V3eSJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCB5Rj1jZSgiV2lmaSIsW1sicGF0aCIse2Q6Ik0xMiAyMGguMDEiLGtleToiemVrZWk5In1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCIsa2V5OiJkbnByMnoifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAiLGtleToiMXgxZTZjIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiLGtleToiMWJ5Y2ZmIn1dXSk7LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40MDAuMCAtIElTQwogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL2NvbnN0IEFOPWNlKCJXcmVuY2giLFtbInBhdGgiLHtkOiJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuNzctMy43N2E2IDYgMCAwIDEtNy45NCA3Ljk0bC02LjkxIDYuOTFhMi4xMiAyLjEyIDAgMCAxLTMtM2w2LjkxLTYuOTFhNiA2IDAgMCAxIDcuOTQtNy45NGwtMy43NiAzLjc2eiIsa2V5OiJjYnJqaGkifV1dKTsvKioKICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQwMC4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovY29uc3QgdkY9Y2UoIlgiLFtbInBhdGgiLHtkOiJNMTggNiA2IDE4IixrZXk6IjFibDVmOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIixrZXk6ImQ4Yms2diJ9XV0pOy8qKgogKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDAwLjAgLSBJU0MKICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi9jb25zdCAkcz1jZSgiWmFwIixbWyJwYXRoIix7ZDoiTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoiLGtleToiMXhxMmRiIn1dXSksRUY9e30sYkU9ZT0+e2xldCB0O2NvbnN0IG49bmV3IFNldCxyPShjLGQpPT57Y29uc3QgcD10eXBlb2YgYz09ImZ1bmN0aW9uIj9jKHQpOmM7aWYoIU9iamVjdC5pcyhwLHQpKXtjb25zdCBmPXQ7dD1kPz8odHlwZW9mIHAhPSJvYmplY3QifHxwPT09bnVsbCk/cDpPYmplY3QuYXNzaWduKHt9LHQscCksbi5mb3JFYWNoKHk9PnkodCxmKSl9fSxhPSgpPT50LGw9e3NldFN0YXRlOnIsZ2V0U3RhdGU6YSxnZXRJbml0aWFsU3RhdGU6KCk9PnUsc3Vic2NyaWJlOmM9PihuLmFkZChjKSwoKT0+bi5kZWxldGUoYykpLGRlc3Ryb3k6KCk9PnsoRUY/InByb2R1Y3Rpb24iOnZvaWQgMCkhPT0icHJvZHVjdGlvbiImJmNvbnNvbGUud2FybigiW0RFUFJFQ0FURURdIFRoZSBgZGVzdHJveWAgbWV0aG9kIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gSW5zdGVhZCB1c2UgdW5zdWJzY3JpYmUgZnVuY3Rpb24gcmV0dXJuZWQgYnkgc3Vic2NyaWJlLiBFdmVyeXRoaW5nIHdpbGwgYmUgZ2FyYmFnZS1jb2xsZWN0ZWQgaWYgc3RvcmUgaXMgZ2FyYmFnZS1jb2xsZWN0ZWQuIiksbi5jbGVhcigpfX0sdT10PWUocixhLGwpO3JldHVybiBsfSxTRj1lPT5lP2JFKGUpOmJFO3ZhciB4Tj17ZXhwb3J0czp7fX0sUk49e30sX049e2V4cG9ydHM6e319LElOPXt9Oy8qKgogKiBAbGljZW5zZSBSZWFjdAogKiB1c2Utc3luYy1leHRlcm5hbC1zdG9yZS1zaGltLnByb2R1Y3Rpb24uanMKICoKICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovdmFyIGxhPVA7ZnVuY3Rpb24gd0YoZSx0KXtyZXR1cm4gZT09PXQmJihlIT09MHx8MS9lPT09MS90KXx8ZSE9PWUmJnQhPT10fXZhciBURj10eXBlb2YgT2JqZWN0LmlzPT0iZnVuY3Rpb24iP09iamVjdC5pczp3RixrRj1sYS51c2VTdGF0ZSxBRj1sYS51c2VFZmZlY3QseEY9bGEudXNlTGF5b3V0RWZmZWN0LFJGPWxhLnVzZURlYnVnVmFsdWU7ZnVuY3Rpb24gX0YoZSx0KXt2YXIgbj10KCkscj1rRih7aW5zdDp7dmFsdWU6bixnZXRTbmFwc2hvdDp0fX0pLGE9clswXS5pbnN0LGk9clsxXTtyZXR1cm4geEYoZnVuY3Rpb24oKXthLnZhbHVlPW4sYS5nZXRTbmFwc2hvdD10LEZsKGEpJiZpKHtpbnN0OmF9KX0sW2Usbix0XSksQUYoZnVuY3Rpb24oKXtyZXR1cm4gRmwoYSkmJmkoe2luc3Q6YX0pLGUoZnVuY3Rpb24oKXtGbChhKSYmaSh7aW5zdDphfSl9KX0sW2VdKSxSRihuKSxufWZ1bmN0aW9uIEZsKGUpe3ZhciB0PWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgbj10KCk7cmV0dXJuIVRGKGUsbil9Y2F0Y2h7cmV0dXJuITB9fWZ1bmN0aW9uIElGKGUsdCl7cmV0dXJuIHQoKX12YXIgTkY9dHlwZW9mIHdpbmRvdz4idSJ8fHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQ+InUifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ+InUiP0lGOl9GO0lOLnVzZVN5bmNFeHRlcm5hbFN0b3JlPWxhLnVzZVN5bmNFeHRlcm5hbFN0b3JlIT09dm9pZCAwP2xhLnVzZVN5bmNFeHRlcm5hbFN0b3JlOk5GO19OLmV4cG9ydHM9SU47dmFyIENGPV9OLmV4cG9ydHM7LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHVzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXNoaW0vd2l0aC1zZWxlY3Rvci5wcm9kdWN0aW9uLmpzCiAqCiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqL3ZhciB6cz1QLE9GPUNGO2Z1bmN0aW9uIExGKGUsdCl7cmV0dXJuIGU9PT10JiYoZSE9PTB8fDEvZT09PTEvdCl8fGUhPT1lJiZ0IT09dH12YXIgREY9dHlwZW9mIE9iamVjdC5pcz09ImZ1bmN0aW9uIj9PYmplY3QuaXM6TEYsTUY9T0YudXNlU3luY0V4dGVybmFsU3RvcmUsUEY9enMudXNlUmVmLEZGPXpzLnVzZUVmZmVjdCxVRj16cy51c2VNZW1vLEJGPXpzLnVzZURlYnVnVmFsdWU7Uk4udXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3I9ZnVuY3Rpb24oZSx0LG4scixhKXt2YXIgaT1QRihudWxsKTtpZihpLmN1cnJlbnQ9PT1udWxsKXt2YXIgbz17aGFzVmFsdWU6ITEsdmFsdWU6bnVsbH07aS5jdXJyZW50PW99ZWxzZSBvPWkuY3VycmVudDtpPVVGKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbChmKXtpZighdSl7aWYodT0hMCxjPWYsZj1yKGYpLGEhPT12b2lkIDAmJm8uaGFzVmFsdWUpe3ZhciB5PW8udmFsdWU7aWYoYSh5LGYpKXJldHVybiBkPXl9cmV0dXJuIGQ9Zn1pZih5PWQsREYoYyxmKSlyZXR1cm4geTt2YXIgYj1yKGYpO3JldHVybiBhIT09dm9pZCAwJiZhKHksYik/KGM9Zix5KTooYz1mLGQ9Yil9dmFyIHU9ITEsYyxkLHA9bj09PXZvaWQgMD9udWxsOm47cmV0dXJuW2Z1bmN0aW9uKCl7cmV0dXJuIGwodCgpKX0scD09PW51bGw/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIGwocCgpKX1dfSxbdCxuLHIsYV0pO3ZhciBzPU1GKGUsaVswXSxpWzFdKTtyZXR1cm4gRkYoZnVuY3Rpb24oKXtvLmhhc1ZhbHVlPSEwLG8udmFsdWU9c30sW3NdKSxCRihzKSxzfTt4Ti5leHBvcnRzPVJOO3ZhciAkRj14Ti5leHBvcnRzO2NvbnN0IHpGPU5pKCRGKSxOTj17fSx7dXNlRGVidWdWYWx1ZTpqRn09WXQse3VzZVN5bmNFeHRlcm5hbFN0b3JlV2l0aFNlbGVjdG9yOkdGfT16RjtsZXQgeUU9ITE7Y29uc3QgcUY9ZT0+ZTtmdW5jdGlvbiBWRihlLHQ9cUYsbil7KE5OPyJwcm9kdWN0aW9uIjp2b2lkIDApIT09InByb2R1Y3Rpb24iJiZuJiYheUUmJihjb25zb2xlLndhcm4oIltERVBSRUNBVEVEXSBVc2UgYGNyZWF0ZVdpdGhFcXVhbGl0eUZuYCBpbnN0ZWFkIG9mIGBjcmVhdGVgIG9yIHVzZSBgdXNlU3RvcmVXaXRoRXF1YWxpdHlGbmAgaW5zdGVhZCBvZiBgdXNlU3RvcmVgLiBUaGV5IGNhbiBiZSBpbXBvcnRlZCBmcm9tICd6dXN0YW5kL3RyYWRpdGlvbmFsJy4gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy96dXN0YW5kL2Rpc2N1c3Npb25zLzE5MzciKSx5RT0hMCk7Y29uc3Qgcj1HRihlLnN1YnNjcmliZSxlLmdldFN0YXRlLGUuZ2V0U2VydmVyU3RhdGV8fGUuZ2V0SW5pdGlhbFN0YXRlLHQsbik7cmV0dXJuIGpGKHIpLHJ9Y29uc3QgdkU9ZT0+eyhOTj8icHJvZHVjdGlvbiI6dm9pZCAwKSE9PSJwcm9kdWN0aW9uIiYmdHlwZW9mIGUhPSJmdW5jdGlvbiImJmNvbnNvbGUud2FybigiW0RFUFJFQ0FURURdIFBhc3NpbmcgYSB2YW5pbGxhIHN0b3JlIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gSW5zdGVhZCB1c2UgYGltcG9ydCB7IHVzZVN0b3JlIH0gZnJvbSAnenVzdGFuZCdgLiIpO2NvbnN0IHQ9dHlwZW9mIGU9PSJmdW5jdGlvbiI/U0YoZSk6ZSxuPShyLGEpPT5WRih0LHIsYSk7cmV0dXJuIE9iamVjdC5hc3NpZ24obix0KSxufSxIRj1lPT5lP3ZFKGUpOnZFLCRpPUhGKChlLHQpPT4oe3Nlc3Npb25zOltdLGFjdGl2ZVNlc3Npb25JZDpudWxsLGFjdGl2ZVNlc3Npb246bnVsbCxzaWRlYmFyT3BlbjohMCxhY3RpdmVQYW5lbDoiY2hhdCIsaXNUaGlua2luZzohMSxjb25uZWN0aW9uU3RhdHVzOiJjb25uZWN0aW5nIixtZW1vcmllczpbXSxza2lsbHM6W10sc2V0U2Vzc2lvbnM6bj0+ZSh7c2Vzc2lvbnM6bn0pLHNldEFjdGl2ZVNlc3Npb246bj0+ZSh7YWN0aXZlU2Vzc2lvbjpuLGFjdGl2ZVNlc3Npb25JZDoobj09bnVsbD92b2lkIDA6bi5pZCk/P251bGx9KSxzZXRBY3RpdmVTZXNzaW9uSWQ6bj0+e2NvbnN0e3Nlc3Npb25zOnJ9PXQoKSxhPXIuZmluZChpPT5pLmlkPT09bik/P251bGw7ZSh7YWN0aXZlU2Vzc2lvbklkOm4sYWN0aXZlU2Vzc2lvbjphfSl9LGFkZFNlc3Npb246bj0+ZShyPT4oe3Nlc3Npb25zOltuLC4uLnIuc2Vzc2lvbnNdLGFjdGl2ZVNlc3Npb246bixhY3RpdmVTZXNzaW9uSWQ6bi5pZH0pKSxyZW1vdmVTZXNzaW9uOm49PmUocj0+e2NvbnN0IGE9ci5zZXNzaW9ucy5maWx0ZXIobz0+by5pZCE9PW4pLGk9ci5hY3RpdmVTZXNzaW9uSWQ9PT1uP2FbMF0/P251bGw6ci5hY3RpdmVTZXNzaW9uO3JldHVybntzZXNzaW9uczphLGFjdGl2ZVNlc3Npb246aSxhY3RpdmVTZXNzaW9uSWQ6KGk9PW51bGw/dm9pZCAwOmkuaWQpPz9udWxsfX0pLHVwZGF0ZVNlc3Npb246bj0+ZShyPT4oe3Nlc3Npb25zOnIuc2Vzc2lvbnMubWFwKGE9PmEuaWQ9PT1uLmlkP246YSksYWN0aXZlU2Vzc2lvbjpyLmFjdGl2ZVNlc3Npb25JZD09PW4uaWQ/bjpyLmFjdGl2ZVNlc3Npb259KSksYWRkTWVzc2FnZToobixyKT0+ZShhPT57aWYoIWEuYWN0aXZlU2Vzc2lvbnx8YS5hY3RpdmVTZXNzaW9uLmlkIT09bilyZXR1cm4gYTtjb25zdCBpPVsuLi5hLmFjdGl2ZVNlc3Npb24ubWVzc2FnZXM/P1tdLHJdLG89ey4uLmEuYWN0aXZlU2Vzc2lvbixtZXNzYWdlczppfTtyZXR1cm57YWN0aXZlU2Vzc2lvbjpvLHNlc3Npb25zOmEuc2Vzc2lvbnMubWFwKHM9PnMuaWQ9PT1uP286cyl9fSksc2V0U2lkZWJhck9wZW46bj0+ZSh7c2lkZWJhck9wZW46bn0pLHNldEFjdGl2ZVBhbmVsOm49PmUoe2FjdGl2ZVBhbmVsOm59KSxzZXRJc1RoaW5raW5nOm49PmUoe2lzVGhpbmtpbmc6bn0pLHNldENvbm5lY3Rpb25TdGF0dXM6bj0+ZSh7Y29ubmVjdGlvblN0YXR1czpufSksc2V0TWVtb3JpZXM6bj0+ZSh7bWVtb3JpZXM6bn0pLHNldFNraWxsczpuPT5lKHtza2lsbHM6bn0pLHJlbW92ZU1lbW9yeTpuPT5lKHI9Pih7bWVtb3JpZXM6ci5tZW1vcmllcy5maWx0ZXIoYT0+YS5rZXkhPT1uKX0pKX0pKSxXRj0iaHR0cHM6Ly9vcGVuY2xhdy13b3JrZXIubW9ubW9uYm9sYm9sODUud29ya2Vycy5kZXYvYXBpIjthc3luYyBmdW5jdGlvbiB3dChlLHQpe2NvbnN0IG49YXdhaXQgZmV0Y2goYCR7V0Z9JHtlfWAse2hlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwuLi50PT1udWxsP3ZvaWQgMDp0LmhlYWRlcnN9LC4uLnR9KTtpZighbi5vayl7Y29uc3Qgcj1hd2FpdCBuLmpzb24oKS5jYXRjaCgoKT0+KHtlcnJvcjoiUmVxdWVzdCBmYWlsZWQifSkpO3Rocm93IG5ldyBFcnJvcihyLmVycm9yPz9gSFRUUCAke24uc3RhdHVzfWApfXJldHVybiBuLmpzb24oKX1jb25zdCBudD17aGVhbHRoOigpPT53dCgiL2hlYWx0aCIpLHNlc3Npb25zOntsaXN0OigpPT53dCgiL3Nlc3Npb25zIiksZ2V0OmU9Pnd0KGAvc2Vzc2lvbnMvJHtlfWApLGNyZWF0ZTooZSx0KT0+d3QoIi9zZXNzaW9ucyIse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7bmFtZTplLG1vZGVsOnR9KX0pLGRlbGV0ZTplPT53dChgL3Nlc3Npb25zLyR7ZX1gLHttZXRob2Q6IkRFTEVURSJ9KSx1cGRhdGU6KGUsdCk9Pnd0KGAvc2Vzc2lvbnMvJHtlfWAse21ldGhvZDoiUFVUIixib2R5OkpTT04uc3RyaW5naWZ5KHQpfSl9LGNoYXQ6KGUsdCxuKT0+d3QoIi9jaGF0Iix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtzZXNzaW9uSWQ6ZSxtZXNzYWdlOnQsbW9kZWw6bn0pfSksbWVtb3J5OntsaXN0OigpPT53dCgiL21lbW9yeSIpLHNhdmU6KGUsdCxuKT0+d3QoIi9tZW1vcnkiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2tleTplLHZhbHVlOnQsdGFnczpufSl9KSxkZWxldGU6ZT0+d3QoYC9tZW1vcnkvJHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCx7bWV0aG9kOiJERUxFVEUifSl9LHNraWxsczp7bGlzdDooKT0+d3QoIi9za2lsbHMiKX0sbW9kZWxzOntsaXN0OigpPT53dCgiL21vZGVscyIpfX07ZnVuY3Rpb24gTWUoZSl7Y29uc3QgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgZT09Im9iamVjdCImJnQ9PT0iW29iamVjdCBEYXRlXSI/bmV3IGUuY29uc3RydWN0b3IoK2UpOnR5cGVvZiBlPT0ibnVtYmVyInx8dD09PSJbb2JqZWN0IE51bWJlcl0ifHx0eXBlb2YgZT09InN0cmluZyJ8fHQ9PT0iW29iamVjdCBTdHJpbmddIj9uZXcgRGF0ZShlKTpuZXcgRGF0ZShOYU4pfWZ1bmN0aW9uIFlGKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlP25ldyBlLmNvbnN0cnVjdG9yKHQpOm5ldyBEYXRlKHQpfWNvbnN0IGZvPTQzMjAwLEVFPTE0NDA7bGV0IEtGPXt9O2Z1bmN0aW9uIFhGKCl7cmV0dXJuIEtGfWZ1bmN0aW9uIFNFKGUpe2NvbnN0IHQ9TWUoZSksbj1uZXcgRGF0ZShEYXRlLlVUQyh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpLHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSx0LmdldE1pbGxpc2Vjb25kcygpKSk7cmV0dXJuIG4uc2V0VVRDRnVsbFllYXIodC5nZXRGdWxsWWVhcigpKSwrZS0rbn1mdW5jdGlvbiBEbyhlLHQpe2NvbnN0IG49TWUoZSkscj1NZSh0KSxhPW4uZ2V0VGltZSgpLXIuZ2V0VGltZSgpO3JldHVybiBhPDA/LTE6YT4wPzE6YX1mdW5jdGlvbiBaRihlKXtyZXR1cm4gWUYoZSxEYXRlLm5vdygpKX1mdW5jdGlvbiBRRihlLHQpe2NvbnN0IG49TWUoZSkscj1NZSh0KSxhPW4uZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCksaT1uLmdldE1vbnRoKCktci5nZXRNb250aCgpO3JldHVybiBhKjEyK2l9ZnVuY3Rpb24gSkYoZSl7cmV0dXJuIHQ9Pntjb25zdCByPShlP01hdGhbZV06TWF0aC50cnVuYykodCk7cmV0dXJuIHI9PT0wPzA6cn19ZnVuY3Rpb24gZTIoZSx0KXtyZXR1cm4rTWUoZSktK01lKHQpfWZ1bmN0aW9uIHQyKGUpe2NvbnN0IHQ9TWUoZSk7cmV0dXJuIHQuc2V0SG91cnMoMjMsNTksNTksOTk5KSx0fWZ1bmN0aW9uIG4yKGUpe2NvbnN0IHQ9TWUoZSksbj10LmdldE1vbnRoKCk7cmV0dXJuIHQuc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpLG4rMSwwKSx0LnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdH1mdW5jdGlvbiByMihlKXtjb25zdCB0PU1lKGUpO3JldHVybit0Mih0KT09K24yKHQpfWZ1bmN0aW9uIGEyKGUsdCl7Y29uc3Qgbj1NZShlKSxyPU1lKHQpLGE9RG8obixyKSxpPU1hdGguYWJzKFFGKG4scikpO2xldCBvO2lmKGk8MSlvPTA7ZWxzZXtuLmdldE1vbnRoKCk9PT0xJiZuLmdldERhdGUoKT4yNyYmbi5zZXREYXRlKDMwKSxuLnNldE1vbnRoKG4uZ2V0TW9udGgoKS1hKmkpO2xldCBzPURvKG4scik9PT0tYTtyMihNZShlKSkmJmk9PT0xJiZEbyhlLHIpPT09MSYmKHM9ITEpLG89YSooaS1OdW1iZXIocykpfXJldHVybiBvPT09MD8wOm99ZnVuY3Rpb24gaTIoZSx0LG4pe2NvbnN0IHI9ZTIoZSx0KS8xZTM7cmV0dXJuIEpGKG49PW51bGw/dm9pZCAwOm4ucm91bmRpbmdNZXRob2QpKHIpfWNvbnN0IG8yPXtsZXNzVGhhblhTZWNvbmRzOntvbmU6Imxlc3MgdGhhbiBhIHNlY29uZCIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gc2Vjb25kcyJ9LHhTZWNvbmRzOntvbmU6IjEgc2Vjb25kIixvdGhlcjoie3tjb3VudH19IHNlY29uZHMifSxoYWxmQU1pbnV0ZToiaGFsZiBhIG1pbnV0ZSIsbGVzc1RoYW5YTWludXRlczp7b25lOiJsZXNzIHRoYW4gYSBtaW51dGUiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IG1pbnV0ZXMifSx4TWludXRlczp7b25lOiIxIG1pbnV0ZSIsb3RoZXI6Int7Y291bnR9fSBtaW51dGVzIn0sYWJvdXRYSG91cnM6e29uZToiYWJvdXQgMSBob3VyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IGhvdXJzIn0seEhvdXJzOntvbmU6IjEgaG91ciIsb3RoZXI6Int7Y291bnR9fSBob3VycyJ9LHhEYXlzOntvbmU6IjEgZGF5IixvdGhlcjoie3tjb3VudH19IGRheXMifSxhYm91dFhXZWVrczp7b25lOiJhYm91dCAxIHdlZWsiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gd2Vla3MifSx4V2Vla3M6e29uZToiMSB3ZWVrIixvdGhlcjoie3tjb3VudH19IHdlZWtzIn0sYWJvdXRYTW9udGhzOntvbmU6ImFib3V0IDEgbW9udGgiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gbW9udGhzIn0seE1vbnRoczp7b25lOiIxIG1vbnRoIixvdGhlcjoie3tjb3VudH19IG1vbnRocyJ9LGFib3V0WFllYXJzOntvbmU6ImFib3V0IDEgeWVhciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB5ZWFycyJ9LHhZZWFyczp7b25lOiIxIHllYXIiLG90aGVyOiJ7e2NvdW50fX0geWVhcnMifSxvdmVyWFllYXJzOntvbmU6Im92ZXIgMSB5ZWFyIixvdGhlcjoib3ZlciB7e2NvdW50fX0geWVhcnMifSxhbG1vc3RYWWVhcnM6e29uZToiYWxtb3N0IDEgeWVhciIsb3RoZXI6ImFsbW9zdCB7e2NvdW50fX0geWVhcnMifX0sczI9KGUsdCxuKT0+e2xldCByO2NvbnN0IGE9bzJbZV07cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIj9yPWE6dD09PTE/cj1hLm9uZTpyPWEub3RoZXIucmVwbGFjZSgie3tjb3VudH19Iix0LnRvU3RyaW5nKCkpLG4hPW51bGwmJm4uYWRkU3VmZml4P24uY29tcGFyaXNvbiYmbi5jb21wYXJpc29uPjA/ImluICIrcjpyKyIgYWdvIjpyfTtmdW5jdGlvbiBVbChlKXtyZXR1cm4odD17fSk9Pntjb25zdCBuPXQud2lkdGg/U3RyaW5nKHQud2lkdGgpOmUuZGVmYXVsdFdpZHRoO3JldHVybiBlLmZvcm1hdHNbbl18fGUuZm9ybWF0c1tlLmRlZmF1bHRXaWR0aF19fWNvbnN0IGwyPXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LHUyPXtmdWxsOiJoOm1tOnNzIGEgenp6eiIsbG9uZzoiaDptbTpzcyBhIHoiLG1lZGl1bToiaDptbTpzcyBhIixzaG9ydDoiaDptbSBhIn0sYzI9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sZDI9e2RhdGU6VWwoe2Zvcm1hdHM6bDIsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLHRpbWU6VWwoe2Zvcm1hdHM6dTIsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOlVsKHtmb3JtYXRzOmMyLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KX0scDI9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LGYyPShlLHQsbixyKT0+cDJbZV07ZnVuY3Rpb24gSWEoZSl7cmV0dXJuKHQsbik9Pntjb25zdCByPW4hPW51bGwmJm4uY29udGV4dD9TdHJpbmcobi5jb250ZXh0KToic3RhbmRhbG9uZSI7bGV0IGE7aWYocj09PSJmb3JtYXR0aW5nIiYmZS5mb3JtYXR0aW5nVmFsdWVzKXtjb25zdCBvPWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgscz1uIT1udWxsJiZuLndpZHRoP1N0cmluZyhuLndpZHRoKTpvO2E9ZS5mb3JtYXR0aW5nVmFsdWVzW3NdfHxlLmZvcm1hdHRpbmdWYWx1ZXNbb119ZWxzZXtjb25zdCBvPWUuZGVmYXVsdFdpZHRoLHM9biE9bnVsbCYmbi53aWR0aD9TdHJpbmcobi53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7YT1lLnZhbHVlc1tzXXx8ZS52YWx1ZXNbb119Y29uc3QgaT1lLmFyZ3VtZW50Q2FsbGJhY2s/ZS5hcmd1bWVudENhbGxiYWNrKHQpOnQ7cmV0dXJuIGFbaV19fWNvbnN0IG0yPXtuYXJyb3c6WyJCIiwiQSJdLGFiYnJldmlhdGVkOlsiQkMiLCJBRCJdLHdpZGU6WyJCZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21pbmkiXX0sZzI9e25hcnJvdzpbIjEiLCIyIiwiMyIsIjQiXSxhYmJyZXZpYXRlZDpbIlExIiwiUTIiLCJRMyIsIlE0Il0sd2lkZTpbIjFzdCBxdWFydGVyIiwiMm5kIHF1YXJ0ZXIiLCIzcmQgcXVhcnRlciIsIjR0aCBxdWFydGVyIl19LGgyPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxiMj17bmFycm93OlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLHNob3J0OlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxhYmJyZXZpYXRlZDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLHdpZGU6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSx5Mj17bmFycm93OnthbToiYSIscG06InAiLG1pZG5pZ2h0OiJtaSIsbm9vbjoibiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LGFiYnJldmlhdGVkOnthbToiQU0iLHBtOiJQTSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sd2lkZTp7YW06ImEubS4iLHBtOiJwLm0uIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifX0sdjI9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LEUyPShlLHQpPT57Y29uc3Qgbj1OdW1iZXIoZSkscj1uJTEwMDtpZihyPjIwfHxyPDEwKXN3aXRjaChyJTEwKXtjYXNlIDE6cmV0dXJuIG4rInN0IjtjYXNlIDI6cmV0dXJuIG4rIm5kIjtjYXNlIDM6cmV0dXJuIG4rInJkIn1yZXR1cm4gbisidGgifSxTMj17b3JkaW5hbE51bWJlcjpFMixlcmE6SWEoe3ZhbHVlczptMixkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjpJYSh7dmFsdWVzOmcyLGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazplPT5lLTF9KSxtb250aDpJYSh7dmFsdWVzOmgyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6SWEoe3ZhbHVlczpiMixkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5UGVyaW9kOklhKHt2YWx1ZXM6eTIsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOnYyLGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9O2Z1bmN0aW9uIE5hKGUpe3JldHVybih0LG49e30pPT57Y29uc3Qgcj1uLndpZHRoLGE9ciYmZS5tYXRjaFBhdHRlcm5zW3JdfHxlLm1hdGNoUGF0dGVybnNbZS5kZWZhdWx0TWF0Y2hXaWR0aF0saT10Lm1hdGNoKGEpO2lmKCFpKXJldHVybiBudWxsO2NvbnN0IG89aVswXSxzPXImJmUucGFyc2VQYXR0ZXJuc1tyXXx8ZS5wYXJzZVBhdHRlcm5zW2UuZGVmYXVsdFBhcnNlV2lkdGhdLGw9QXJyYXkuaXNBcnJheShzKT9UMihzLGQ9PmQudGVzdChvKSk6dzIocyxkPT5kLnRlc3QobykpO2xldCB1O3U9ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhsKTpsLHU9bi52YWx1ZUNhbGxiYWNrP24udmFsdWVDYWxsYmFjayh1KTp1O2NvbnN0IGM9dC5zbGljZShvLmxlbmd0aCk7cmV0dXJue3ZhbHVlOnUscmVzdDpjfX19ZnVuY3Rpb24gdzIoZSx0KXtmb3IoY29uc3QgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiZ0KGVbbl0pKXJldHVybiBufWZ1bmN0aW9uIFQyKGUsdCl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspaWYodChlW25dKSlyZXR1cm4gbn1mdW5jdGlvbiBrMihlKXtyZXR1cm4odCxuPXt9KT0+e2NvbnN0IHI9dC5tYXRjaChlLm1hdGNoUGF0dGVybik7aWYoIXIpcmV0dXJuIG51bGw7Y29uc3QgYT1yWzBdLGk9dC5tYXRjaChlLnBhcnNlUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG89ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhpWzBdKTppWzBdO289bi52YWx1ZUNhbGxiYWNrP24udmFsdWVDYWxsYmFjayhvKTpvO2NvbnN0IHM9dC5zbGljZShhLmxlbmd0aCk7cmV0dXJue3ZhbHVlOm8scmVzdDpzfX19Y29uc3QgQTI9L14oXGQrKSh0aHxzdHxuZHxyZCk/L2kseDI9L1xkKy9pLFIyPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sXzI9e2FueTpbL15iL2ksL14oYXxjKS9pXX0sSTI9e25hcnJvdzovXlsxMjM0XS9pLGFiYnJldmlhdGVkOi9ecVsxMjM0XS9pLHdpZGU6L15bMTIzNF0odGh8c3R8bmR8cmQpPyBxdWFydGVyL2l9LE4yPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxDMj17bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0sTzI9e25hcnJvdzpbL15qL2ksL15mL2ksL15tL2ksL15hL2ksL15tL2ksL15qL2ksL15qL2ksL15hL2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldLGFueTpbL15qYS9pLC9eZi9pLC9ebWFyL2ksL15hcC9pLC9ebWF5L2ksL15qdW4vaSwvXmp1bC9pLC9eYXUvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV19LEwyPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LEQyPXtuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LE0yPXtuYXJyb3c6L14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLGFueTovXihbYXBdXC4/XHM/bVwuP3xtaWRuaWdodHxub29ufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaX0sUDI9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LEYyPXtvcmRpbmFsTnVtYmVyOmsyKHttYXRjaFBhdHRlcm46QTIscGFyc2VQYXR0ZXJuOngyLHZhbHVlQ2FsbGJhY2s6ZT0+cGFyc2VJbnQoZSwxMCl9KSxlcmE6TmEoe21hdGNoUGF0dGVybnM6UjIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6XzIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOk5hKHttYXRjaFBhdHRlcm5zOkkyLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOk4yLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkiLHZhbHVlQ2FsbGJhY2s6ZT0+ZSsxfSksbW9udGg6TmEoe21hdGNoUGF0dGVybnM6QzIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6TzIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXk6TmEoe21hdGNoUGF0dGVybnM6TDIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6RDIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXlQZXJpb2Q6TmEoe21hdGNoUGF0dGVybnM6TTIsZGVmYXVsdE1hdGNoV2lkdGg6ImFueSIscGFyc2VQYXR0ZXJuczpQMixkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pfSxVMj17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOnMyLGZvcm1hdExvbmc6ZDIsZm9ybWF0UmVsYXRpdmU6ZjIsbG9jYWxpemU6UzIsbWF0Y2g6RjIsb3B0aW9uczp7d2Vla1N0YXJ0c09uOjAsZmlyc3RXZWVrQ29udGFpbnNEYXRlOjF9fTtmdW5jdGlvbiBCMihlLHQsbil7Y29uc3Qgcj1YRigpLGE9KG49PW51bGw/dm9pZCAwOm4ubG9jYWxlKT8/ci5sb2NhbGU/P1UyLGk9MjUyMCxvPURvKGUsdCk7aWYoaXNOYU4obykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2NvbnN0IHM9T2JqZWN0LmFzc2lnbih7fSxuLHthZGRTdWZmaXg6bj09bnVsbD92b2lkIDA6bi5hZGRTdWZmaXgsY29tcGFyaXNvbjpvfSk7bGV0IGwsdTtvPjA/KGw9TWUodCksdT1NZShlKSk6KGw9TWUoZSksdT1NZSh0KSk7Y29uc3QgYz1pMih1LGwpLGQ9KFNFKHUpLVNFKGwpKS8xZTMscD1NYXRoLnJvdW5kKChjLWQpLzYwKTtsZXQgZjtpZihwPDIpcmV0dXJuIG4hPW51bGwmJm4uaW5jbHVkZVNlY29uZHM/Yzw1P2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUscyk6YzwxMD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxzKTpjPDIwP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLHMpOmM8NDA/YS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAscyk6Yzw2MD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLHMpOmEuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLHMpOnA9PT0wP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEscyk6YS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLHAscyk7aWYocDw0NSlyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLHAscyk7aWYocDw5MClyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEscyk7aWYocDxFRSl7Y29uc3QgeT1NYXRoLnJvdW5kKHAvNjApO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJhYm91dFhIb3VycyIseSxzKX1lbHNle2lmKHA8aSlyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieERheXMiLDEscyk7aWYocDxmbyl7Y29uc3QgeT1NYXRoLnJvdW5kKHAvRUUpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIseSxzKX1lbHNlIGlmKHA8Zm8qMilyZXR1cm4gZj1NYXRoLnJvdW5kKHAvZm8pLGEuZm9ybWF0RGlzdGFuY2UoImFib3V0WE1vbnRocyIsZixzKX1pZihmPWEyKHUsbCksZjwxMil7Y29uc3QgeT1NYXRoLnJvdW5kKHAvZm8pO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix5LHMpfWVsc2V7Y29uc3QgeT1mJTEyLGI9TWF0aC50cnVuYyhmLzEyKTtyZXR1cm4geTwzP2EuZm9ybWF0RGlzdGFuY2UoImFib3V0WFllYXJzIixiLHMpOnk8OT9hLmZvcm1hdERpc3RhbmNlKCJvdmVyWFllYXJzIixiLHMpOmEuZm9ybWF0RGlzdGFuY2UoImFsbW9zdFhZZWFycyIsYisxLHMpfX1mdW5jdGlvbiB0YihlLHQpe3JldHVybiBCMihlLFpGKGUpLHQpfWZ1bmN0aW9uIENOKGUpe3ZhciB0LG4scj0iIjtpZih0eXBlb2YgZT09InN0cmluZyJ8fHR5cGVvZiBlPT0ibnVtYmVyIilyKz1lO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBhPWUubGVuZ3RoO2Zvcih0PTA7dDxhO3QrKyllW3RdJiYobj1DTihlW3RdKSkmJihyJiYocis9IiAiKSxyKz1uKX1lbHNlIGZvcihuIGluIGUpZVtuXSYmKHImJihyKz0iICIpLHIrPW4pO3JldHVybiByfWZ1bmN0aW9uIFllKCl7Zm9yKHZhciBlLHQsbj0wLHI9IiIsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspKGU9YXJndW1lbnRzW25dKSYmKHQ9Q04oZSkpJiYociYmKHIrPSIgIikscis9dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gJDIoKXtjb25zdHtzZXNzaW9uczplLGFjdGl2ZVNlc3Npb25JZDp0LHNpZGViYXJPcGVuOm4sYWN0aXZlUGFuZWw6cixzZXRTaWRlYmFyT3BlbjphLHNldEFjdGl2ZVBhbmVsOmksc2V0QWN0aXZlU2Vzc2lvbjpvLHNldEFjdGl2ZVNlc3Npb25JZDpzLGFkZFNlc3Npb246bCxyZW1vdmVTZXNzaW9uOnUsY29ubmVjdGlvblN0YXR1czpjfT0kaSgpLGQ9YXN5bmMoKT0+e2NvbnN0e3Nlc3Npb246Yn09YXdhaXQgbnQuc2Vzc2lvbnMuY3JlYXRlKCJOZXcgY29udmVyc2F0aW9uIik7bCh7Li4uYixtZXNzYWdlczpbXX0pLGkoImNoYXQiKX0scD1hc3luYyhiLEEpPT57Yi5zdG9wUHJvcGFnYXRpb24oKSxhd2FpdCBudC5zZXNzaW9ucy5kZWxldGUoQSksdShBKX0sZj1hc3luYyBiPT57Y29uc3R7c2Vzc2lvbjpBfT1hd2FpdCBudC5zZXNzaW9ucy5nZXQoYik7byhBKSxpKCJjaGF0Iil9LHk9W3tpZDoiY2hhdCIsaWNvbjpoRSxsYWJlbDoiQ2hhdCJ9LHtpZDoibWVtb3J5IixpY29uOm9yLGxhYmVsOiJNZW1vcnkifSx7aWQ6InNraWxscyIsaWNvbjpBTixsYWJlbDoiU2tpbGxzIn0se2lkOiJtb2RlbHMiLGljb246Y2csbGFiZWw6Ik1vZGVscyJ9XTtyZXR1cm4gay5qc3gobHMse2NoaWxkcmVuOm4mJmsuanN4cyhOdC5hc2lkZSx7aW5pdGlhbDp7eDotMjgwLG9wYWNpdHk6MH0sYW5pbWF0ZTp7eDowLG9wYWNpdHk6MX0sZXhpdDp7eDotMjgwLG9wYWNpdHk6MH0sdHJhbnNpdGlvbjp7dHlwZToic3ByaW5nIixkYW1waW5nOjI1LHN0aWZmbmVzczoyMDB9LGNsYXNzTmFtZToiZmxleC1zaHJpbmstMCB3LTcyIGgtZnVsbCBmbGV4IGZsZXgtY29sIGJvcmRlci1yIGJvcmRlci1zdXJmYWNlLTcwMC81MCIsc3R5bGU6e2JhY2tncm91bmQ6InJnYmEoOSwgMTMsIDE5LCAwLjk1KSJ9LGNoaWxkcmVuOltrLmpzeHMoImRpdiIse2NsYXNzTmFtZToicC00IGJvcmRlci1iIGJvcmRlci1zdXJmYWNlLTcwMC81MCIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMi41IixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InJlbGF0aXZlIixjaGlsZHJlbjpbay5qc3goImRpdiIse2NsYXNzTmFtZToidy04IGgtOCByb3VuZGVkLWxnIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tY2xhdy00MDAgdG8tY2xhdy02MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSBmb250LWJvbGQgdGV4dC1zbSBnbG93LWJsdWUtc20iLGNoaWxkcmVuOiLwn6aeIn0pLGsuanN4KCJkaXYiLHtjbGFzc05hbWU6WWUoImFic29sdXRlIC1ib3R0b20tMC41IC1yaWdodC0wLjUgdy0yLjUgaC0yLjUgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1zdXJmYWNlLTk1MCIsYz09PSJjb25uZWN0ZWQiPyJiZy1lbWVyYWxkLTQwMCI6Yz09PSJlcnJvciI/ImJnLXJlZC00MDAiOiJiZy15ZWxsb3ctNDAwIil9KV19KSxrLmpzeHMoImRpdiIse2NoaWxkcmVuOltrLmpzeCgiaDEiLHtjbGFzc05hbWU6InRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtc20gbGVhZGluZy10aWdodCIsY2hpbGRyZW46Ik9wZW5DbGF3In0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LWNsYXctNDAwIHRleHQteHMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiLGNoaWxkcmVuOmM9PT0iY29ubmVjdGVkIj9rLmpzeHMoay5GcmFnbWVudCx7Y2hpbGRyZW46W2suanN4KHlGLHtjbGFzc05hbWU6InctMi41IGgtMi41In0pLCIgRWRnZSBBSSJdfSk6Yz09PSJlcnJvciI/ay5qc3hzKGsuRnJhZ21lbnQse2NoaWxkcmVuOltrLmpzeChiRix7Y2xhc3NOYW1lOiJ3LTIuNSBoLTIuNSB0ZXh0LXJlZC00MDAifSksIiBPZmZsaW5lIl19KTprLmpzeHMoay5GcmFnbWVudCx7Y2hpbGRyZW46W2suanN4KHBGLHtjbGFzc05hbWU6InctMi41IGgtMi41IGFuaW1hdGUtc3BpbiJ9KSwiIENvbm5lY3RpbmciXX0pfSldfSldfSksay5qc3goImJ1dHRvbiIse29uQ2xpY2s6KCk9PmEoITEpLGNsYXNzTmFtZToicC0xLjUgdGV4dC1zbGF0ZS01MDAgaG92ZXI6dGV4dC1zbGF0ZS0zMDAgaG92ZXI6Ymctc3VyZmFjZS03MDAgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyIsY2hpbGRyZW46ay5qc3goc0Yse2NsYXNzTmFtZToidy00IGgtNCJ9KX0pXX0pLGsuanN4KCJkaXYiLHtjbGFzc05hbWU6ImdyaWQgZ3JpZC1jb2xzLTQgZ2FwLTEgcC0xIGJnLXN1cmZhY2UtODAwLzUwIHJvdW5kZWQteGwiLGNoaWxkcmVuOnkubWFwKCh7aWQ6YixpY29uOkEsbGFiZWw6aH0pPT5rLmpzeHMoImJ1dHRvbiIse29uQ2xpY2s6KCk9PmkoYiksY2xhc3NOYW1lOlllKCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMSBweS0yIHB4LTEgcm91bmRlZC1sZyB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tYWxsIixyPT09Yj8iYmctY2xhdy02MDAgdGV4dC13aGl0ZSBzaGFkb3ctbGciOiJ0ZXh0LXNsYXRlLTUwMCBob3Zlcjp0ZXh0LXNsYXRlLTMwMCBob3ZlcjpiZy1zdXJmYWNlLTcwMCIpLGNoaWxkcmVuOltrLmpzeChBLHtjbGFzc05hbWU6InctMy41IGgtMy41In0pLGsuanN4KCJzcGFuIix7Y2hpbGRyZW46aH0pXX0sYikpfSldfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gcC0zIHNwYWNlLXktMSIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMiBweC0xIixjaGlsZHJlbjpbay5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIiLGNoaWxkcmVuOiJDb252ZXJzYXRpb25zIn0pLGsuanN4KCJidXR0b24iLHtvbkNsaWNrOmQsY2xhc3NOYW1lOiJwLTEuNSB0ZXh0LWNsYXctNDAwIGhvdmVyOnRleHQtY2xhdy0zMDAgaG92ZXI6YmctY2xhdy01MDAvMTAgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyIsdGl0bGU6Ik5ldyBjb252ZXJzYXRpb24iLGNoaWxkcmVuOmsuanN4KHdOLHtjbGFzc05hbWU6InctMy41IGgtMy41In0pfSldfSksay5qc3gobHMse2NoaWxkcmVuOmUubGVuZ3RoPT09MD9rLmpzeHMoTnQuZGl2LHtpbml0aWFsOntvcGFjaXR5OjB9LGFuaW1hdGU6e29wYWNpdHk6MX0sY2xhc3NOYW1lOiJ0ZXh0LWNlbnRlciBweS04IixjaGlsZHJlbjpbay5qc3goaEUse2NsYXNzTmFtZToidy04IGgtOCB0ZXh0LXNsYXRlLTYwMCBteC1hdXRvIG1iLTIifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNTAwIHRleHQteHMiLGNoaWxkcmVuOiJObyBjb252ZXJzYXRpb25zIHlldCJ9KSxrLmpzeCgiYnV0dG9uIix7b25DbGljazpkLGNsYXNzTmFtZToibXQtMyB0ZXh0LXhzIHRleHQtY2xhdy00MDAgaG92ZXI6dGV4dC1jbGF3LTMwMCB1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC0yIixjaGlsZHJlbjoiU3RhcnQgeW91ciBmaXJzdCBjb252ZXJzYXRpb24ifSldfSk6ZS5tYXAoYj0+ay5qc3hzKE50LmRpdix7bGF5b3V0OiEwLGluaXRpYWw6e29wYWNpdHk6MCx5Oi00fSxhbmltYXRlOntvcGFjaXR5OjEseTowfSxleGl0OntvcGFjaXR5OjAseDotMjB9LG9uQ2xpY2s6KCk9PmYoYi5pZCksY2xhc3NOYW1lOlllKCJncm91cCBmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0yIHAtMi41IHJvdW5kZWQteGwgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1hbGwiLHQ9PT1iLmlkPyJiZy1jbGF3LTYwMC8xNSBib3JkZXIgYm9yZGVyLWNsYXctNTAwLzIwIjoiaG92ZXI6Ymctc3VyZmFjZS04MDAiKSxjaGlsZHJlbjpbay5qc3goImRpdiIse2NsYXNzTmFtZTpZZSgibXQtMC41IGZsZXgtc2hyaW5rLTAgdy01IGgtNSByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQteHMiLGIubW9kZWw9PT0iY29kaW5nIj8iYmctdmlvbGV0LTUwMC8yMCB0ZXh0LXZpb2xldC00MDAiOiJiZy1jbGF3LTUwMC8yMCB0ZXh0LWNsYXctNDAwIiksY2hpbGRyZW46Yi5tb2RlbD09PSJjb2RpbmciPyLijKgiOiLinKYifSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBtaW4tdy0wIixjaGlsZHJlbjpbay5qc3goInAiLHtjbGFzc05hbWU6WWUoInRleHQteHMgZm9udC1tZWRpdW0gdHJ1bmNhdGUgbGVhZGluZy10aWdodCIsdD09PWIuaWQ/InRleHQtd2hpdGUiOiJ0ZXh0LXNsYXRlLTMwMCIpLGNoaWxkcmVuOmIubmFtZX0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtc2xhdGUtNTAwIG10LTAuNSIsY2hpbGRyZW46dGIobmV3IERhdGUoYi51cGRhdGVkQXQpLHthZGRTdWZmaXg6ITB9KX0pXX0pLGsuanN4KCJidXR0b24iLHtvbkNsaWNrOkE9PnAoQSxiLmlkKSxjbGFzc05hbWU6Im9wYWNpdHktMCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCBwLTEgdGV4dC1zbGF0ZS01MDAgaG92ZXI6dGV4dC1yZWQtNDAwIHJvdW5kZWQgdHJhbnNpdGlvbi1hbGwiLGNoaWxkcmVuOmsuanN4KGtOLHtjbGFzc05hbWU6InctMyBoLTMifSl9KV19LGIuaWQpKX0pXX0pLGsuanN4KCJkaXYiLHtjbGFzc05hbWU6InAtMyBib3JkZXItdCBib3JkZXItc3VyZmFjZS03MDAvNTAiLGNoaWxkcmVuOmsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC0yIHB5LTEuNSByb3VuZGVkLWxnIGJnLXN1cmZhY2UtODAwLzUwIixjaGlsZHJlbjpbay5qc3goImRpdiIse2NsYXNzTmFtZToidy01IGgtNSByb3VuZGVkLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1jbGF3LTQwMCB0by1jbGF3LTYwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LXdoaXRlIHRleHQteHMiLGNoaWxkcmVuOiLimIEifSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBtaW4tdy0wIixjaGlsZHJlbjpbay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS0zMDAgZm9udC1tZWRpdW0gdHJ1bmNhdGUiLGNoaWxkcmVuOiJDbG91ZGZsYXJlIFdvcmtlcnMgQUkifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS01MDAiLGNoaWxkcmVuOiJHbG9iYWwgZWRnZSDigKIgUHJpdmF0ZSJ9KV19KV19KX0pXX0pfSl9ZnVuY3Rpb24gejIoZSx0KXtjb25zdCBuPXt9O3JldHVybihlW2UubGVuZ3RoLTFdPT09IiI/Wy4uLmUsIiJdOmUpLmpvaW4oKG4ucGFkUmlnaHQ/IiAiOiIiKSsiLCIrKG4ucGFkTGVmdD09PSExPyIiOiIgIikpLnRyaW0oKX1jb25zdCBqMj0vXlskX1xwe0lEX1N0YXJ0fV1bJF9cdXsyMDBDfVx1ezIwMER9XHB7SURfQ29udGludWV9XSokL3UsRzI9L15bJF9ccHtJRF9TdGFydH1dWy0kX1x1ezIwMEN9XHV7MjAwRH1ccHtJRF9Db250aW51ZX1dKiQvdSxxMj17fTtmdW5jdGlvbiB3RShlLHQpe3JldHVybihxMi5qc3g/RzI6ajIpLnRlc3QoZSl9Y29uc3QgVjI9L1sgXHRcblxmXHJdL2c7ZnVuY3Rpb24gSDIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0Ij9lLnR5cGU9PT0idGV4dCI/VEUoZS52YWx1ZSk6ITE6VEUoZSl9ZnVuY3Rpb24gVEUoZSl7cmV0dXJuIGUucmVwbGFjZShWMiwiIik9PT0iIn1sZXQgemk9Y2xhc3N7Y29uc3RydWN0b3IodCxuLHIpe3RoaXMubm9ybWFsPW4sdGhpcy5wcm9wZXJ0eT10LHImJih0aGlzLnNwYWNlPXIpfX07emkucHJvdG90eXBlLm5vcm1hbD17fTt6aS5wcm90b3R5cGUucHJvcGVydHk9e307emkucHJvdG90eXBlLnNwYWNlPXZvaWQgMDtmdW5jdGlvbiBPTihlLHQpe2NvbnN0IG49e30scj17fTtmb3IoY29uc3QgYSBvZiBlKU9iamVjdC5hc3NpZ24obixhLnByb3BlcnR5KSxPYmplY3QuYXNzaWduKHIsYS5ub3JtYWwpO3JldHVybiBuZXcgemkobixyLHQpfWZ1bmN0aW9uIGRnKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9bGV0IHN0PWNsYXNze2NvbnN0cnVjdG9yKHQsbil7dGhpcy5hdHRyaWJ1dGU9bix0aGlzLnByb3BlcnR5PXR9fTtzdC5wcm90b3R5cGUuYXR0cmlidXRlPSIiO3N0LnByb3RvdHlwZS5ib29sZWFuaXNoPSExO3N0LnByb3RvdHlwZS5ib29sZWFuPSExO3N0LnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9ITE7c3QucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkPSExO3N0LnByb3RvdHlwZS5kZWZpbmVkPSExO3N0LnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHk9ITE7c3QucHJvdG90eXBlLm51bWJlcj0hMTtzdC5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW49ITE7c3QucHJvdG90eXBlLnByb3BlcnR5PSIiO3N0LnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZD0hMTtzdC5wcm90b3R5cGUuc3BhY2U9dm9pZCAwO2xldCBXMj0wO2NvbnN0IFo9eXIoKSx4ZT15cigpLHBnPXlyKCksTT15cigpLHNlPXlyKCksWHI9eXIoKSxjdD15cigpO2Z1bmN0aW9uIHlyKCl7cmV0dXJuIDIqKisrVzJ9Y29uc3QgZmc9T2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydHkoe19fcHJvdG9fXzpudWxsLGJvb2xlYW46Wixib29sZWFuaXNoOnhlLGNvbW1hT3JTcGFjZVNlcGFyYXRlZDpjdCxjb21tYVNlcGFyYXRlZDpYcixudW1iZXI6TSxvdmVybG9hZGVkQm9vbGVhbjpwZyxzcGFjZVNlcGFyYXRlZDpzZX0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pKSxCbD1PYmplY3Qua2V5cyhmZyk7bGV0IG5iPWNsYXNzIGV4dGVuZHMgc3R7Y29uc3RydWN0b3IodCxuLHIsYSl7bGV0IGk9LTE7aWYoc3VwZXIodCxuKSxrRSh0aGlzLCJzcGFjZSIsYSksdHlwZW9mIHI9PSJudW1iZXIiKWZvcig7KytpPEJsLmxlbmd0aDspe2NvbnN0IG89QmxbaV07a0UodGhpcyxCbFtpXSwociZmZ1tvXSk9PT1mZ1tvXSl9fX07bmIucHJvdG90eXBlLmRlZmluZWQ9ITA7ZnVuY3Rpb24ga0UoZSx0LG4pe24mJihlW3RdPW4pfWZ1bmN0aW9uIG1hKGUpe2NvbnN0IHQ9e30sbj17fTtmb3IoY29uc3RbcixhXW9mIE9iamVjdC5lbnRyaWVzKGUucHJvcGVydGllcykpe2NvbnN0IGk9bmV3IG5iKHIsZS50cmFuc2Zvcm0oZS5hdHRyaWJ1dGVzfHx7fSxyKSxhLGUuc3BhY2UpO2UubXVzdFVzZVByb3BlcnR5JiZlLm11c3RVc2VQcm9wZXJ0eS5pbmNsdWRlcyhyKSYmKGkubXVzdFVzZVByb3BlcnR5PSEwKSx0W3JdPWksbltkZyhyKV09cixuW2RnKGkuYXR0cmlidXRlKV09cn1yZXR1cm4gbmV3IHppKHQsbixlLnNwYWNlKX1jb25zdCBMTj1tYSh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOnhlLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTp4ZSxhcmlhQ2hlY2tlZDp4ZSxhcmlhQ29sQ291bnQ6TSxhcmlhQ29sSW5kZXg6TSxhcmlhQ29sU3BhbjpNLGFyaWFDb250cm9sczpzZSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpzZSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDp4ZSxhcmlhRHJvcEVmZmVjdDpzZSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOnhlLGFyaWFGbG93VG86c2UsYXJpYUdyYWJiZWQ6eGUsYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjp4ZSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpzZSxhcmlhTGV2ZWw6TSxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDp4ZSxhcmlhTXVsdGlMaW5lOnhlLGFyaWFNdWx0aVNlbGVjdGFibGU6eGUsYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6c2UsYXJpYVBsYWNlaG9sZGVyOm51bGwsYXJpYVBvc0luU2V0Ok0sYXJpYVByZXNzZWQ6eGUsYXJpYVJlYWRPbmx5OnhlLGFyaWFSZWxldmFudDpudWxsLGFyaWFSZXF1aXJlZDp4ZSxhcmlhUm9sZURlc2NyaXB0aW9uOnNlLGFyaWFSb3dDb3VudDpNLGFyaWFSb3dJbmRleDpNLGFyaWFSb3dTcGFuOk0sYXJpYVNlbGVjdGVkOnhlLGFyaWFTZXRTaXplOk0sYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6TSxhcmlhVmFsdWVNaW46TSxhcmlhVmFsdWVOb3c6TSxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0oZSx0KXtyZXR1cm4gdD09PSJyb2xlIj90OiJhcmlhLSIrdC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pO2Z1bmN0aW9uIEROKGUsdCl7cmV0dXJuIHQgaW4gZT9lW3RdOnR9ZnVuY3Rpb24gTU4oZSx0KXtyZXR1cm4gRE4oZSx0LnRvTG93ZXJDYXNlKCkpfWNvbnN0IFkyPW1hKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpYcixhY2NlcHRDaGFyc2V0OnNlLGFjY2Vzc0tleTpzZSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpaLGFsbG93UGF5bWVudFJlcXVlc3Q6WixhbGxvd1VzZXJNZWRpYTpaLGFsdDpudWxsLGFzOm51bGwsYXN5bmM6WixhdXRvQ2FwaXRhbGl6ZTpudWxsLGF1dG9Db21wbGV0ZTpzZSxhdXRvRm9jdXM6WixhdXRvUGxheTpaLGJsb2NraW5nOnNlLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpaLGNpdGU6bnVsbCxjbGFzc05hbWU6c2UsY29sczpNLGNvbFNwYW46bnVsbCxjb250ZW50Om51bGwsY29udGVudEVkaXRhYmxlOnhlLGNvbnRyb2xzOlosY29udHJvbHNMaXN0OnNlLGNvb3JkczpNfFhyLGNyb3NzT3JpZ2luOm51bGwsZGF0YTpudWxsLGRhdGVUaW1lOm51bGwsZGVjb2Rpbmc6bnVsbCxkZWZhdWx0OlosZGVmZXI6WixkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6Wixkb3dubG9hZDpwZyxkcmFnZ2FibGU6eGUsZW5jVHlwZTpudWxsLGVudGVyS2V5SGludDpudWxsLGZldGNoUHJpb3JpdHk6bnVsbCxmb3JtOm51bGwsZm9ybUFjdGlvbjpudWxsLGZvcm1FbmNUeXBlOm51bGwsZm9ybU1ldGhvZDpudWxsLGZvcm1Ob1ZhbGlkYXRlOlosZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6c2UsaGVpZ2h0Ok0saGlkZGVuOnBnLGhpZ2g6TSxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxodG1sRm9yOnNlLGh0dHBFcXVpdjpzZSxpZDpudWxsLGltYWdlU2l6ZXM6bnVsbCxpbWFnZVNyY1NldDpudWxsLGluZXJ0OlosaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDpaLGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOnNlLGl0ZW1SZWY6c2UsaXRlbVNjb3BlOlosaXRlbVR5cGU6c2Usa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOlosbG93Ok0sbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6TSxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDpNLG11bHRpcGxlOlosbXV0ZWQ6WixuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTpaLG5vVmFsaWRhdGU6WixvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlTWF0Y2g6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVUb2dnbGU6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRMb3N0Om51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29udGV4dFJlc3RvcmVkOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNjcm9sbEVuZDpudWxsLG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TbG90Q2hhbmdlOm51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5oYW5kbGVkUmVqZWN0aW9uOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uV2hlZWw6bnVsbCxvcGVuOlosb3B0aW11bTpNLHBhdHRlcm46bnVsbCxwaW5nOnNlLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6Wixwb3BvdmVyOm51bGwscG9wb3ZlclRhcmdldDpudWxsLHBvcG92ZXJUYXJnZXRBY3Rpb246bnVsbCxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6WixyZWZlcnJlclBvbGljeTpudWxsLHJlbDpzZSxyZXF1aXJlZDpaLHJldmVyc2VkOloscm93czpNLHJvd1NwYW46TSxzYW5kYm94OnNlLHNjb3BlOm51bGwsc2NvcGVkOlosc2VhbWxlc3M6WixzZWxlY3RlZDpaLHNoYWRvd1Jvb3RDbG9uYWJsZTpaLHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czpaLHNoYWRvd1Jvb3RNb2RlOm51bGwsc2hhcGU6bnVsbCxzaXplOk0sc2l6ZXM6bnVsbCxzbG90Om51bGwsc3BhbjpNLHNwZWxsQ2hlY2s6eGUsc3JjOm51bGwsc3JjRG9jOm51bGwsc3JjTGFuZzpudWxsLHNyY1NldDpudWxsLHN0YXJ0Ok0sc3RlcDpudWxsLHN0eWxlOm51bGwsdGFiSW5kZXg6TSx0YXJnZXQ6bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHR5cGU6bnVsbCx0eXBlTXVzdE1hdGNoOlosdXNlTWFwOm51bGwsdmFsdWU6eGUsd2lkdGg6TSx3cmFwOm51bGwsd3JpdGluZ1N1Z2dlc3Rpb25zOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6c2UsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOk0sYm9yZGVyQ29sb3I6bnVsbCxib3R0b21NYXJnaW46TSxjZWxsUGFkZGluZzpudWxsLGNlbGxTcGFjaW5nOm51bGwsY2hhcjpudWxsLGNoYXJPZmY6bnVsbCxjbGFzc0lkOm51bGwsY2xlYXI6bnVsbCxjb2RlOm51bGwsY29kZUJhc2U6bnVsbCxjb2RlVHlwZTpudWxsLGNvbG9yOm51bGwsY29tcGFjdDpaLGRlY2xhcmU6WixldmVudDpudWxsLGZhY2U6bnVsbCxmcmFtZTpudWxsLGZyYW1lQm9yZGVyOm51bGwsaFNwYWNlOk0sbGVmdE1hcmdpbjpNLGxpbms6bnVsbCxsb25nRGVzYzpudWxsLGxvd1NyYzpudWxsLG1hcmdpbkhlaWdodDpNLG1hcmdpbldpZHRoOk0sbm9SZXNpemU6Wixub0hyZWY6Wixub1NoYWRlOlosbm9XcmFwOlosb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOk0scnVsZXM6bnVsbCxzY2hlbWU6bnVsbCxzY3JvbGxpbmc6eGUsc3RhbmRieTpudWxsLHN1bW1hcnk6bnVsbCx0ZXh0Om51bGwsdG9wTWFyZ2luOk0sdmFsdWVUeXBlOm51bGwsdmVyc2lvbjpudWxsLHZBbGlnbjpudWxsLHZMaW5rOm51bGwsdlNwYWNlOk0sYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6WixkaXNhYmxlUmVtb3RlUGxheWJhY2s6WixwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6TSxzZWN1cml0eTpudWxsLHVuc2VsZWN0YWJsZTpudWxsfSxzcGFjZToiaHRtbCIsdHJhbnNmb3JtOk1OfSksSzI9bWEoe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDpjdCxhY2NlbnRIZWlnaHQ6TSxhY2N1bXVsYXRlOm51bGwsYWRkaXRpdmU6bnVsbCxhbGlnbm1lbnRCYXNlbGluZTpudWxsLGFscGhhYmV0aWM6TSxhbXBsaXR1ZGU6TSxhcmFiaWNGb3JtOm51bGwsYXNjZW50Ok0sYXR0cmlidXRlTmFtZTpudWxsLGF0dHJpYnV0ZVR5cGU6bnVsbCxhemltdXRoOk0sYmFuZHdpZHRoOm51bGwsYmFzZWxpbmVTaGlmdDpudWxsLGJhc2VGcmVxdWVuY3k6bnVsbCxiYXNlUHJvZmlsZTpudWxsLGJib3g6bnVsbCxiZWdpbjpudWxsLGJpYXM6TSxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0Ok0sY2xhc3NOYW1lOnNlLGNsaXA6bnVsbCxjbGlwUGF0aDpudWxsLGNsaXBQYXRoVW5pdHM6bnVsbCxjbGlwUnVsZTpudWxsLGNvbG9yOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczpudWxsLGNvbG9yUHJvZmlsZTpudWxsLGNvbG9yUmVuZGVyaW5nOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRTY3JpcHRUeXBlOm51bGwsY29udGVudFN0eWxlVHlwZTpudWxsLGNyb3NzT3JpZ2luOm51bGwsY3Vyc29yOm51bGwsY3g6bnVsbCxjeTpudWxsLGQ6bnVsbCxkYXRhVHlwZTpudWxsLGRlZmF1bHRBY3Rpb246bnVsbCxkZXNjZW50Ok0sZGlmZnVzZUNvbnN0YW50Ok0sZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6TSxkb21pbmFudEJhc2VsaW5lOm51bGwsZG93bmxvYWQ6WixkeDpudWxsLGR5Om51bGwsZWRnZU1vZGU6bnVsbCxlZGl0YWJsZTpudWxsLGVsZXZhdGlvbjpNLGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50Ok0sZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDpudWxsLGZpbGw6bnVsbCxmaWxsT3BhY2l0eTpNLGZpbGxSdWxlOm51bGwsZmlsdGVyOm51bGwsZmlsdGVyUmVzOm51bGwsZmlsdGVyVW5pdHM6bnVsbCxmbG9vZENvbG9yOm51bGwsZmxvb2RPcGFjaXR5Om51bGwsZm9jdXNhYmxlOm51bGwsZm9jdXNIaWdobGlnaHQ6bnVsbCxmb250RmFtaWx5Om51bGwsZm9udFNpemU6bnVsbCxmb250U2l6ZUFkanVzdDpudWxsLGZvbnRTdHJldGNoOm51bGwsZm9udFN0eWxlOm51bGwsZm9udFZhcmlhbnQ6bnVsbCxmb250V2VpZ2h0Om51bGwsZm9ybWF0Om51bGwsZnI6bnVsbCxmcm9tOm51bGwsZng6bnVsbCxmeTpudWxsLGcxOlhyLGcyOlhyLGdseXBoTmFtZTpYcixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDpudWxsLGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDpudWxsLGdseXBoUmVmOm51bGwsZ3JhZGllbnRUcmFuc2Zvcm06bnVsbCxncmFkaWVudFVuaXRzOm51bGwsaGFuZGxlcjpudWxsLGhhbmdpbmc6TSxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6TSxob3Jpek9yaWdpblg6TSxob3Jpek9yaWdpblk6TSxpZDpudWxsLGlkZW9ncmFwaGljOk0saW1hZ2VSZW5kZXJpbmc6bnVsbCxpbml0aWFsVmlzaWJpbGl0eTpudWxsLGluOm51bGwsaW4yOm51bGwsaW50ZXJjZXB0Ok0sazpNLGsxOk0sazI6TSxrMzpNLGs0Ok0sa2VybmVsTWF0cml4OmN0LGtlcm5lbFVuaXRMZW5ndGg6bnVsbCxrZXlQb2ludHM6bnVsbCxrZXlTcGxpbmVzOm51bGwsa2V5VGltZXM6bnVsbCxrZXJuaW5nOm51bGwsbGFuZzpudWxsLGxlbmd0aEFkanVzdDpudWxsLGxldHRlclNwYWNpbmc6bnVsbCxsaWdodGluZ0NvbG9yOm51bGwsbGltaXRpbmdDb25lQW5nbGU6TSxsb2NhbDpudWxsLG1hcmtlckVuZDpudWxsLG1hcmtlck1pZDpudWxsLG1hcmtlclN0YXJ0Om51bGwsbWFya2VySGVpZ2h0Om51bGwsbWFya2VyVW5pdHM6bnVsbCxtYXJrZXJXaWR0aDpudWxsLG1hc2s6bnVsbCxtYXNrQ29udGVudFVuaXRzOm51bGwsbWFza1VuaXRzOm51bGwsbWF0aGVtYXRpY2FsOm51bGwsbWF4Om51bGwsbWVkaWE6bnVsbCxtZWRpYUNoYXJhY3RlckVuY29kaW5nOm51bGwsbWVkaWFDb250ZW50RW5jb2RpbmdzOm51bGwsbWVkaWFTaXplOk0sbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246TSxvdmVybGluZVRoaWNrbmVzczpNLHBhaW50T3JkZXI6bnVsbCxwYW5vc2UxOm51bGwscGF0aDpudWxsLHBhdGhMZW5ndGg6TSxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpzZSxwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOk0scG9pbnRzQXRZOk0scG9pbnRzQXRaOk0scHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmN0LHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmN0LHJldjpjdCxyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczpjdCxyZXF1aXJlZEZlYXR1cmVzOmN0LHJlcXVpcmVkRm9udHM6Y3QscmVxdWlyZWRGb3JtYXRzOmN0LHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6TSxzcGVjdWxhckV4cG9uZW50Ok0sc3ByZWFkTWV0aG9kOm51bGwsc3BhY2luZzpudWxsLHN0YXJ0T2Zmc2V0Om51bGwsc3RkRGV2aWF0aW9uOm51bGwsc3RlbWg6bnVsbCxzdGVtdjpudWxsLHN0aXRjaFRpbGVzOm51bGwsc3RvcENvbG9yOm51bGwsc3RvcE9wYWNpdHk6bnVsbCxzdHJpa2V0aHJvdWdoUG9zaXRpb246TSxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOk0sc3RyaW5nOm51bGwsc3Ryb2tlOm51bGwsc3Ryb2tlRGFzaEFycmF5OmN0LHN0cm9rZURhc2hPZmZzZXQ6bnVsbCxzdHJva2VMaW5lQ2FwOm51bGwsc3Ryb2tlTGluZUpvaW46bnVsbCxzdHJva2VNaXRlckxpbWl0Ok0sc3Ryb2tlT3BhY2l0eTpNLHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6TSxzeW5jQmVoYXZpb3I6bnVsbCxzeW5jQmVoYXZpb3JEZWZhdWx0Om51bGwsc3luY01hc3RlcjpudWxsLHN5bmNUb2xlcmFuY2U6bnVsbCxzeW5jVG9sZXJhbmNlRGVmYXVsdDpudWxsLHN5c3RlbUxhbmd1YWdlOmN0LHRhYkluZGV4Ok0sdGFibGVWYWx1ZXM6bnVsbCx0YXJnZXQ6bnVsbCx0YXJnZXRYOk0sdGFyZ2V0WTpNLHRleHRBbmNob3I6bnVsbCx0ZXh0RGVjb3JhdGlvbjpudWxsLHRleHRSZW5kZXJpbmc6bnVsbCx0ZXh0TGVuZ3RoOm51bGwsdGltZWxpbmVCZWdpbjpudWxsLHRpdGxlOm51bGwsdHJhbnNmb3JtQmVoYXZpb3I6bnVsbCx0eXBlOm51bGwsdHlwZU9mOmN0LHRvOm51bGwsdHJhbnNmb3JtOm51bGwsdHJhbnNmb3JtT3JpZ2luOm51bGwsdTE6bnVsbCx1MjpudWxsLHVuZGVybGluZVBvc2l0aW9uOk0sdW5kZXJsaW5lVGhpY2tuZXNzOk0sdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpNLHZhbHVlczpudWxsLHZBbHBoYWJldGljOk0sdk1hdGhlbWF0aWNhbDpNLHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOk0sdklkZW9ncmFwaGljOk0sdmVyc2lvbjpudWxsLHZlcnRBZHZZOk0sdmVydE9yaWdpblg6TSx2ZXJ0T3JpZ2luWTpNLHZpZXdCb3g6bnVsbCx2aWV3VGFyZ2V0Om51bGwsdmlzaWJpbGl0eTpudWxsLHdpZHRoOm51bGwsd2lkdGhzOm51bGwsd29yZFNwYWNpbmc6bnVsbCx3cml0aW5nTW9kZTpudWxsLHg6bnVsbCx4MTpudWxsLHgyOm51bGwseENoYW5uZWxTZWxlY3RvcjpudWxsLHhIZWlnaHQ6TSx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06RE59KSxQTj1tYSh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybShlLHQpe3JldHVybiJ4bGluazoiK3Quc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KSxGTj1tYSh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06TU59KSxVTj1tYSh7cHJvcGVydGllczp7eG1sQmFzZTpudWxsLHhtbExhbmc6bnVsbCx4bWxTcGFjZTpudWxsfSxzcGFjZToieG1sIix0cmFuc2Zvcm0oZSx0KXtyZXR1cm4ieG1sOiIrdC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpfX0pLFgyPXtjbGFzc0lkOiJjbGFzc0lEIixkYXRhVHlwZToiZGF0YXR5cGUiLGl0ZW1JZDoiaXRlbUlEIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZURhc2hhcnJheSIsc3Ryb2tlRGFzaE9mZnNldDoic3Ryb2tlRGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlTGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZUxpbmVqb2luIixzdHJva2VNaXRlckxpbWl0OiJzdHJva2VNaXRlcmxpbWl0Iix0eXBlT2Y6InR5cGVvZiIseExpbmtBY3R1YXRlOiJ4bGlua0FjdHVhdGUiLHhMaW5rQXJjUm9sZToieGxpbmtBcmNyb2xlIix4TGlua0hyZWY6InhsaW5rSHJlZiIseExpbmtSb2xlOiJ4bGlua1JvbGUiLHhMaW5rU2hvdzoieGxpbmtTaG93Iix4TGlua1RpdGxlOiJ4bGlua1RpdGxlIix4TGlua1R5cGU6InhsaW5rVHlwZSIseG1sbnNYTGluazoieG1sbnNYbGluayJ9LFoyPS9bQS1aXS9nLEFFPS8tW2Etel0vZyxRMj0vXmRhdGFbLVx3LjpdKyQvaTtmdW5jdGlvbiBKMihlLHQpe2NvbnN0IG49ZGcodCk7bGV0IHI9dCxhPXN0O2lmKG4gaW4gZS5ub3JtYWwpcmV0dXJuIGUucHJvcGVydHlbZS5ub3JtYWxbbl1dO2lmKG4ubGVuZ3RoPjQmJm4uc2xpY2UoMCw0KT09PSJkYXRhIiYmUTIudGVzdCh0KSl7aWYodC5jaGFyQXQoNCk9PT0iLSIpe2NvbnN0IGk9dC5zbGljZSg1KS5yZXBsYWNlKEFFLHRVKTtyPSJkYXRhIitpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2kuc2xpY2UoMSl9ZWxzZXtjb25zdCBpPXQuc2xpY2UoNCk7aWYoIUFFLnRlc3QoaSkpe2xldCBvPWkucmVwbGFjZShaMixlVSk7by5jaGFyQXQoMCkhPT0iLSImJihvPSItIitvKSx0PSJkYXRhIitvfX1hPW5ifXJldHVybiBuZXcgYShyLHQpfWZ1bmN0aW9uIGVVKGUpe3JldHVybiItIitlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gdFUoZSl7cmV0dXJuIGUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9Y29uc3QgblU9T04oW0xOLFkyLFBOLEZOLFVOXSwiaHRtbCIpLHJiPU9OKFtMTixLMixQTixGTixVTl0sInN2ZyIpO2Z1bmN0aW9uIHJVKGUpe3JldHVybiBlLmpvaW4oIiAiKS50cmltKCl9dmFyIGFiPXt9LHhFPS9cL1wqW14qXSpcKisoW14vKl1bXipdKlwqKykqXC8vZyxhVT0vXG4vZyxpVT0vXlxzKi8sb1U9L14oXCo/Wy0jLypcXFx3XSsoXFtbMC05YS16Xy1dK1xdKT8pXHMqLyxzVT0vXjpccyovLGxVPS9eKCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTtdKSspLyx1VT0vXls7XHNdKi8sY1U9L15ccyt8XHMrJC9nLGRVPWAKYCxSRT0iLyIsX0U9IioiLHRyPSIiLHBVPSJjb21tZW50IixmVT0iZGVjbGFyYXRpb24iO2Z1bmN0aW9uIG1VKGUsdCl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmciKTtpZighZSlyZXR1cm5bXTt0PXR8fHt9O3ZhciBuPTEscj0xO2Z1bmN0aW9uIGEoeSl7dmFyIGI9eS5tYXRjaChhVSk7YiYmKG4rPWIubGVuZ3RoKTt2YXIgQT15Lmxhc3RJbmRleE9mKGRVKTtyPX5BP3kubGVuZ3RoLUE6cit5Lmxlbmd0aH1mdW5jdGlvbiBpKCl7dmFyIHk9e2xpbmU6bixjb2x1bW46cn07cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybiBiLnBvc2l0aW9uPW5ldyBvKHkpLHUoKSxifX1mdW5jdGlvbiBvKHkpe3RoaXMuc3RhcnQ9eSx0aGlzLmVuZD17bGluZTpuLGNvbHVtbjpyfSx0aGlzLnNvdXJjZT10LnNvdXJjZX1vLnByb3RvdHlwZS5jb250ZW50PWU7ZnVuY3Rpb24gcyh5KXt2YXIgYj1uZXcgRXJyb3IodC5zb3VyY2UrIjoiK24rIjoiK3IrIjogIit5KTtpZihiLnJlYXNvbj15LGIuZmlsZW5hbWU9dC5zb3VyY2UsYi5saW5lPW4sYi5jb2x1bW49cixiLnNvdXJjZT1lLCF0LnNpbGVudCl0aHJvdyBifWZ1bmN0aW9uIGwoeSl7dmFyIGI9eS5leGVjKGUpO2lmKGIpe3ZhciBBPWJbMF07cmV0dXJuIGEoQSksZT1lLnNsaWNlKEEubGVuZ3RoKSxifX1mdW5jdGlvbiB1KCl7bChpVSl9ZnVuY3Rpb24gYyh5KXt2YXIgYjtmb3IoeT15fHxbXTtiPWQoKTspYiE9PSExJiZ5LnB1c2goYik7cmV0dXJuIHl9ZnVuY3Rpb24gZCgpe3ZhciB5PWkoKTtpZighKFJFIT1lLmNoYXJBdCgwKXx8X0UhPWUuY2hhckF0KDEpKSl7Zm9yKHZhciBiPTI7dHIhPWUuY2hhckF0KGIpJiYoX0UhPWUuY2hhckF0KGIpfHxSRSE9ZS5jaGFyQXQoYisxKSk7KSsrYjtpZihiKz0yLHRyPT09ZS5jaGFyQXQoYi0xKSlyZXR1cm4gcygiRW5kIG9mIGNvbW1lbnQgbWlzc2luZyIpO3ZhciBBPWUuc2xpY2UoMixiLTIpO3JldHVybiByKz0yLGEoQSksZT1lLnNsaWNlKGIpLHIrPTIseSh7dHlwZTpwVSxjb21tZW50OkF9KX19ZnVuY3Rpb24gcCgpe3ZhciB5PWkoKSxiPWwob1UpO2lmKGIpe2lmKGQoKSwhbChzVSkpcmV0dXJuIHMoInByb3BlcnR5IG1pc3NpbmcgJzonIik7dmFyIEE9bChsVSksaD15KHt0eXBlOmZVLHByb3BlcnR5OklFKGJbMF0ucmVwbGFjZSh4RSx0cikpLHZhbHVlOkE/SUUoQVswXS5yZXBsYWNlKHhFLHRyKSk6dHJ9KTtyZXR1cm4gbCh1VSksaH19ZnVuY3Rpb24gZigpe3ZhciB5PVtdO2MoeSk7Zm9yKHZhciBiO2I9cCgpOyliIT09ITEmJih5LnB1c2goYiksYyh5KSk7cmV0dXJuIHl9cmV0dXJuIHUoKSxmKCl9ZnVuY3Rpb24gSUUoZSl7cmV0dXJuIGU/ZS5yZXBsYWNlKGNVLHRyKTp0cn12YXIgZ1U9bVUsaFU9Rm4mJkZuLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYWIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2FiLmRlZmF1bHQ9eVU7Y29uc3QgYlU9aFUoZ1UpO2Z1bmN0aW9uIHlVKGUsdCl7bGV0IG49bnVsbDtpZighZXx8dHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiBuO2NvbnN0IHI9KDAsYlUuZGVmYXVsdCkoZSksYT10eXBlb2YgdD09ImZ1bmN0aW9uIjtyZXR1cm4gci5mb3JFYWNoKGk9PntpZihpLnR5cGUhPT0iZGVjbGFyYXRpb24iKXJldHVybjtjb25zdHtwcm9wZXJ0eTpvLHZhbHVlOnN9PWk7YT90KG8scyxpKTpzJiYobj1ufHx7fSxuW29dPXMpfSksbn12YXIganM9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGpzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtqcy5jYW1lbENhc2U9dm9pZCAwO3ZhciB2VT0vXi0tW2EtekEtWjAtOV8tXSskLyxFVT0vLShbYS16XSkvZyxTVT0vXlteLV0rJC8sd1U9L14tKHdlYmtpdHxtb3p8bXN8b3xraHRtbCktLyxUVT0vXi0obXMpLS8sa1U9ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fFNVLnRlc3QoZSl8fHZVLnRlc3QoZSl9LEFVPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0sTkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4iIi5jb25jYXQodCwiLSIpfSx4VT1mdW5jdGlvbihlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD17fSksa1UoZSk/ZTooZT1lLnRvTG93ZXJDYXNlKCksdC5yZWFjdENvbXBhdD9lPWUucmVwbGFjZShUVSxORSk6ZT1lLnJlcGxhY2Uod1UsTkUpLGUucmVwbGFjZShFVSxBVSkpfTtqcy5jYW1lbENhc2U9eFU7dmFyIFJVPUZuJiZGbi5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX0sX1U9UlUoYWIpLElVPWpzO2Z1bmN0aW9uIG1nKGUsdCl7dmFyIG49e307cmV0dXJuIWV8fHR5cGVvZiBlIT0ic3RyaW5nInx8KDAsX1UuZGVmYXVsdCkoZSxmdW5jdGlvbihyLGEpe3ImJmEmJihuWygwLElVLmNhbWVsQ2FzZSkocix0KV09YSl9KSxufW1nLmRlZmF1bHQ9bWc7dmFyIE5VPW1nO2NvbnN0IENVPU5pKE5VKSxCTj0kTigiZW5kIiksaWI9JE4oInN0YXJ0Iik7ZnVuY3Rpb24gJE4oZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChuKXtjb25zdCByPW4mJm4ucG9zaXRpb24mJm4ucG9zaXRpb25bZV18fHt9O2lmKHR5cGVvZiByLmxpbmU9PSJudW1iZXIiJiZyLmxpbmU+MCYmdHlwZW9mIHIuY29sdW1uPT0ibnVtYmVyIiYmci5jb2x1bW4+MClyZXR1cm57bGluZTpyLmxpbmUsY29sdW1uOnIuY29sdW1uLG9mZnNldDp0eXBlb2Ygci5vZmZzZXQ9PSJudW1iZXIiJiZyLm9mZnNldD4tMT9yLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBPVShlKXtjb25zdCB0PWliKGUpLG49Qk4oZSk7aWYodCYmbilyZXR1cm57c3RhcnQ6dCxlbmQ6bn19ZnVuY3Rpb24gbmkoZSl7cmV0dXJuIWV8fHR5cGVvZiBlIT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gZXx8InR5cGUiaW4gZT9DRShlLnBvc2l0aW9uKToic3RhcnQiaW4gZXx8ImVuZCJpbiBlP0NFKGUpOiJsaW5lImluIGV8fCJjb2x1bW4iaW4gZT9nZyhlKToiIn1mdW5jdGlvbiBnZyhlKXtyZXR1cm4gT0UoZSYmZS5saW5lKSsiOiIrT0UoZSYmZS5jb2x1bW4pfWZ1bmN0aW9uIENFKGUpe3JldHVybiBnZyhlJiZlLnN0YXJ0KSsiLSIrZ2coZSYmZS5lbmQpfWZ1bmN0aW9uIE9FKGUpe3JldHVybiBlJiZ0eXBlb2YgZT09Im51bWJlciI/ZToxfWNsYXNzIFZlIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCxuLHIpe3N1cGVyKCksdHlwZW9mIG49PSJzdHJpbmciJiYocj1uLG49dm9pZCAwKTtsZXQgYT0iIixpPXt9LG89ITE7aWYobiYmKCJsaW5lImluIG4mJiJjb2x1bW4iaW4gbj9pPXtwbGFjZTpufToic3RhcnQiaW4gbiYmImVuZCJpbiBuP2k9e3BsYWNlOm59OiJ0eXBlImluIG4/aT17YW5jZXN0b3JzOltuXSxwbGFjZTpuLnBvc2l0aW9ufTppPXsuLi5ufSksdHlwZW9mIHQ9PSJzdHJpbmciP2E9dDohaS5jYXVzZSYmdCYmKG89ITAsYT10Lm1lc3NhZ2UsaS5jYXVzZT10KSwhaS5ydWxlSWQmJiFpLnNvdXJjZSYmdHlwZW9mIHI9PSJzdHJpbmciKXtjb25zdCBsPXIuaW5kZXhPZigiOiIpO2w9PT0tMT9pLnJ1bGVJZD1yOihpLnNvdXJjZT1yLnNsaWNlKDAsbCksaS5ydWxlSWQ9ci5zbGljZShsKzEpKX1pZighaS5wbGFjZSYmaS5hbmNlc3RvcnMmJmkuYW5jZXN0b3JzKXtjb25zdCBsPWkuYW5jZXN0b3JzW2kuYW5jZXN0b3JzLmxlbmd0aC0xXTtsJiYoaS5wbGFjZT1sLnBvc2l0aW9uKX1jb25zdCBzPWkucGxhY2UmJiJzdGFydCJpbiBpLnBsYWNlP2kucGxhY2Uuc3RhcnQ6aS5wbGFjZTt0aGlzLmFuY2VzdG9ycz1pLmFuY2VzdG9yc3x8dm9pZCAwLHRoaXMuY2F1c2U9aS5jYXVzZXx8dm9pZCAwLHRoaXMuY29sdW1uPXM/cy5jb2x1bW46dm9pZCAwLHRoaXMuZmF0YWw9dm9pZCAwLHRoaXMuZmlsZT0iIix0aGlzLm1lc3NhZ2U9YSx0aGlzLmxpbmU9cz9zLmxpbmU6dm9pZCAwLHRoaXMubmFtZT1uaShpLnBsYWNlKXx8IjE6MSIsdGhpcy5wbGFjZT1pLnBsYWNlfHx2b2lkIDAsdGhpcy5yZWFzb249dGhpcy5tZXNzYWdlLHRoaXMucnVsZUlkPWkucnVsZUlkfHx2b2lkIDAsdGhpcy5zb3VyY2U9aS5zb3VyY2V8fHZvaWQgMCx0aGlzLnN0YWNrPW8mJmkuY2F1c2UmJnR5cGVvZiBpLmNhdXNlLnN0YWNrPT0ic3RyaW5nIj9pLmNhdXNlLnN0YWNrOiIiLHRoaXMuYWN0dWFsPXZvaWQgMCx0aGlzLmV4cGVjdGVkPXZvaWQgMCx0aGlzLm5vdGU9dm9pZCAwLHRoaXMudXJsPXZvaWQgMH19VmUucHJvdG90eXBlLmZpbGU9IiI7VmUucHJvdG90eXBlLm5hbWU9IiI7VmUucHJvdG90eXBlLnJlYXNvbj0iIjtWZS5wcm90b3R5cGUubWVzc2FnZT0iIjtWZS5wcm90b3R5cGUuc3RhY2s9IiI7VmUucHJvdG90eXBlLmNvbHVtbj12b2lkIDA7VmUucHJvdG90eXBlLmxpbmU9dm9pZCAwO1ZlLnByb3RvdHlwZS5hbmNlc3RvcnM9dm9pZCAwO1ZlLnByb3RvdHlwZS5jYXVzZT12b2lkIDA7VmUucHJvdG90eXBlLmZhdGFsPXZvaWQgMDtWZS5wcm90b3R5cGUucGxhY2U9dm9pZCAwO1ZlLnByb3RvdHlwZS5ydWxlSWQ9dm9pZCAwO1ZlLnByb3RvdHlwZS5zb3VyY2U9dm9pZCAwO2NvbnN0IG9iPXt9Lmhhc093blByb3BlcnR5LExVPW5ldyBNYXAsRFU9L1tBLVpdL2csTVU9bmV3IFNldChbInRhYmxlIiwidGJvZHkiLCJ0aGVhZCIsInRmb290IiwidHIiXSksUFU9bmV3IFNldChbInRkIiwidGgiXSksek49Imh0dHBzOi8vZ2l0aHViLmNvbS9zeW50YXgtdHJlZS9oYXN0LXV0aWwtdG8tanN4LXJ1bnRpbWUiO2Z1bmN0aW9uIEZVKGUsdCl7aWYoIXR8fHQuRnJhZ21lbnQ9PT12b2lkIDApdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYEZyYWdtZW50YCBpbiBvcHRpb25zIik7Y29uc3Qgbj10LmZpbGVQYXRofHx2b2lkIDA7bGV0IHI7aWYodC5kZXZlbG9wbWVudCl7aWYodHlwZW9mIHQuanN4REVWIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBqc3hERVZgIGluIG9wdGlvbnMgd2hlbiBgZGV2ZWxvcG1lbnQ6IHRydWVgIik7cj1WVShuLHQuanN4REVWKX1lbHNle2lmKHR5cGVvZiB0LmpzeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBganN4YCBpbiBwcm9kdWN0aW9uIG9wdGlvbnMiKTtpZih0eXBlb2YgdC5qc3hzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBqc3hzYCBpbiBwcm9kdWN0aW9uIG9wdGlvbnMiKTtyPXFVKG4sdC5qc3gsdC5qc3hzKX1jb25zdCBhPXtGcmFnbWVudDp0LkZyYWdtZW50LGFuY2VzdG9yczpbXSxjb21wb25lbnRzOnQuY29tcG9uZW50c3x8e30sY3JlYXRlOnIsZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlOnQuZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlfHwicmVhY3QiLGV2YWx1YXRlcjp0LmNyZWF0ZUV2YWx1YXRlcj90LmNyZWF0ZUV2YWx1YXRlcigpOnZvaWQgMCxmaWxlUGF0aDpuLGlnbm9yZUludmFsaWRTdHlsZTp0Lmlnbm9yZUludmFsaWRTdHlsZXx8ITEscGFzc0tleXM6dC5wYXNzS2V5cyE9PSExLHBhc3NOb2RlOnQucGFzc05vZGV8fCExLHNjaGVtYTp0LnNwYWNlPT09InN2ZyI/cmI6blUsc3R5bGVQcm9wZXJ0eU5hbWVDYXNlOnQuc3R5bGVQcm9wZXJ0eU5hbWVDYXNlfHwiZG9tIix0YWJsZUNlbGxBbGlnblRvU3R5bGU6dC50YWJsZUNlbGxBbGlnblRvU3R5bGUhPT0hMX0saT1qTihhLGUsdm9pZCAwKTtyZXR1cm4gaSYmdHlwZW9mIGkhPSJzdHJpbmciP2k6YS5jcmVhdGUoZSxhLkZyYWdtZW50LHtjaGlsZHJlbjppfHx2b2lkIDB9LHZvaWQgMCl9ZnVuY3Rpb24gak4oZSx0LG4pe2lmKHQudHlwZT09PSJlbGVtZW50IilyZXR1cm4gVVUoZSx0LG4pO2lmKHQudHlwZT09PSJtZHhGbG93RXhwcmVzc2lvbiJ8fHQudHlwZT09PSJtZHhUZXh0RXhwcmVzc2lvbiIpcmV0dXJuIEJVKGUsdCk7aWYodC50eXBlPT09Im1keEpzeEZsb3dFbGVtZW50Inx8dC50eXBlPT09Im1keEpzeFRleHRFbGVtZW50IilyZXR1cm4gelUoZSx0LG4pO2lmKHQudHlwZT09PSJtZHhqc0VzbSIpcmV0dXJuICRVKGUsdCk7aWYodC50eXBlPT09InJvb3QiKXJldHVybiBqVShlLHQsbik7aWYodC50eXBlPT09InRleHQiKXJldHVybiBHVShlLHQpfWZ1bmN0aW9uIFVVKGUsdCxuKXtjb25zdCByPWUuc2NoZW1hO2xldCBhPXI7dC50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic3ZnIiYmci5zcGFjZT09PSJodG1sIiYmKGE9cmIsZS5zY2hlbWE9YSksZS5hbmNlc3RvcnMucHVzaCh0KTtjb25zdCBpPXFOKGUsdC50YWdOYW1lLCExKSxvPUhVKGUsdCk7bGV0IHM9bGIoZSx0KTtyZXR1cm4gTVUuaGFzKHQudGFnTmFtZSkmJihzPXMuZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiB0eXBlb2YgbD09InN0cmluZyI/IUgyKGwpOiEwfSkpLEdOKGUsbyxpLHQpLHNiKG8scyksZS5hbmNlc3RvcnMucG9wKCksZS5zY2hlbWE9cixlLmNyZWF0ZSh0LGksbyxuKX1mdW5jdGlvbiBCVShlLHQpe2lmKHQuZGF0YSYmdC5kYXRhLmVzdHJlZSYmZS5ldmFsdWF0ZXIpe2NvbnN0IHI9dC5kYXRhLmVzdHJlZS5ib2R5WzBdO3JldHVybiByLnR5cGUsZS5ldmFsdWF0ZXIuZXZhbHVhdGVFeHByZXNzaW9uKHIuZXhwcmVzc2lvbil9X2koZSx0LnBvc2l0aW9uKX1mdW5jdGlvbiAkVShlLHQpe2lmKHQuZGF0YSYmdC5kYXRhLmVzdHJlZSYmZS5ldmFsdWF0ZXIpcmV0dXJuIGUuZXZhbHVhdGVyLmV2YWx1YXRlUHJvZ3JhbSh0LmRhdGEuZXN0cmVlKTtfaShlLHQucG9zaXRpb24pfWZ1bmN0aW9uIHpVKGUsdCxuKXtjb25zdCByPWUuc2NoZW1hO2xldCBhPXI7dC5uYW1lPT09InN2ZyImJnIuc3BhY2U9PT0iaHRtbCImJihhPXJiLGUuc2NoZW1hPWEpLGUuYW5jZXN0b3JzLnB1c2godCk7Y29uc3QgaT10Lm5hbWU9PT1udWxsP2UuRnJhZ21lbnQ6cU4oZSx0Lm5hbWUsITApLG89V1UoZSx0KSxzPWxiKGUsdCk7cmV0dXJuIEdOKGUsbyxpLHQpLHNiKG8scyksZS5hbmNlc3RvcnMucG9wKCksZS5zY2hlbWE9cixlLmNyZWF0ZSh0LGksbyxuKX1mdW5jdGlvbiBqVShlLHQsbil7Y29uc3Qgcj17fTtyZXR1cm4gc2IocixsYihlLHQpKSxlLmNyZWF0ZSh0LGUuRnJhZ21lbnQscixuKX1mdW5jdGlvbiBHVShlLHQpe3JldHVybiB0LnZhbHVlfWZ1bmN0aW9uIEdOKGUsdCxuLHIpe3R5cGVvZiBuIT0ic3RyaW5nIiYmbiE9PWUuRnJhZ21lbnQmJmUucGFzc05vZGUmJih0Lm5vZGU9cil9ZnVuY3Rpb24gc2IoZSx0KXtpZih0Lmxlbmd0aD4wKXtjb25zdCBuPXQubGVuZ3RoPjE/dDp0WzBdO24mJihlLmNoaWxkcmVuPW4pfX1mdW5jdGlvbiBxVShlLHQsbil7cmV0dXJuIHI7ZnVuY3Rpb24gcihhLGksbyxzKXtjb25zdCB1PUFycmF5LmlzQXJyYXkoby5jaGlsZHJlbik/bjp0O3JldHVybiBzP3UoaSxvLHMpOnUoaSxvKX19ZnVuY3Rpb24gVlUoZSx0KXtyZXR1cm4gbjtmdW5jdGlvbiBuKHIsYSxpLG8pe2NvbnN0IHM9QXJyYXkuaXNBcnJheShpLmNoaWxkcmVuKSxsPWliKHIpO3JldHVybiB0KGEsaSxvLHMse2NvbHVtbk51bWJlcjpsP2wuY29sdW1uLTE6dm9pZCAwLGZpbGVOYW1lOmUsbGluZU51bWJlcjpsP2wubGluZTp2b2lkIDB9LHZvaWQgMCl9fWZ1bmN0aW9uIEhVKGUsdCl7Y29uc3Qgbj17fTtsZXQgcixhO2ZvcihhIGluIHQucHJvcGVydGllcylpZihhIT09ImNoaWxkcmVuIiYmb2IuY2FsbCh0LnByb3BlcnRpZXMsYSkpe2NvbnN0IGk9WVUoZSxhLHQucHJvcGVydGllc1thXSk7aWYoaSl7Y29uc3RbbyxzXT1pO2UudGFibGVDZWxsQWxpZ25Ub1N0eWxlJiZvPT09ImFsaWduIiYmdHlwZW9mIHM9PSJzdHJpbmciJiZQVS5oYXModC50YWdOYW1lKT9yPXM6bltvXT1zfX1pZihyKXtjb25zdCBpPW4uc3R5bGV8fChuLnN0eWxlPXt9KTtpW2Uuc3R5bGVQcm9wZXJ0eU5hbWVDYXNlPT09ImNzcyI/InRleHQtYWxpZ24iOiJ0ZXh0QWxpZ24iXT1yfXJldHVybiBufWZ1bmN0aW9uIFdVKGUsdCl7Y29uc3Qgbj17fTtmb3IoY29uc3QgciBvZiB0LmF0dHJpYnV0ZXMpaWYoci50eXBlPT09Im1keEpzeEV4cHJlc3Npb25BdHRyaWJ1dGUiKWlmKHIuZGF0YSYmci5kYXRhLmVzdHJlZSYmZS5ldmFsdWF0ZXIpe2NvbnN0IGk9ci5kYXRhLmVzdHJlZS5ib2R5WzBdO2kudHlwZTtjb25zdCBvPWkuZXhwcmVzc2lvbjtvLnR5cGU7Y29uc3Qgcz1vLnByb3BlcnRpZXNbMF07cy50eXBlLE9iamVjdC5hc3NpZ24obixlLmV2YWx1YXRlci5ldmFsdWF0ZUV4cHJlc3Npb24ocy5hcmd1bWVudCkpfWVsc2UgX2koZSx0LnBvc2l0aW9uKTtlbHNle2NvbnN0IGE9ci5uYW1lO2xldCBpO2lmKHIudmFsdWUmJnR5cGVvZiByLnZhbHVlPT0ib2JqZWN0IilpZihyLnZhbHVlLmRhdGEmJnIudmFsdWUuZGF0YS5lc3RyZWUmJmUuZXZhbHVhdGVyKXtjb25zdCBzPXIudmFsdWUuZGF0YS5lc3RyZWUuYm9keVswXTtzLnR5cGUsaT1lLmV2YWx1YXRlci5ldmFsdWF0ZUV4cHJlc3Npb24ocy5leHByZXNzaW9uKX1lbHNlIF9pKGUsdC5wb3NpdGlvbik7ZWxzZSBpPXIudmFsdWU9PT1udWxsPyEwOnIudmFsdWU7blthXT1pfXJldHVybiBufWZ1bmN0aW9uIGxiKGUsdCl7Y29uc3Qgbj1bXTtsZXQgcj0tMTtjb25zdCBhPWUucGFzc0tleXM/bmV3IE1hcDpMVTtmb3IoOysrcjx0LmNoaWxkcmVuLmxlbmd0aDspe2NvbnN0IGk9dC5jaGlsZHJlbltyXTtsZXQgbztpZihlLnBhc3NLZXlzKXtjb25zdCBsPWkudHlwZT09PSJlbGVtZW50Ij9pLnRhZ05hbWU6aS50eXBlPT09Im1keEpzeEZsb3dFbGVtZW50Inx8aS50eXBlPT09Im1keEpzeFRleHRFbGVtZW50Ij9pLm5hbWU6dm9pZCAwO2lmKGwpe2NvbnN0IHU9YS5nZXQobCl8fDA7bz1sKyItIit1LGEuc2V0KGwsdSsxKX19Y29uc3Qgcz1qTihlLGksbyk7cyE9PXZvaWQgMCYmbi5wdXNoKHMpfXJldHVybiBufWZ1bmN0aW9uIFlVKGUsdCxuKXtjb25zdCByPUoyKGUuc2NoZW1hLHQpO2lmKCEobj09bnVsbHx8dHlwZW9mIG49PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4obikpKXtpZihBcnJheS5pc0FycmF5KG4pJiYobj1yLmNvbW1hU2VwYXJhdGVkP3oyKG4pOnJVKG4pKSxyLnByb3BlcnR5PT09InN0eWxlIil7bGV0IGE9dHlwZW9mIG49PSJvYmplY3QiP246S1UoZSxTdHJpbmcobikpO3JldHVybiBlLnN0eWxlUHJvcGVydHlOYW1lQ2FzZT09PSJjc3MiJiYoYT1YVShhKSksWyJzdHlsZSIsYV19cmV0dXJuW2UuZWxlbWVudEF0dHJpYnV0ZU5hbWVDYXNlPT09InJlYWN0IiYmci5zcGFjZT9YMltyLnByb3BlcnR5XXx8ci5wcm9wZXJ0eTpyLmF0dHJpYnV0ZSxuXX19ZnVuY3Rpb24gS1UoZSx0KXt0cnl7cmV0dXJuIENVKHQse3JlYWN0Q29tcGF0OiEwfSl9Y2F0Y2gobil7aWYoZS5pZ25vcmVJbnZhbGlkU3R5bGUpcmV0dXJue307Y29uc3Qgcj1uLGE9bmV3IFZlKCJDYW5ub3QgcGFyc2UgYHN0eWxlYCBhdHRyaWJ1dGUiLHthbmNlc3RvcnM6ZS5hbmNlc3RvcnMsY2F1c2U6cixydWxlSWQ6InN0eWxlIixzb3VyY2U6Imhhc3QtdXRpbC10by1qc3gtcnVudGltZSJ9KTt0aHJvdyBhLmZpbGU9ZS5maWxlUGF0aHx8dm9pZCAwLGEudXJsPXpOKyIjY2Fubm90LXBhcnNlLXN0eWxlLWF0dHJpYnV0ZSIsYX19ZnVuY3Rpb24gcU4oZSx0LG4pe2xldCByO2lmKCFuKXI9e3R5cGU6IkxpdGVyYWwiLHZhbHVlOnR9O2Vsc2UgaWYodC5pbmNsdWRlcygiLiIpKXtjb25zdCBhPXQuc3BsaXQoIi4iKTtsZXQgaT0tMSxvO2Zvcig7KytpPGEubGVuZ3RoOyl7Y29uc3Qgcz13RShhW2ldKT97dHlwZToiSWRlbnRpZmllciIsbmFtZTphW2ldfTp7dHlwZToiTGl0ZXJhbCIsdmFsdWU6YVtpXX07bz1vP3t0eXBlOiJNZW1iZXJFeHByZXNzaW9uIixvYmplY3Q6byxwcm9wZXJ0eTpzLGNvbXB1dGVkOiEhKGkmJnMudHlwZT09PSJMaXRlcmFsIiksb3B0aW9uYWw6ITF9OnN9cj1vfWVsc2Ugcj13RSh0KSYmIS9eW2Etel0vLnRlc3QodCk/e3R5cGU6IklkZW50aWZpZXIiLG5hbWU6dH06e3R5cGU6IkxpdGVyYWwiLHZhbHVlOnR9O2lmKHIudHlwZT09PSJMaXRlcmFsIil7Y29uc3QgYT1yLnZhbHVlO3JldHVybiBvYi5jYWxsKGUuY29tcG9uZW50cyxhKT9lLmNvbXBvbmVudHNbYV06YX1pZihlLmV2YWx1YXRlcilyZXR1cm4gZS5ldmFsdWF0ZXIuZXZhbHVhdGVFeHByZXNzaW9uKHIpO19pKGUpfWZ1bmN0aW9uIF9pKGUsdCl7Y29uc3Qgbj1uZXcgVmUoIkNhbm5vdCBoYW5kbGUgTURYIGVzdHJlZXMgd2l0aG91dCBgY3JlYXRlRXZhbHVhdGVyYCIse2FuY2VzdG9yczplLmFuY2VzdG9ycyxwbGFjZTp0LHJ1bGVJZDoibWR4LWVzdHJlZSIsc291cmNlOiJoYXN0LXV0aWwtdG8tanN4LXJ1bnRpbWUifSk7dGhyb3cgbi5maWxlPWUuZmlsZVBhdGh8fHZvaWQgMCxuLnVybD16TisiI2Nhbm5vdC1oYW5kbGUtbWR4LWVzdHJlZXMtd2l0aG91dC1jcmVhdGVldmFsdWF0ZXIiLG59ZnVuY3Rpb24gWFUoZSl7Y29uc3QgdD17fTtsZXQgbjtmb3IobiBpbiBlKW9iLmNhbGwoZSxuKSYmKHRbWlUobildPWVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIFpVKGUpe2xldCB0PWUucmVwbGFjZShEVSxRVSk7cmV0dXJuIHQuc2xpY2UoMCwzKT09PSJtcy0iJiYodD0iLSIrdCksdH1mdW5jdGlvbiBRVShlKXtyZXR1cm4iLSIrZS50b0xvd2VyQ2FzZSgpfWNvbnN0ICRsPXthY3Rpb246WyJmb3JtIl0sY2l0ZTpbImJsb2NrcXVvdGUiLCJkZWwiLCJpbnMiLCJxIl0sZGF0YTpbIm9iamVjdCJdLGZvcm1BY3Rpb246WyJidXR0b24iLCJpbnB1dCJdLGhyZWY6WyJhIiwiYXJlYSIsImJhc2UiLCJsaW5rIl0saWNvbjpbIm1lbnVpdGVtIl0saXRlbUlkOm51bGwsbWFuaWZlc3Q6WyJodG1sIl0scGluZzpbImEiLCJhcmVhIl0scG9zdGVyOlsidmlkZW8iXSxzcmM6WyJhdWRpbyIsImVtYmVkIiwiaWZyYW1lIiwiaW1nIiwiaW5wdXQiLCJzY3JpcHQiLCJzb3VyY2UiLCJ0cmFjayIsInZpZGVvIl19LEpVPXt9O2Z1bmN0aW9uIGVCKGUsdCl7Y29uc3Qgbj1KVSxyPXR5cGVvZiBuLmluY2x1ZGVJbWFnZUFsdD09ImJvb2xlYW4iP24uaW5jbHVkZUltYWdlQWx0OiEwLGE9dHlwZW9mIG4uaW5jbHVkZUh0bWw9PSJib29sZWFuIj9uLmluY2x1ZGVIdG1sOiEwO3JldHVybiBWTihlLHIsYSl9ZnVuY3Rpb24gVk4oZSx0LG4pe2lmKHRCKGUpKXtpZigidmFsdWUiaW4gZSlyZXR1cm4gZS50eXBlPT09Imh0bWwiJiYhbj8iIjplLnZhbHVlO2lmKHQmJiJhbHQiaW4gZSYmZS5hbHQpcmV0dXJuIGUuYWx0O2lmKCJjaGlsZHJlbiJpbiBlKXJldHVybiBMRShlLmNoaWxkcmVuLHQsbil9cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/TEUoZSx0LG4pOiIifWZ1bmN0aW9uIExFKGUsdCxuKXtjb25zdCByPVtdO2xldCBhPS0xO2Zvcig7KythPGUubGVuZ3RoOylyW2FdPVZOKGVbYV0sdCxuKTtyZXR1cm4gci5qb2luKCIiKX1mdW5jdGlvbiB0QihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCIpfWNvbnN0IERFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtmdW5jdGlvbiB1YihlKXtjb25zdCB0PSImIitlKyI7IjtERS5pbm5lckhUTUw9dDtjb25zdCBuPURFLnRleHRDb250ZW50O3JldHVybiBuLmNoYXJDb2RlQXQobi5sZW5ndGgtMSk9PT01OSYmZSE9PSJzZW1pInx8bj09PXQ/ITE6bn1mdW5jdGlvbiB0bihlLHQsbixyKXtjb25zdCBhPWUubGVuZ3RoO2xldCBpPTAsbztpZih0PDA/dD0tdD5hPzA6YSt0OnQ9dD5hP2E6dCxuPW4+MD9uOjAsci5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShyKSxvLnVuc2hpZnQodCxuKSxlLnNwbGljZSguLi5vKTtlbHNlIGZvcihuJiZlLnNwbGljZSh0LG4pO2k8ci5sZW5ndGg7KW89ci5zbGljZShpLGkrMWU0KSxvLnVuc2hpZnQodCwwKSxlLnNwbGljZSguLi5vKSxpKz0xZTQsdCs9MWU0fWZ1bmN0aW9uIFJ0KGUsdCl7cmV0dXJuIGUubGVuZ3RoPjA/KHRuKGUsZS5sZW5ndGgsMCx0KSxlKTp0fWNvbnN0IE1FPXt9Lmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG5CKGUpe2NvbnN0IHQ9e307bGV0IG49LTE7Zm9yKDsrK248ZS5sZW5ndGg7KXJCKHQsZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gckIoZSx0KXtsZXQgbjtmb3IobiBpbiB0KXtjb25zdCBhPShNRS5jYWxsKGUsbik/ZVtuXTp2b2lkIDApfHwoZVtuXT17fSksaT10W25dO2xldCBvO2lmKGkpZm9yKG8gaW4gaSl7TUUuY2FsbChhLG8pfHwoYVtvXT1bXSk7Y29uc3Qgcz1pW29dO2FCKGFbb10sQXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOltdKX19fWZ1bmN0aW9uIGFCKGUsdCl7bGV0IG49LTE7Y29uc3Qgcj1bXTtmb3IoOysrbjx0Lmxlbmd0aDspKHRbbl0uYWRkPT09ImFmdGVyIj9lOnIpLnB1c2godFtuXSk7dG4oZSwwLDAscil9ZnVuY3Rpb24gSE4oZSx0KXtjb25zdCBuPU51bWJlci5wYXJzZUludChlLHQpO3JldHVybiBuPDl8fG49PT0xMXx8bj4xMyYmbjwzMnx8bj4xMjYmJm48MTYwfHxuPjU1Mjk1JiZuPDU3MzQ0fHxuPjY0OTc1JiZuPDY1MDA4fHwobiY2NTUzNSk9PT02NTUzNXx8KG4mNjU1MzUpPT09NjU1MzR8fG4+MTExNDExMT8i77+9IjpTdHJpbmcuZnJvbUNvZGVQb2ludChuKX1mdW5jdGlvbiBacihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9Y29uc3QgWHQ9SG4oL1tBLVphLXpdLyksZnQ9SG4oL1tcZEEtWmEtel0vKSxpQj1IbigvWyMtJyorXC0tOT0/QS1aXi1+XS8pO2Z1bmN0aW9uIGhnKGUpe3JldHVybiBlIT09bnVsbCYmKGU8MzJ8fGU9PT0xMjcpfWNvbnN0IGJnPUhuKC9cZC8pLG9CPUhuKC9bXGRBLUZhLWZdLyksc0I9SG4oL1shLS86LUBbLWB7LX5dLyk7ZnVuY3Rpb24gWShlKXtyZXR1cm4gZSE9PW51bGwmJmU8LTJ9ZnVuY3Rpb24gb3QoZSl7cmV0dXJuIGUhPT1udWxsJiYoZTwwfHxlPT09MzIpfWZ1bmN0aW9uIGFlKGUpe3JldHVybiBlPT09LTJ8fGU9PT0tMXx8ZT09PTMyfWNvbnN0IGxCPUhuKG5ldyBSZWdFeHAoIlxccHtQfXxcXHB7U30iLCJ1IikpLHVCPUhuKC9ccy8pO2Z1bmN0aW9uIEhuKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQobil7cmV0dXJuIG4hPT1udWxsJiZuPi0xJiZlLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuKSl9fWZ1bmN0aW9uIGdhKGUpe2NvbnN0IHQ9W107bGV0IG49LTEscj0wLGE9MDtmb3IoOysrbjxlLmxlbmd0aDspe2NvbnN0IGk9ZS5jaGFyQ29kZUF0KG4pO2xldCBvPSIiO2lmKGk9PT0zNyYmZnQoZS5jaGFyQ29kZUF0KG4rMSkpJiZmdChlLmNoYXJDb2RlQXQobisyKSkpYT0yO2Vsc2UgaWYoaTwxMjgpL1shIyQmLTs9Py1aX2Eten5dLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpfHwobz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpKTtlbHNlIGlmKGk+NTUyOTUmJmk8NTczNDQpe2NvbnN0IHM9ZS5jaGFyQ29kZUF0KG4rMSk7aTw1NjMyMCYmcz41NjMxOSYmczw1NzM0ND8obz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkscyksYT0xKTpvPSLvv70ifWVsc2Ugbz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpO28mJih0LnB1c2goZS5zbGljZShyLG4pLGVuY29kZVVSSUNvbXBvbmVudChvKSkscj1uK2ErMSxvPSIiKSxhJiYobis9YSxhPTApfXJldHVybiB0LmpvaW4oIiIpK2Uuc2xpY2Uocil9ZnVuY3Rpb24gdWUoZSx0LG4scil7Y29uc3QgYT1yP3ItMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IGk9MDtyZXR1cm4gbztmdW5jdGlvbiBvKGwpe3JldHVybiBhZShsKT8oZS5lbnRlcihuKSxzKGwpKTp0KGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIGFlKGwpJiZpKys8YT8oZS5jb25zdW1lKGwpLHMpOihlLmV4aXQobiksdChsKSl9fWNvbnN0IGNCPXt0b2tlbml6ZTpkQn07ZnVuY3Rpb24gZEIoZSl7Y29uc3QgdD1lLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCxyLGEpO2xldCBuO3JldHVybiB0O2Z1bmN0aW9uIHIocyl7aWYocz09PW51bGwpe2UuY29uc3VtZShzKTtyZXR1cm59cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUocyksZS5leGl0KCJsaW5lRW5kaW5nIiksdWUoZSx0LCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gYShzKXtyZXR1cm4gZS5lbnRlcigicGFyYWdyYXBoIiksaShzKX1mdW5jdGlvbiBpKHMpe2NvbnN0IGw9ZS5lbnRlcigiY2h1bmtUZXh0Iix7Y29udGVudFR5cGU6InRleHQiLHByZXZpb3VzOm59KTtyZXR1cm4gbiYmKG4ubmV4dD1sKSxuPWwsbyhzKX1mdW5jdGlvbiBvKHMpe2lmKHM9PT1udWxsKXtlLmV4aXQoImNodW5rVGV4dCIpLGUuZXhpdCgicGFyYWdyYXBoIiksZS5jb25zdW1lKHMpO3JldHVybn1yZXR1cm4gWShzKT8oZS5jb25zdW1lKHMpLGUuZXhpdCgiY2h1bmtUZXh0IiksaSk6KGUuY29uc3VtZShzKSxvKX19Y29uc3QgcEI9e3Rva2VuaXplOmZCfSxQRT17dG9rZW5pemU6bUJ9O2Z1bmN0aW9uIGZCKGUpe2NvbnN0IHQ9dGhpcyxuPVtdO2xldCByPTAsYSxpLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhnKXtpZihyPG4ubGVuZ3RoKXtjb25zdCBFPW5bcl07cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9RVsxXSxlLmF0dGVtcHQoRVswXS5jb250aW51YXRpb24sbCx1KShnKX1yZXR1cm4gdShnKX1mdW5jdGlvbiBsKGcpe2lmKHIrKyx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe3QuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsYSYmbSgpO2NvbnN0IEU9dC5ldmVudHMubGVuZ3RoO2xldCBUPUUsdjtmb3IoO1QtLTspaWYodC5ldmVudHNbVF1bMF09PT0iZXhpdCImJnQuZXZlbnRzW1RdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7dj10LmV2ZW50c1tUXVsxXS5lbmQ7YnJlYWt9aChyKTtsZXQgUj1FO2Zvcig7Ujx0LmV2ZW50cy5sZW5ndGg7KXQuZXZlbnRzW1JdWzFdLmVuZD17Li4udn0sUisrO3JldHVybiB0bih0LmV2ZW50cyxUKzEsMCx0LmV2ZW50cy5zbGljZShFKSksdC5ldmVudHMubGVuZ3RoPVIsdShnKX1yZXR1cm4gcyhnKX1mdW5jdGlvbiB1KGcpe2lmKHI9PT1uLmxlbmd0aCl7aWYoIWEpcmV0dXJuIHAoZyk7aWYoYS5jdXJyZW50Q29uc3RydWN0JiZhLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHkoZyk7dC5pbnRlcnJ1cHQ9ISEoYS5jdXJyZW50Q29uc3RydWN0JiYhYS5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhQRSxjLGQpKGcpfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGEmJm0oKSxoKHIpLHAoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gdC5wYXJzZXIubGF6eVt0Lm5vdygpLmxpbmVdPXIhPT1uLmxlbmd0aCxvPXQubm93KCkub2Zmc2V0LHkoZyl9ZnVuY3Rpb24gcChnKXtyZXR1cm4gdC5jb250YWluZXJTdGF0ZT17fSxlLmF0dGVtcHQoUEUsZix5KShnKX1mdW5jdGlvbiBmKGcpe3JldHVybiByKyssbi5wdXNoKFt0LmN1cnJlbnRDb25zdHJ1Y3QsdC5jb250YWluZXJTdGF0ZV0pLHAoZyl9ZnVuY3Rpb24geShnKXtpZihnPT09bnVsbCl7YSYmbSgpLGgoMCksZS5jb25zdW1lKGcpO3JldHVybn1yZXR1cm4gYT1hfHx0LnBhcnNlci5mbG93KHQubm93KCkpLGUuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6YSxjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6aX0pLGIoZyl9ZnVuY3Rpb24gYihnKXtpZihnPT09bnVsbCl7QShlLmV4aXQoImNodW5rRmxvdyIpLCEwKSxoKDApLGUuY29uc3VtZShnKTtyZXR1cm59cmV0dXJuIFkoZyk/KGUuY29uc3VtZShnKSxBKGUuZXhpdCgiY2h1bmtGbG93IikpLHI9MCx0LmludGVycnVwdD12b2lkIDAscyk6KGUuY29uc3VtZShnKSxiKX1mdW5jdGlvbiBBKGcsRSl7Y29uc3QgVD10LnNsaWNlU3RyZWFtKGcpO2lmKEUmJlQucHVzaChudWxsKSxnLnByZXZpb3VzPWksaSYmKGkubmV4dD1nKSxpPWcsYS5kZWZpbmVTa2lwKGcuc3RhcnQpLGEud3JpdGUoVCksdC5wYXJzZXIubGF6eVtnLnN0YXJ0LmxpbmVdKXtsZXQgdj1hLmV2ZW50cy5sZW5ndGg7Zm9yKDt2LS07KWlmKGEuZXZlbnRzW3ZdWzFdLnN0YXJ0Lm9mZnNldDxvJiYoIWEuZXZlbnRzW3ZdWzFdLmVuZHx8YS5ldmVudHNbdl1bMV0uZW5kLm9mZnNldD5vKSlyZXR1cm47Y29uc3QgUj10LmV2ZW50cy5sZW5ndGg7bGV0IF89UixJLEM7Zm9yKDtfLS07KWlmKHQuZXZlbnRzW19dWzBdPT09ImV4aXQiJiZ0LmV2ZW50c1tfXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe2lmKEkpe0M9dC5ldmVudHNbX11bMV0uZW5kO2JyZWFrfUk9ITB9Zm9yKGgociksdj1SO3Y8dC5ldmVudHMubGVuZ3RoOyl0LmV2ZW50c1t2XVsxXS5lbmQ9ey4uLkN9LHYrKzt0bih0LmV2ZW50cyxfKzEsMCx0LmV2ZW50cy5zbGljZShSKSksdC5ldmVudHMubGVuZ3RoPXZ9fWZ1bmN0aW9uIGgoZyl7bGV0IEU9bi5sZW5ndGg7Zm9yKDtFLS0gPmc7KXtjb25zdCBUPW5bRV07dC5jb250YWluZXJTdGF0ZT1UWzFdLFRbMF0uZXhpdC5jYWxsKHQsZSl9bi5sZW5ndGg9Z31mdW5jdGlvbiBtKCl7YS53cml0ZShbbnVsbF0pLGk9dm9pZCAwLGE9dm9pZCAwLHQuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDB9fWZ1bmN0aW9uIG1CKGUsdCxuKXtyZXR1cm4gdWUoZSxlLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCx0LG4pLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfWZ1bmN0aW9uIEZFKGUpe2lmKGU9PT1udWxsfHxvdChlKXx8dUIoZSkpcmV0dXJuIDE7aWYobEIoZSkpcmV0dXJuIDJ9ZnVuY3Rpb24gY2IoZSx0LG4pe2NvbnN0IHI9W107bGV0IGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KXtjb25zdCBpPWVbYV0ucmVzb2x2ZUFsbDtpJiYhci5pbmNsdWRlcyhpKSYmKHQ9aSh0LG4pLHIucHVzaChpKSl9cmV0dXJuIHR9Y29uc3QgeWc9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpnQix0b2tlbml6ZTpoQn07ZnVuY3Rpb24gZ0IoZSx0KXtsZXQgbj0tMSxyLGEsaSxvLHMsbCx1LGM7Zm9yKDsrK248ZS5sZW5ndGg7KWlmKGVbbl1bMF09PT0iZW50ZXIiJiZlW25dWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZlW25dWzFdLl9jbG9zZSl7Zm9yKHI9bjtyLS07KWlmKGVbcl1bMF09PT0iZXhpdCImJmVbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmVbcl1bMV0uX29wZW4mJnQuc2xpY2VTZXJpYWxpemUoZVtyXVsxXSkuY2hhckNvZGVBdCgwKT09PXQuc2xpY2VTZXJpYWxpemUoZVtuXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKGVbcl1bMV0uX2Nsb3NlfHxlW25dWzFdLl9vcGVuKSYmKGVbbl1bMV0uZW5kLm9mZnNldC1lW25dWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgoZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0K2Vbbl1bMV0uZW5kLm9mZnNldC1lW25dWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7bD1lW3JdWzFdLmVuZC5vZmZzZXQtZVtyXVsxXS5zdGFydC5vZmZzZXQ+MSYmZVtuXVsxXS5lbmQub2Zmc2V0LWVbbl1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2NvbnN0IGQ9ey4uLmVbcl1bMV0uZW5kfSxwPXsuLi5lW25dWzFdLnN0YXJ0fTtVRShkLC1sKSxVRShwLGwpLG89e3R5cGU6bD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmQsZW5kOnsuLi5lW3JdWzFdLmVuZH19LHM9e3R5cGU6bD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi5lW25dWzFdLnN0YXJ0fSxlbmQ6cH0saT17dHlwZTpsPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi5lW3JdWzFdLmVuZH0sZW5kOnsuLi5lW25dWzFdLnN0YXJ0fX0sYT17dHlwZTpsPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5zLmVuZH19LGVbcl1bMV0uZW5kPXsuLi5vLnN0YXJ0fSxlW25dWzFdLnN0YXJ0PXsuLi5zLmVuZH0sdT1bXSxlW3JdWzFdLmVuZC5vZmZzZXQtZVtyXVsxXS5zdGFydC5vZmZzZXQmJih1PVJ0KHUsW1siZW50ZXIiLGVbcl1bMV0sdF0sWyJleGl0IixlW3JdWzFdLHRdXSkpLHU9UnQodSxbWyJlbnRlciIsYSx0XSxbImVudGVyIixvLHRdLFsiZXhpdCIsbyx0XSxbImVudGVyIixpLHRdXSksdT1SdCh1LGNiKHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLGUuc2xpY2UocisxLG4pLHQpKSx1PVJ0KHUsW1siZXhpdCIsaSx0XSxbImVudGVyIixzLHRdLFsiZXhpdCIscyx0XSxbImV4aXQiLGEsdF1dKSxlW25dWzFdLmVuZC5vZmZzZXQtZVtuXVsxXS5zdGFydC5vZmZzZXQ/KGM9Mix1PVJ0KHUsW1siZW50ZXIiLGVbbl1bMV0sdF0sWyJleGl0IixlW25dWzFdLHRdXSkpOmM9MCx0bihlLHItMSxuLXIrMyx1KSxuPXIrdS5sZW5ndGgtYy0yO2JyZWFrfX1mb3Iobj0tMTsrK248ZS5sZW5ndGg7KWVbbl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJihlW25dWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gZX1mdW5jdGlvbiBoQihlLHQpe2NvbnN0IG49dGhpcy5wYXJzZXIuY29uc3RydWN0cy5hdHRlbnRpb25NYXJrZXJzLm51bGwscj10aGlzLnByZXZpb3VzLGE9RkUocik7bGV0IGk7cmV0dXJuIG87ZnVuY3Rpb24gbyhsKXtyZXR1cm4gaT1sLGUuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIikscyhsKX1mdW5jdGlvbiBzKGwpe2lmKGw9PT1pKXJldHVybiBlLmNvbnN1bWUobCkscztjb25zdCB1PWUuZXhpdCgiYXR0ZW50aW9uU2VxdWVuY2UiKSxjPUZFKGwpLGQ9IWN8fGM9PT0yJiZhfHxuLmluY2x1ZGVzKGwpLHA9IWF8fGE9PT0yJiZjfHxuLmluY2x1ZGVzKHIpO3JldHVybiB1Ll9vcGVuPSEhKGk9PT00Mj9kOmQmJihhfHwhcCkpLHUuX2Nsb3NlPSEhKGk9PT00Mj9wOnAmJihjfHwhZCkpLHQobCl9fWZ1bmN0aW9uIFVFKGUsdCl7ZS5jb2x1bW4rPXQsZS5vZmZzZXQrPXQsZS5fYnVmZmVySW5kZXgrPXR9Y29uc3QgYkI9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTp5Qn07ZnVuY3Rpb24geUIoZSx0LG4pe2xldCByPTA7cmV0dXJuIGE7ZnVuY3Rpb24gYShmKXtyZXR1cm4gZS5lbnRlcigiYXV0b2xpbmsiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLGl9ZnVuY3Rpb24gaShmKXtyZXR1cm4gWHQoZik/KGUuY29uc3VtZShmKSxvKTpmPT09NjQ/bihmKTp1KGYpfWZ1bmN0aW9uIG8oZil7cmV0dXJuIGY9PT00M3x8Zj09PTQ1fHxmPT09NDZ8fGZ0KGYpPyhyPTEscyhmKSk6dShmKX1mdW5jdGlvbiBzKGYpe3JldHVybiBmPT09NTg/KGUuY29uc3VtZShmKSxyPTAsbCk6KGY9PT00M3x8Zj09PTQ1fHxmPT09NDZ8fGZ0KGYpKSYmcisrPDMyPyhlLmNvbnN1bWUoZikscyk6KHI9MCx1KGYpKX1mdW5jdGlvbiBsKGYpe3JldHVybiBmPT09NjI/KGUuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLGUuZW50ZXIoImF1dG9saW5rTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxlLmV4aXQoImF1dG9saW5rIiksdCk6Zj09PW51bGx8fGY9PT0zMnx8Zj09PTYwfHxoZyhmKT9uKGYpOihlLmNvbnN1bWUoZiksbCl9ZnVuY3Rpb24gdShmKXtyZXR1cm4gZj09PTY0PyhlLmNvbnN1bWUoZiksYyk6aUIoZik/KGUuY29uc3VtZShmKSx1KTpuKGYpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGZ0KGYpP2QoZik6bihmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09NDY/KGUuY29uc3VtZShmKSxyPTAsYyk6Zj09PTYyPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIixlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOnAoZil9ZnVuY3Rpb24gcChmKXtpZigoZj09PTQ1fHxmdChmKSkmJnIrKzw2Myl7Y29uc3QgeT1mPT09NDU/cDpkO3JldHVybiBlLmNvbnN1bWUoZikseX1yZXR1cm4gbihmKX19Y29uc3QgR3M9e3BhcnRpYWw6ITAsdG9rZW5pemU6dkJ9O2Z1bmN0aW9uIHZCKGUsdCxuKXtyZXR1cm4gcjtmdW5jdGlvbiByKGkpe3JldHVybiBhZShpKT91ZShlLGEsImxpbmVQcmVmaXgiKShpKTphKGkpfWZ1bmN0aW9uIGEoaSl7cmV0dXJuIGk9PT1udWxsfHxZKGkpP3QoaSk6bihpKX19Y29uc3QgV049e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6U0J9LGV4aXQ6d0IsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6RUJ9O2Z1bmN0aW9uIEVCKGUsdCxuKXtjb25zdCByPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtpZihvPT09NjIpe2NvbnN0IHM9ci5jb250YWluZXJTdGF0ZTtyZXR1cm4gcy5vcGVufHwoZS5lbnRlcigiYmxvY2tRdW90ZSIse19jb250YWluZXI6ITB9KSxzLm9wZW49ITApLGUuZW50ZXIoImJsb2NrUXVvdGVQcmVmaXgiKSxlLmVudGVyKCJibG9ja1F1b3RlTWFya2VyIiksZS5jb25zdW1lKG8pLGUuZXhpdCgiYmxvY2tRdW90ZU1hcmtlciIpLGl9cmV0dXJuIG4obyl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gYWUobyk/KGUuZW50ZXIoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5jb25zdW1lKG8pLGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSx0KTooZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdChvKSl9fWZ1bmN0aW9uIFNCKGUsdCxuKXtjb25zdCByPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gYWUobyk/dWUoZSxpLCJsaW5lUHJlZml4IixyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOmkobyl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gZS5hdHRlbXB0KFdOLHQsbikobyl9fWZ1bmN0aW9uIHdCKGUpe2UuZXhpdCgiYmxvY2tRdW90ZSIpfWNvbnN0IFlOPXtuYW1lOiJjaGFyYWN0ZXJFc2NhcGUiLHRva2VuaXplOlRCfTtmdW5jdGlvbiBUQihlLHQsbil7cmV0dXJuIHI7ZnVuY3Rpb24gcihpKXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksZS5lbnRlcigiZXNjYXBlTWFya2VyIiksZS5jb25zdW1lKGkpLGUuZXhpdCgiZXNjYXBlTWFya2VyIiksYX1mdW5jdGlvbiBhKGkpe3JldHVybiBzQihpKT8oZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmNvbnN1bWUoaSksZS5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksdCk6bihpKX19Y29uc3QgS049e25hbWU6ImNoYXJhY3RlclJlZmVyZW5jZSIsdG9rZW5pemU6a0J9O2Z1bmN0aW9uIGtCKGUsdCxuKXtjb25zdCByPXRoaXM7bGV0IGE9MCxpLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksbH1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzU/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksdSk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksaT0zMSxvPWZ0LGMoZCkpfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIGQ9PT04OHx8ZD09PTEyMD8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksaT02LG89b0IsYyk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksaT03LG89YmcsYyhkKSl9ZnVuY3Rpb24gYyhkKXtpZihkPT09NTkmJmEpe2NvbnN0IHA9ZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpO3JldHVybiBvPT09ZnQmJiF1YihyLnNsaWNlU2VyaWFsaXplKHApKT9uKGQpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxlLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZSIpLHQpfXJldHVybiBvKGQpJiZhKys8aT8oZS5jb25zdW1lKGQpLGMpOm4oZCl9fWNvbnN0IEJFPXtwYXJ0aWFsOiEwLHRva2VuaXplOnhCfSwkRT17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6QUJ9O2Z1bmN0aW9uIEFCKGUsdCxuKXtjb25zdCByPXRoaXMsYT17cGFydGlhbDohMCx0b2tlbml6ZTpUfTtsZXQgaT0wLG89MCxzO3JldHVybiBsO2Z1bmN0aW9uIGwodil7cmV0dXJuIHUodil9ZnVuY3Rpb24gdSh2KXtjb25zdCBSPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gaT1SJiZSWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/UlsyXS5zbGljZVNlcmlhbGl6ZShSWzFdLCEwKS5sZW5ndGg6MCxzPXYsZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksYyh2KX1mdW5jdGlvbiBjKHYpe3JldHVybiB2PT09cz8obysrLGUuY29uc3VtZSh2KSxjKTpvPDM/bih2KTooZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGFlKHYpP3VlKGUsZCwid2hpdGVzcGFjZSIpKHYpOmQodikpfWZ1bmN0aW9uIGQodil7cmV0dXJuIHY9PT1udWxsfHxZKHYpPyhlLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLHIuaW50ZXJydXB0P3Qodik6ZS5jaGVjayhCRSxiLEUpKHYpKTooZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxwKHYpKX1mdW5jdGlvbiBwKHYpe3JldHVybiB2PT09bnVsbHx8WSh2KT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGQodikpOmFlKHYpPyhlLmV4aXQoImNodW5rU3RyaW5nIiksZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksdWUoZSxmLCJ3aGl0ZXNwYWNlIikodikpOnY9PT05NiYmdj09PXM/bih2KTooZS5jb25zdW1lKHYpLHApfWZ1bmN0aW9uIGYodil7cmV0dXJuIHY9PT1udWxsfHxZKHYpP2Qodik6KGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxlLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkseSh2KSl9ZnVuY3Rpb24geSh2KXtyZXR1cm4gdj09PW51bGx8fFkodik/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxkKHYpKTp2PT09OTYmJnY9PT1zP24odik6KGUuY29uc3VtZSh2KSx5KX1mdW5jdGlvbiBiKHYpe3JldHVybiBlLmF0dGVtcHQoYSxFLEEpKHYpfWZ1bmN0aW9uIEEodil7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodiksZS5leGl0KCJsaW5lRW5kaW5nIiksaH1mdW5jdGlvbiBoKHYpe3JldHVybiBpPjAmJmFlKHYpP3VlKGUsbSwibGluZVByZWZpeCIsaSsxKSh2KTptKHYpfWZ1bmN0aW9uIG0odil7cmV0dXJuIHY9PT1udWxsfHxZKHYpP2UuY2hlY2soQkUsYixFKSh2KTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGcodikpfWZ1bmN0aW9uIGcodil7cmV0dXJuIHY9PT1udWxsfHxZKHYpPyhlLmV4aXQoImNvZGVGbG93VmFsdWUiKSxtKHYpKTooZS5jb25zdW1lKHYpLGcpfWZ1bmN0aW9uIEUodil7cmV0dXJuIGUuZXhpdCgiY29kZUZlbmNlZCIpLHQodil9ZnVuY3Rpb24gVCh2LFIsXyl7bGV0IEk9MDtyZXR1cm4gQztmdW5jdGlvbiBDKEcpe3JldHVybiB2LmVudGVyKCJsaW5lRW5kaW5nIiksdi5jb25zdW1lKEcpLHYuZXhpdCgibGluZUVuZGluZyIpLEx9ZnVuY3Rpb24gTChHKXtyZXR1cm4gdi5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksYWUoRyk/dWUodixGLCJsaW5lUHJlZml4IixyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEcpOkYoRyl9ZnVuY3Rpb24gRihHKXtyZXR1cm4gRz09PXM/KHYuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIikscShHKSk6XyhHKX1mdW5jdGlvbiBxKEcpe3JldHVybiBHPT09cz8oSSsrLHYuY29uc3VtZShHKSxxKTpJPj1vPyh2LmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksYWUoRyk/dWUodixXLCJ3aGl0ZXNwYWNlIikoRyk6VyhHKSk6XyhHKX1mdW5jdGlvbiBXKEcpe3JldHVybiBHPT09bnVsbHx8WShHKT8odi5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxSKEcpKTpfKEcpfX19ZnVuY3Rpb24geEIoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvPT09bnVsbD9uKG8pOihlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLGkpfWZ1bmN0aW9uIGkobyl7cmV0dXJuIHIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXT9uKG8pOnQobyl9fWNvbnN0IHpsPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOl9CfSxSQj17cGFydGlhbDohMCx0b2tlbml6ZTpJQn07ZnVuY3Rpb24gX0IoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKHUpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSx1ZShlLGksImxpbmVQcmVmaXgiLDUpKHUpfWZ1bmN0aW9uIGkodSl7Y29uc3QgYz1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGMmJmNbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmY1syXS5zbGljZVNlcmlhbGl6ZShjWzFdLCEwKS5sZW5ndGg+PTQ/byh1KTpuKHUpfWZ1bmN0aW9uIG8odSl7cmV0dXJuIHU9PT1udWxsP2wodSk6WSh1KT9lLmF0dGVtcHQoUkIsbyxsKSh1KTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHModSkpfWZ1bmN0aW9uIHModSl7cmV0dXJuIHU9PT1udWxsfHxZKHUpPyhlLmV4aXQoImNvZGVGbG93VmFsdWUiKSxvKHUpKTooZS5jb25zdW1lKHUpLHMpfWZ1bmN0aW9uIGwodSl7cmV0dXJuIGUuZXhpdCgiY29kZUluZGVudGVkIiksdCh1KX19ZnVuY3Rpb24gSUIoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiByLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/bihvKTpZKG8pPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLGEpOnVlKGUsaSwibGluZVByZWZpeCIsNSkobyl9ZnVuY3Rpb24gaShvKXtjb25zdCBzPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gcyYmc1sxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZzWzJdLnNsaWNlU2VyaWFsaXplKHNbMV0sITApLmxlbmd0aD49ND90KG8pOlkobyk/YShvKTpuKG8pfX1jb25zdCBOQj17bmFtZToiY29kZVRleHQiLHByZXZpb3VzOk9CLHJlc29sdmU6Q0IsdG9rZW5pemU6TEJ9O2Z1bmN0aW9uIENCKGUpe2xldCB0PWUubGVuZ3RoLTQsbj0zLHIsYTtpZigoZVtuXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxlW25dWzFdLnR5cGU9PT0ic3BhY2UiKSYmKGVbdF1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8ZVt0XVsxXS50eXBlPT09InNwYWNlIikpe2ZvcihyPW47KytyPHQ7KWlmKGVbcl1bMV0udHlwZT09PSJjb2RlVGV4dERhdGEiKXtlW25dWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIsZVt0XVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLG4rPTIsdC09MjticmVha319Zm9yKHI9bi0xLHQrKzsrK3I8PXQ7KWE9PT12b2lkIDA/ciE9PXQmJmVbcl1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmKGE9cik6KHI9PT10fHxlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiYoZVthXVsxXS50eXBlPSJjb2RlVGV4dERhdGEiLHIhPT1hKzImJihlW2FdWzFdLmVuZD1lW3ItMV1bMV0uZW5kLGUuc3BsaWNlKGErMixyLWEtMiksdC09ci1hLTIscj1hKzIpLGE9dm9pZCAwKTtyZXR1cm4gZX1mdW5jdGlvbiBPQihlKXtyZXR1cm4gZSE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIExCKGUsdCxuKXtsZXQgcj0wLGEsaTtyZXR1cm4gbztmdW5jdGlvbiBvKGQpe3JldHVybiBlLmVudGVyKCJjb2RlVGV4dCIpLGUuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxzKGQpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIGQ9PT05Nj8oZS5jb25zdW1lKGQpLHIrKyxzKTooZS5leGl0KCJjb2RlVGV4dFNlcXVlbmNlIiksbChkKSl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PW51bGw/bihkKTpkPT09MzI/KGUuZW50ZXIoInNwYWNlIiksZS5jb25zdW1lKGQpLGUuZXhpdCgic3BhY2UiKSxsKTpkPT09OTY/KGk9ZS5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGE9MCxjKGQpKTpZKGQpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGQpLGUuZXhpdCgibGluZUVuZGluZyIpLGwpOihlLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGQpKX1mdW5jdGlvbiB1KGQpe3JldHVybiBkPT09bnVsbHx8ZD09PTMyfHxkPT09OTZ8fFkoZCk/KGUuZXhpdCgiY29kZVRleHREYXRhIiksbChkKSk6KGUuY29uc3VtZShkKSx1KX1mdW5jdGlvbiBjKGQpe3JldHVybiBkPT09OTY/KGUuY29uc3VtZShkKSxhKyssYyk6YT09PXI/KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGUuZXhpdCgiY29kZVRleHQiKSx0KGQpKTooaS50eXBlPSJjb2RlVGV4dERhdGEiLHUoZCkpfX1jbGFzcyBEQntjb25zdHJ1Y3Rvcih0KXt0aGlzLmxlZnQ9dD9bLi4udF06W10sdGhpcy5yaWdodD1bXX1nZXQodCl7aWYodDwwfHx0Pj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK3QrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIHQ8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbdF06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC10K3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UodCxuKXtjb25zdCByPW4/P051bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gcjx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdC5zbGljZSh0LHIpOnQ+dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLXIrdGhpcy5sZWZ0Lmxlbmd0aCx0aGlzLnJpZ2h0Lmxlbmd0aC10K3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKTp0aGlzLmxlZnQuc2xpY2UodCkuY29uY2F0KHRoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtcit0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCkpfXNwbGljZSh0LG4scil7Y29uc3QgYT1ufHwwO3RoaXMuc2V0Q3Vyc29yKE1hdGgudHJ1bmModCkpO2NvbnN0IGk9dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtYSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiByJiZDYSh0aGlzLmxlZnQsciksaS5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2godCl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaCh0KX1wdXNoTWFueSh0KXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLENhKHRoaXMubGVmdCx0KX11bnNoaWZ0KHQpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaCh0KX11bnNoaWZ0TWFueSh0KXt0aGlzLnNldEN1cnNvcigwKSxDYSh0aGlzLnJpZ2h0LHQucmV2ZXJzZSgpKX1zZXRDdXJzb3IodCl7aWYoISh0PT09dGhpcy5sZWZ0Lmxlbmd0aHx8dD50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fHQ8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKHQ8dGhpcy5sZWZ0Lmxlbmd0aCl7Y29uc3Qgbj10aGlzLmxlZnQuc3BsaWNlKHQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtDYSh0aGlzLnJpZ2h0LG4ucmV2ZXJzZSgpKX1lbHNle2NvbnN0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aC10LE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7Q2EodGhpcy5sZWZ0LG4ucmV2ZXJzZSgpKX19fWZ1bmN0aW9uIENhKGUsdCl7bGV0IG49MDtpZih0Lmxlbmd0aDwxZTQpZS5wdXNoKC4uLnQpO2Vsc2UgZm9yKDtuPHQubGVuZ3RoOyllLnB1c2goLi4udC5zbGljZShuLG4rMWU0KSksbis9MWU0fWZ1bmN0aW9uIFhOKGUpe2NvbnN0IHQ9e307bGV0IG49LTEscixhLGksbyxzLGwsdTtjb25zdCBjPW5ldyBEQihlKTtmb3IoOysrbjxjLmxlbmd0aDspe2Zvcig7biBpbiB0OyluPXRbbl07aWYocj1jLmdldChuKSxuJiZyWzFdLnR5cGU9PT0iY2h1bmtGbG93IiYmYy5nZXQobi0xKVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4IiYmKGw9clsxXS5fdG9rZW5pemVyLmV2ZW50cyxpPTAsaTxsLmxlbmd0aCYmbFtpXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayImJihpKz0yKSxpPGwubGVuZ3RoJiZsW2ldWzFdLnR5cGU9PT0iY29udGVudCIpKWZvcig7KytpPGwubGVuZ3RoJiZsW2ldWzFdLnR5cGUhPT0iY29udGVudCI7KWxbaV1bMV0udHlwZT09PSJjaHVua1RleHQiJiYobFtpXVsxXS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITAsaSsrKTtpZihyWzBdPT09ImVudGVyIilyWzFdLmNvbnRlbnRUeXBlJiYoT2JqZWN0LmFzc2lnbih0LE1CKGMsbikpLG49dFtuXSx1PSEwKTtlbHNlIGlmKHJbMV0uX2NvbnRhaW5lcil7Zm9yKGk9bixhPXZvaWQgMDtpLS07KWlmKG89Yy5nZXQoaSksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKGEmJihjLmdldChhKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLGE9aSk7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7YSYmKHJbMV0uZW5kPXsuLi5jLmdldChhKVsxXS5zdGFydH0scz1jLnNsaWNlKGEsbikscy51bnNoaWZ0KHIpLGMuc3BsaWNlKGEsbi1hKzEscykpfX1yZXR1cm4gdG4oZSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxjLnNsaWNlKDApKSwhdX1mdW5jdGlvbiBNQihlLHQpe2NvbnN0IG49ZS5nZXQodClbMV0scj1lLmdldCh0KVsyXTtsZXQgYT10LTE7Y29uc3QgaT1bXTtsZXQgbz1uLl90b2tlbml6ZXI7b3x8KG89ci5wYXJzZXJbbi5jb250ZW50VHlwZV0obi5zdGFydCksbi5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2NvbnN0IHM9by5ldmVudHMsbD1bXSx1PXt9O2xldCBjLGQscD0tMSxmPW4seT0wLGI9MDtjb25zdCBBPVtiXTtmb3IoO2Y7KXtmb3IoO2UuZ2V0KCsrYSlbMV0hPT1mOyk7aS5wdXNoKGEpLGYuX3Rva2VuaXplcnx8KGM9ci5zbGljZVN0cmVhbShmKSxmLm5leHR8fGMucHVzaChudWxsKSxkJiZvLmRlZmluZVNraXAoZi5zdGFydCksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUoYyksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksZD1mLGY9Zi5uZXh0fWZvcihmPW47KytwPHMubGVuZ3RoOylzW3BdWzBdPT09ImV4aXQiJiZzW3AtMV1bMF09PT0iZW50ZXIiJiZzW3BdWzFdLnR5cGU9PT1zW3AtMV1bMV0udHlwZSYmc1twXVsxXS5zdGFydC5saW5lIT09c1twXVsxXS5lbmQubGluZSYmKGI9cCsxLEEucHVzaChiKSxmLl90b2tlbml6ZXI9dm9pZCAwLGYucHJldmlvdXM9dm9pZCAwLGY9Zi5uZXh0KTtmb3Ioby5ldmVudHM9W10sZj8oZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCk6QS5wb3AoKSxwPUEubGVuZ3RoO3AtLTspe2NvbnN0IGg9cy5zbGljZShBW3BdLEFbcCsxXSksbT1pLnBvcCgpO2wucHVzaChbbSxtK2gubGVuZ3RoLTFdKSxlLnNwbGljZShtLDIsaCl9Zm9yKGwucmV2ZXJzZSgpLHA9LTE7KytwPGwubGVuZ3RoOyl1W3krbFtwXVswXV09eStsW3BdWzFdLHkrPWxbcF1bMV0tbFtwXVswXS0xO3JldHVybiB1fWNvbnN0IFBCPXtyZXNvbHZlOlVCLHRva2VuaXplOkJCfSxGQj17cGFydGlhbDohMCx0b2tlbml6ZTokQn07ZnVuY3Rpb24gVUIoZSl7cmV0dXJuIFhOKGUpLGV9ZnVuY3Rpb24gQkIoZSx0KXtsZXQgbjtyZXR1cm4gcjtmdW5jdGlvbiByKHMpe3JldHVybiBlLmVudGVyKCJjb250ZW50Iiksbj1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCJ9KSxhKHMpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIHM9PT1udWxsP2kocyk6WShzKT9lLmNoZWNrKEZCLG8saSkocyk6KGUuY29uc3VtZShzKSxhKX1mdW5jdGlvbiBpKHMpe3JldHVybiBlLmV4aXQoImNodW5rQ29udGVudCIpLGUuZXhpdCgiY29udGVudCIpLHQocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gZS5jb25zdW1lKHMpLGUuZXhpdCgiY2h1bmtDb250ZW50Iiksbi5uZXh0PWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50IixwcmV2aW91czpufSksbj1uLm5leHQsYX19ZnVuY3Rpb24gJEIoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmV4aXQoImNodW5rQ29udGVudCIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksdWUoZSxpLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gaShvKXtpZihvPT09bnVsbHx8WShvKSlyZXR1cm4gbihvKTtjb25zdCBzPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hci5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpJiZzJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnNbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoPj00P3Qobyk6ZS5pbnRlcnJ1cHQoci5wYXJzZXIuY29uc3RydWN0cy5mbG93LG4sdCkobyl9fWZ1bmN0aW9uIFpOKGUsdCxuLHIsYSxpLG8scyxsKXtjb25zdCB1PWx8fE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtsZXQgYz0wO3JldHVybiBkO2Z1bmN0aW9uIGQoaCl7cmV0dXJuIGg9PT02MD8oZS5lbnRlcihyKSxlLmVudGVyKGEpLGUuZW50ZXIoaSksZS5jb25zdW1lKGgpLGUuZXhpdChpKSxwKTpoPT09bnVsbHx8aD09PTMyfHxoPT09NDF8fGhnKGgpP24oaCk6KGUuZW50ZXIociksZS5lbnRlcihvKSxlLmVudGVyKHMpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxiKGgpKX1mdW5jdGlvbiBwKGgpe3JldHVybiBoPT09NjI/KGUuZW50ZXIoaSksZS5jb25zdW1lKGgpLGUuZXhpdChpKSxlLmV4aXQoYSksZS5leGl0KHIpLHQpOihlLmVudGVyKHMpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxmKGgpKX1mdW5jdGlvbiBmKGgpe3JldHVybiBoPT09NjI/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQocykscChoKSk6aD09PW51bGx8fGg9PT02MHx8WShoKT9uKGgpOihlLmNvbnN1bWUoaCksaD09PTkyP3k6Zil9ZnVuY3Rpb24geShoKXtyZXR1cm4gaD09PTYwfHxoPT09NjJ8fGg9PT05Mj8oZS5jb25zdW1lKGgpLGYpOmYoaCl9ZnVuY3Rpb24gYihoKXtyZXR1cm4hYyYmKGg9PT1udWxsfHxoPT09NDF8fG90KGgpKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxlLmV4aXQobyksZS5leGl0KHIpLHQoaCkpOmM8dSYmaD09PTQwPyhlLmNvbnN1bWUoaCksYysrLGIpOmg9PT00MT8oZS5jb25zdW1lKGgpLGMtLSxiKTpoPT09bnVsbHx8aD09PTMyfHxoPT09NDB8fGhnKGgpP24oaCk6KGUuY29uc3VtZShoKSxoPT09OTI/QTpiKX1mdW5jdGlvbiBBKGgpe3JldHVybiBoPT09NDB8fGg9PT00MXx8aD09PTkyPyhlLmNvbnN1bWUoaCksYik6YihoKX19ZnVuY3Rpb24gUU4oZSx0LG4scixhLGkpe2NvbnN0IG89dGhpcztsZXQgcz0wLGw7cmV0dXJuIHU7ZnVuY3Rpb24gdShmKXtyZXR1cm4gZS5lbnRlcihyKSxlLmVudGVyKGEpLGUuY29uc3VtZShmKSxlLmV4aXQoYSksZS5lbnRlcihpKSxjfWZ1bmN0aW9uIGMoZil7cmV0dXJuIHM+OTk5fHxmPT09bnVsbHx8Zj09PTkxfHxmPT09OTMmJiFsfHxmPT09OTQmJiFzJiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBvLnBhcnNlci5jb25zdHJ1Y3RzP24oZik6Zj09PTkzPyhlLmV4aXQoaSksZS5lbnRlcihhKSxlLmNvbnN1bWUoZiksZS5leGl0KGEpLGUuZXhpdChyKSx0KTpZKGYpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGYpLGUuZXhpdCgibGluZUVuZGluZyIpLGMpOihlLmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksZChmKSl9ZnVuY3Rpb24gZChmKXtyZXR1cm4gZj09PW51bGx8fGY9PT05MXx8Zj09PTkzfHxZKGYpfHxzKys+OTk5PyhlLmV4aXQoImNodW5rU3RyaW5nIiksYyhmKSk6KGUuY29uc3VtZShmKSxsfHwobD0hYWUoZikpLGY9PT05Mj9wOmQpfWZ1bmN0aW9uIHAoZil7cmV0dXJuIGY9PT05MXx8Zj09PTkyfHxmPT09OTM/KGUuY29uc3VtZShmKSxzKyssZCk6ZChmKX19ZnVuY3Rpb24gSk4oZSx0LG4scixhLGkpe2xldCBvO3JldHVybiBzO2Z1bmN0aW9uIHMocCl7cmV0dXJuIHA9PT0zNHx8cD09PTM5fHxwPT09NDA/KGUuZW50ZXIociksZS5lbnRlcihhKSxlLmNvbnN1bWUocCksZS5leGl0KGEpLG89cD09PTQwPzQxOnAsbCk6bihwKX1mdW5jdGlvbiBsKHApe3JldHVybiBwPT09bz8oZS5lbnRlcihhKSxlLmNvbnN1bWUocCksZS5leGl0KGEpLGUuZXhpdChyKSx0KTooZS5lbnRlcihpKSx1KHApKX1mdW5jdGlvbiB1KHApe3JldHVybiBwPT09bz8oZS5leGl0KGkpLGwobykpOnA9PT1udWxsP24ocCk6WShwKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShwKSxlLmV4aXQoImxpbmVFbmRpbmciKSx1ZShlLHUsImxpbmVQcmVmaXgiKSk6KGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxjKHApKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09b3x8cD09PW51bGx8fFkocCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSx1KHApKTooZS5jb25zdW1lKHApLHA9PT05Mj9kOmMpfWZ1bmN0aW9uIGQocCl7cmV0dXJuIHA9PT1vfHxwPT09OTI/KGUuY29uc3VtZShwKSxjKTpjKHApfX1mdW5jdGlvbiByaShlLHQpe2xldCBuO3JldHVybiByO2Z1bmN0aW9uIHIoYSl7cmV0dXJuIFkoYSk/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoYSksZS5leGl0KCJsaW5lRW5kaW5nIiksbj0hMCxyKTphZShhKT91ZShlLHIsbj8ibGluZVByZWZpeCI6ImxpbmVTdWZmaXgiKShhKTp0KGEpfX1jb25zdCB6Qj17bmFtZToiZGVmaW5pdGlvbiIsdG9rZW5pemU6R0J9LGpCPXtwYXJ0aWFsOiEwLHRva2VuaXplOnFCfTtmdW5jdGlvbiBHQihlLHQsbil7Y29uc3Qgcj10aGlzO2xldCBhO3JldHVybiBpO2Z1bmN0aW9uIGkoZil7cmV0dXJuIGUuZW50ZXIoImRlZmluaXRpb24iKSxvKGYpfWZ1bmN0aW9uIG8oZil7cmV0dXJuIFFOLmNhbGwocixlLHMsbiwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIikoZil9ZnVuY3Rpb24gcyhmKXtyZXR1cm4gYT1acihyLnNsaWNlU2VyaWFsaXplKHIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLGY9PT01OD8oZS5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxsKTpuKGYpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIG90KGYpP3JpKGUsdSkoZik6dShmKX1mdW5jdGlvbiB1KGYpe3JldHVybiBaTihlLGMsbiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciKShmKX1mdW5jdGlvbiBjKGYpe3JldHVybiBlLmF0dGVtcHQoakIsZCxkKShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBhZShmKT91ZShlLHAsIndoaXRlc3BhY2UiKShmKTpwKGYpfWZ1bmN0aW9uIHAoZil7cmV0dXJuIGY9PT1udWxsfHxZKGYpPyhlLmV4aXQoImRlZmluaXRpb24iKSxyLnBhcnNlci5kZWZpbmVkLnB1c2goYSksdChmKSk6bihmKX19ZnVuY3Rpb24gcUIoZSx0LG4pe3JldHVybiByO2Z1bmN0aW9uIHIocyl7cmV0dXJuIG90KHMpP3JpKGUsYSkocyk6bihzKX1mdW5jdGlvbiBhKHMpe3JldHVybiBKTihlLGksbiwiZGVmaW5pdGlvblRpdGxlIiwiZGVmaW5pdGlvblRpdGxlTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIikocyl9ZnVuY3Rpb24gaShzKXtyZXR1cm4gYWUocyk/dWUoZSxvLCJ3aGl0ZXNwYWNlIikocyk6byhzKX1mdW5jdGlvbiBvKHMpe3JldHVybiBzPT09bnVsbHx8WShzKT90KHMpOm4ocyl9fWNvbnN0IFZCPXtuYW1lOiJoYXJkQnJlYWtFc2NhcGUiLHRva2VuaXplOkhCfTtmdW5jdGlvbiBIQihlLHQsbil7cmV0dXJuIHI7ZnVuY3Rpb24gcihpKXtyZXR1cm4gZS5lbnRlcigiaGFyZEJyZWFrRXNjYXBlIiksZS5jb25zdW1lKGkpLGF9ZnVuY3Rpb24gYShpKXtyZXR1cm4gWShpKT8oZS5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSx0KGkpKTpuKGkpfX1jb25zdCBXQj17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpZQix0b2tlbml6ZTpLQn07ZnVuY3Rpb24gWUIoZSx0KXtsZXQgbj1lLmxlbmd0aC0yLHI9MyxhLGk7cmV0dXJuIGVbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHIrPTIpLG4tMj5yJiZlW25dWzFdLnR5cGU9PT0id2hpdGVzcGFjZSImJihuLT0yKSxlW25dWzFdLnR5cGU9PT0iYXR4SGVhZGluZ1NlcXVlbmNlIiYmKHI9PT1uLTF8fG4tND5yJiZlW24tMl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIikmJihuLT1yKzE9PT1uPzI6NCksbj5yJiYoYT17dHlwZToiYXR4SGVhZGluZ1RleHQiLHN0YXJ0OmVbcl1bMV0uc3RhcnQsZW5kOmVbbl1bMV0uZW5kfSxpPXt0eXBlOiJjaHVua1RleHQiLHN0YXJ0OmVbcl1bMV0uc3RhcnQsZW5kOmVbbl1bMV0uZW5kLGNvbnRlbnRUeXBlOiJ0ZXh0In0sdG4oZSxyLG4tcisxLFtbImVudGVyIixhLHRdLFsiZW50ZXIiLGksdF0sWyJleGl0IixpLHRdLFsiZXhpdCIsYSx0XV0pKSxlfWZ1bmN0aW9uIEtCKGUsdCxuKXtsZXQgcj0wO3JldHVybiBhO2Z1bmN0aW9uIGEoYyl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmciKSxpKGMpfWZ1bmN0aW9uIGkoYyl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8oYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gYz09PTM1JiZyKys8Nj8oZS5jb25zdW1lKGMpLG8pOmM9PT1udWxsfHxvdChjKT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKGMpKTpuKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT0zNT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbChjKSk6Yz09PW51bGx8fFkoYyk/KGUuZXhpdCgiYXR4SGVhZGluZyIpLHQoYykpOmFlKGMpP3VlKGUscywid2hpdGVzcGFjZSIpKGMpOihlLmVudGVyKCJhdHhIZWFkaW5nVGV4dCIpLHUoYykpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIGM9PT0zNT8oZS5jb25zdW1lKGMpLGwpOihlLmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLHMoYykpfWZ1bmN0aW9uIHUoYyl7cmV0dXJuIGM9PT1udWxsfHxjPT09MzV8fG90KGMpPyhlLmV4aXQoImF0eEhlYWRpbmdUZXh0IikscyhjKSk6KGUuY29uc3VtZShjKSx1KX19Y29uc3QgWEI9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSx6RT1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXSxaQj17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzplJCx0b2tlbml6ZTp0JH0sUUI9e3BhcnRpYWw6ITAsdG9rZW5pemU6ciR9LEpCPXtwYXJ0aWFsOiEwLHRva2VuaXplOm4kfTtmdW5jdGlvbiBlJChlKXtsZXQgdD1lLmxlbmd0aDtmb3IoO3QtLSYmIShlW3RdWzBdPT09ImVudGVyIiYmZVt0XVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gdD4xJiZlW3QtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKGVbdF1bMV0uc3RhcnQ9ZVt0LTJdWzFdLnN0YXJ0LGVbdCsxXVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZS5zcGxpY2UodC0yLDIpKSxlfWZ1bmN0aW9uIHQkKGUsdCxuKXtjb25zdCByPXRoaXM7bGV0IGEsaSxvLHMsbDtyZXR1cm4gdTtmdW5jdGlvbiB1KHgpe3JldHVybiBjKHgpfWZ1bmN0aW9uIGMoeCl7cmV0dXJuIGUuZW50ZXIoImh0bWxGbG93IiksZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksZS5jb25zdW1lKHgpLGR9ZnVuY3Rpb24gZCh4KXtyZXR1cm4geD09PTMzPyhlLmNvbnN1bWUoeCkscCk6eD09PTQ3PyhlLmNvbnN1bWUoeCksaT0hMCxiKTp4PT09NjM/KGUuY29uc3VtZSh4KSxhPTMsci5pbnRlcnJ1cHQ/dDpTKTpYdCh4KT8oZS5jb25zdW1lKHgpLG89U3RyaW5nLmZyb21DaGFyQ29kZSh4KSxBKTpuKHgpfWZ1bmN0aW9uIHAoeCl7cmV0dXJuIHg9PT00NT8oZS5jb25zdW1lKHgpLGE9MixmKTp4PT09OTE/KGUuY29uc3VtZSh4KSxhPTUscz0wLHkpOlh0KHgpPyhlLmNvbnN1bWUoeCksYT00LHIuaW50ZXJydXB0P3Q6Uyk6bih4KX1mdW5jdGlvbiBmKHgpe3JldHVybiB4PT09NDU/KGUuY29uc3VtZSh4KSxyLmludGVycnVwdD90OlMpOm4oeCl9ZnVuY3Rpb24geSh4KXtjb25zdCB0ZT0iQ0RBVEFbIjtyZXR1cm4geD09PXRlLmNoYXJDb2RlQXQocysrKT8oZS5jb25zdW1lKHgpLHM9PT10ZS5sZW5ndGg/ci5pbnRlcnJ1cHQ/dDpGOnkpOm4oeCl9ZnVuY3Rpb24gYih4KXtyZXR1cm4gWHQoeCk/KGUuY29uc3VtZSh4KSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoeCksQSk6bih4KX1mdW5jdGlvbiBBKHgpe2lmKHg9PT1udWxsfHx4PT09NDd8fHg9PT02Mnx8b3QoeCkpe2NvbnN0IHRlPXg9PT00NyxoZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIXRlJiYhaSYmekUuaW5jbHVkZXMoaGUpPyhhPTEsci5pbnRlcnJ1cHQ/dCh4KTpGKHgpKTpYQi5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpPyhhPTYsdGU/KGUuY29uc3VtZSh4KSxoKTpyLmludGVycnVwdD90KHgpOkYoeCkpOihhPTcsci5pbnRlcnJ1cHQmJiFyLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/bih4KTppP20oeCk6Zyh4KSl9cmV0dXJuIHg9PT00NXx8ZnQoeCk/KGUuY29uc3VtZSh4KSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHgpLEEpOm4oeCl9ZnVuY3Rpb24gaCh4KXtyZXR1cm4geD09PTYyPyhlLmNvbnN1bWUoeCksci5pbnRlcnJ1cHQ/dDpGKTpuKHgpfWZ1bmN0aW9uIG0oeCl7cmV0dXJuIGFlKHgpPyhlLmNvbnN1bWUoeCksbSk6Qyh4KX1mdW5jdGlvbiBnKHgpe3JldHVybiB4PT09NDc/KGUuY29uc3VtZSh4KSxDKTp4PT09NTh8fHg9PT05NXx8WHQoeCk/KGUuY29uc3VtZSh4KSxFKTphZSh4KT8oZS5jb25zdW1lKHgpLGcpOkMoeCl9ZnVuY3Rpb24gRSh4KXtyZXR1cm4geD09PTQ1fHx4PT09NDZ8fHg9PT01OHx8eD09PTk1fHxmdCh4KT8oZS5jb25zdW1lKHgpLEUpOlQoeCl9ZnVuY3Rpb24gVCh4KXtyZXR1cm4geD09PTYxPyhlLmNvbnN1bWUoeCksdik6YWUoeCk/KGUuY29uc3VtZSh4KSxUKTpnKHgpfWZ1bmN0aW9uIHYoeCl7cmV0dXJuIHg9PT1udWxsfHx4PT09NjB8fHg9PT02MXx8eD09PTYyfHx4PT09OTY/bih4KTp4PT09MzR8fHg9PT0zOT8oZS5jb25zdW1lKHgpLGw9eCxSKTphZSh4KT8oZS5jb25zdW1lKHgpLHYpOl8oeCl9ZnVuY3Rpb24gUih4KXtyZXR1cm4geD09PWw/KGUuY29uc3VtZSh4KSxsPW51bGwsSSk6eD09PW51bGx8fFkoeCk/bih4KTooZS5jb25zdW1lKHgpLFIpfWZ1bmN0aW9uIF8oeCl7cmV0dXJuIHg9PT1udWxsfHx4PT09MzR8fHg9PT0zOXx8eD09PTQ3fHx4PT09NjB8fHg9PT02MXx8eD09PTYyfHx4PT09OTZ8fG90KHgpP1QoeCk6KGUuY29uc3VtZSh4KSxfKX1mdW5jdGlvbiBJKHgpe3JldHVybiB4PT09NDd8fHg9PT02Mnx8YWUoeCk/Zyh4KTpuKHgpfWZ1bmN0aW9uIEMoeCl7cmV0dXJuIHg9PT02Mj8oZS5jb25zdW1lKHgpLEwpOm4oeCl9ZnVuY3Rpb24gTCh4KXtyZXR1cm4geD09PW51bGx8fFkoeCk/Rih4KTphZSh4KT8oZS5jb25zdW1lKHgpLEwpOm4oeCl9ZnVuY3Rpb24gRih4KXtyZXR1cm4geD09PTQ1JiZhPT09Mj8oZS5jb25zdW1lKHgpLEspOng9PT02MCYmYT09PTE/KGUuY29uc3VtZSh4KSxWKTp4PT09NjImJmE9PT00PyhlLmNvbnN1bWUoeCksJCk6eD09PTYzJiZhPT09Mz8oZS5jb25zdW1lKHgpLFMpOng9PT05MyYmYT09PTU/KGUuY29uc3VtZSh4KSxVKTpZKHgpJiYoYT09PTZ8fGE9PT03KT8oZS5leGl0KCJodG1sRmxvd0RhdGEiKSxlLmNoZWNrKFFCLGoscSkoeCkpOng9PT1udWxsfHxZKHgpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLHEoeCkpOihlLmNvbnN1bWUoeCksRil9ZnVuY3Rpb24gcSh4KXtyZXR1cm4gZS5jaGVjayhKQixXLGopKHgpfWZ1bmN0aW9uIFcoeCl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoeCksZS5leGl0KCJsaW5lRW5kaW5nIiksR31mdW5jdGlvbiBHKHgpe3JldHVybiB4PT09bnVsbHx8WSh4KT9xKHgpOihlLmVudGVyKCJodG1sRmxvd0RhdGEiKSxGKHgpKX1mdW5jdGlvbiBLKHgpe3JldHVybiB4PT09NDU/KGUuY29uc3VtZSh4KSxTKTpGKHgpfWZ1bmN0aW9uIFYoeCl7cmV0dXJuIHg9PT00Nz8oZS5jb25zdW1lKHgpLG89IiIsTik6Rih4KX1mdW5jdGlvbiBOKHgpe2lmKHg9PT02Mil7Y29uc3QgdGU9by50b0xvd2VyQ2FzZSgpO3JldHVybiB6RS5pbmNsdWRlcyh0ZSk/KGUuY29uc3VtZSh4KSwkKTpGKHgpfXJldHVybiBYdCh4KSYmby5sZW5ndGg8OD8oZS5jb25zdW1lKHgpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoeCksTik6Rih4KX1mdW5jdGlvbiBVKHgpe3JldHVybiB4PT09OTM/KGUuY29uc3VtZSh4KSxTKTpGKHgpfWZ1bmN0aW9uIFMoeCl7cmV0dXJuIHg9PT02Mj8oZS5jb25zdW1lKHgpLCQpOng9PT00NSYmYT09PTI/KGUuY29uc3VtZSh4KSxTKTpGKHgpfWZ1bmN0aW9uICQoeCl7cmV0dXJuIHg9PT1udWxsfHxZKHgpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLGooeCkpOihlLmNvbnN1bWUoeCksJCl9ZnVuY3Rpb24gaih4KXtyZXR1cm4gZS5leGl0KCJodG1sRmxvdyIpLHQoeCl9fWZ1bmN0aW9uIG4kKGUsdCxuKXtjb25zdCByPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gWShvKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxpbmVFbmRpbmciKSxpKTpuKG8pfWZ1bmN0aW9uIGkobyl7cmV0dXJuIHIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXT9uKG8pOnQobyl9fWZ1bmN0aW9uIHIkKGUsdCxuKXtyZXR1cm4gcjtmdW5jdGlvbiByKGEpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdChHcyx0LG4pfX1jb25zdCBhJD17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOmkkfTtmdW5jdGlvbiBpJChlLHQsbil7Y29uc3Qgcj10aGlzO2xldCBhLGksbztyZXR1cm4gcztmdW5jdGlvbiBzKFMpe3JldHVybiBlLmVudGVyKCJodG1sVGV4dCIpLGUuZW50ZXIoImh0bWxUZXh0RGF0YSIpLGUuY29uc3VtZShTKSxsfWZ1bmN0aW9uIGwoUyl7cmV0dXJuIFM9PT0zMz8oZS5jb25zdW1lKFMpLHUpOlM9PT00Nz8oZS5jb25zdW1lKFMpLFQpOlM9PT02Mz8oZS5jb25zdW1lKFMpLGcpOlh0KFMpPyhlLmNvbnN1bWUoUyksXyk6bihTKX1mdW5jdGlvbiB1KFMpe3JldHVybiBTPT09NDU/KGUuY29uc3VtZShTKSxjKTpTPT09OTE/KGUuY29uc3VtZShTKSxpPTAseSk6WHQoUyk/KGUuY29uc3VtZShTKSxtKTpuKFMpfWZ1bmN0aW9uIGMoUyl7cmV0dXJuIFM9PT00NT8oZS5jb25zdW1lKFMpLGYpOm4oUyl9ZnVuY3Rpb24gZChTKXtyZXR1cm4gUz09PW51bGw/bihTKTpTPT09NDU/KGUuY29uc3VtZShTKSxwKTpZKFMpPyhvPWQsVihTKSk6KGUuY29uc3VtZShTKSxkKX1mdW5jdGlvbiBwKFMpe3JldHVybiBTPT09NDU/KGUuY29uc3VtZShTKSxmKTpkKFMpfWZ1bmN0aW9uIGYoUyl7cmV0dXJuIFM9PT02Mj9LKFMpOlM9PT00NT9wKFMpOmQoUyl9ZnVuY3Rpb24geShTKXtjb25zdCAkPSJDREFUQVsiO3JldHVybiBTPT09JC5jaGFyQ29kZUF0KGkrKyk/KGUuY29uc3VtZShTKSxpPT09JC5sZW5ndGg/Yjp5KTpuKFMpfWZ1bmN0aW9uIGIoUyl7cmV0dXJuIFM9PT1udWxsP24oUyk6Uz09PTkzPyhlLmNvbnN1bWUoUyksQSk6WShTKT8obz1iLFYoUykpOihlLmNvbnN1bWUoUyksYil9ZnVuY3Rpb24gQShTKXtyZXR1cm4gUz09PTkzPyhlLmNvbnN1bWUoUyksaCk6YihTKX1mdW5jdGlvbiBoKFMpe3JldHVybiBTPT09NjI/SyhTKTpTPT09OTM/KGUuY29uc3VtZShTKSxoKTpiKFMpfWZ1bmN0aW9uIG0oUyl7cmV0dXJuIFM9PT1udWxsfHxTPT09NjI/SyhTKTpZKFMpPyhvPW0sVihTKSk6KGUuY29uc3VtZShTKSxtKX1mdW5jdGlvbiBnKFMpe3JldHVybiBTPT09bnVsbD9uKFMpOlM9PT02Mz8oZS5jb25zdW1lKFMpLEUpOlkoUyk/KG89ZyxWKFMpKTooZS5jb25zdW1lKFMpLGcpfWZ1bmN0aW9uIEUoUyl7cmV0dXJuIFM9PT02Mj9LKFMpOmcoUyl9ZnVuY3Rpb24gVChTKXtyZXR1cm4gWHQoUyk/KGUuY29uc3VtZShTKSx2KTpuKFMpfWZ1bmN0aW9uIHYoUyl7cmV0dXJuIFM9PT00NXx8ZnQoUyk/KGUuY29uc3VtZShTKSx2KTpSKFMpfWZ1bmN0aW9uIFIoUyl7cmV0dXJuIFkoUyk/KG89UixWKFMpKTphZShTKT8oZS5jb25zdW1lKFMpLFIpOksoUyl9ZnVuY3Rpb24gXyhTKXtyZXR1cm4gUz09PTQ1fHxmdChTKT8oZS5jb25zdW1lKFMpLF8pOlM9PT00N3x8Uz09PTYyfHxvdChTKT9JKFMpOm4oUyl9ZnVuY3Rpb24gSShTKXtyZXR1cm4gUz09PTQ3PyhlLmNvbnN1bWUoUyksSyk6Uz09PTU4fHxTPT09OTV8fFh0KFMpPyhlLmNvbnN1bWUoUyksQyk6WShTKT8obz1JLFYoUykpOmFlKFMpPyhlLmNvbnN1bWUoUyksSSk6SyhTKX1mdW5jdGlvbiBDKFMpe3JldHVybiBTPT09NDV8fFM9PT00Nnx8Uz09PTU4fHxTPT09OTV8fGZ0KFMpPyhlLmNvbnN1bWUoUyksQyk6TChTKX1mdW5jdGlvbiBMKFMpe3JldHVybiBTPT09NjE/KGUuY29uc3VtZShTKSxGKTpZKFMpPyhvPUwsVihTKSk6YWUoUyk/KGUuY29uc3VtZShTKSxMKTpJKFMpfWZ1bmN0aW9uIEYoUyl7cmV0dXJuIFM9PT1udWxsfHxTPT09NjB8fFM9PT02MXx8Uz09PTYyfHxTPT09OTY/bihTKTpTPT09MzR8fFM9PT0zOT8oZS5jb25zdW1lKFMpLGE9UyxxKTpZKFMpPyhvPUYsVihTKSk6YWUoUyk/KGUuY29uc3VtZShTKSxGKTooZS5jb25zdW1lKFMpLFcpfWZ1bmN0aW9uIHEoUyl7cmV0dXJuIFM9PT1hPyhlLmNvbnN1bWUoUyksYT12b2lkIDAsRyk6Uz09PW51bGw/bihTKTpZKFMpPyhvPXEsVihTKSk6KGUuY29uc3VtZShTKSxxKX1mdW5jdGlvbiBXKFMpe3JldHVybiBTPT09bnVsbHx8Uz09PTM0fHxTPT09Mzl8fFM9PT02MHx8Uz09PTYxfHxTPT09OTY/bihTKTpTPT09NDd8fFM9PT02Mnx8b3QoUyk/SShTKTooZS5jb25zdW1lKFMpLFcpfWZ1bmN0aW9uIEcoUyl7cmV0dXJuIFM9PT00N3x8Uz09PTYyfHxvdChTKT9JKFMpOm4oUyl9ZnVuY3Rpb24gSyhTKXtyZXR1cm4gUz09PTYyPyhlLmNvbnN1bWUoUyksZS5leGl0KCJodG1sVGV4dERhdGEiKSxlLmV4aXQoImh0bWxUZXh0IiksdCk6bihTKX1mdW5jdGlvbiBWKFMpe3JldHVybiBlLmV4aXQoImh0bWxUZXh0RGF0YSIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoUyksZS5leGl0KCJsaW5lRW5kaW5nIiksTn1mdW5jdGlvbiBOKFMpe3JldHVybiBhZShTKT91ZShlLFUsImxpbmVQcmVmaXgiLHIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoUyk6VShTKX1mdW5jdGlvbiBVKFMpe3JldHVybiBlLmVudGVyKCJodG1sVGV4dERhdGEiKSxvKFMpfX1jb25zdCBkYj17bmFtZToibGFiZWxFbmQiLHJlc29sdmVBbGw6dSQscmVzb2x2ZVRvOmMkLHRva2VuaXplOmQkfSxvJD17dG9rZW5pemU6cCR9LHMkPXt0b2tlbml6ZTpmJH0sbCQ9e3Rva2VuaXplOm0kfTtmdW5jdGlvbiB1JChlKXtsZXQgdD0tMTtjb25zdCBuPVtdO2Zvcig7Kyt0PGUubGVuZ3RoOyl7Y29uc3Qgcj1lW3RdWzFdO2lmKG4ucHVzaChlW3RdKSxyLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fHIudHlwZT09PSJsYWJlbExpbmsifHxyLnR5cGU9PT0ibGFiZWxFbmQiKXtjb25zdCBhPXIudHlwZT09PSJsYWJlbEltYWdlIj80OjI7ci50eXBlPSJkYXRhIix0Kz1hfX1yZXR1cm4gZS5sZW5ndGghPT1uLmxlbmd0aCYmdG4oZSwwLGUubGVuZ3RoLG4pLGV9ZnVuY3Rpb24gYyQoZSx0KXtsZXQgbj1lLmxlbmd0aCxyPTAsYSxpLG8scztmb3IoO24tLTspaWYoYT1lW25dWzFdLGkpe2lmKGEudHlwZT09PSJsaW5rInx8YS50eXBlPT09ImxhYmVsTGluayImJmEuX2luYWN0aXZlKWJyZWFrO2Vbbl1bMF09PT0iZW50ZXIiJiZhLnR5cGU9PT0ibGFiZWxMaW5rIiYmKGEuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKGVbbl1bMF09PT0iZW50ZXIiJiYoYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLl9iYWxhbmNlZCYmKGk9bixhLnR5cGUhPT0ibGFiZWxMaW5rIikpe3I9MjticmVha319ZWxzZSBhLnR5cGU9PT0ibGFiZWxFbmQiJiYobz1uKTtjb25zdCBsPXt0eXBlOmVbaV1bMV0udHlwZT09PSJsYWJlbExpbmsiPyJsaW5rIjoiaW1hZ2UiLHN0YXJ0OnsuLi5lW2ldWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbZS5sZW5ndGgtMV1bMV0uZW5kfX0sdT17dHlwZToibGFiZWwiLHN0YXJ0OnsuLi5lW2ldWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbb11bMV0uZW5kfX0sYz17dHlwZToibGFiZWxUZXh0IixzdGFydDp7Li4uZVtpK3IrMl1bMV0uZW5kfSxlbmQ6ey4uLmVbby0yXVsxXS5zdGFydH19O3JldHVybiBzPVtbImVudGVyIixsLHRdLFsiZW50ZXIiLHUsdF1dLHM9UnQocyxlLnNsaWNlKGkrMSxpK3IrMykpLHM9UnQocyxbWyJlbnRlciIsYyx0XV0pLHM9UnQocyxjYih0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCxlLnNsaWNlKGkrcis0LG8tMyksdCkpLHM9UnQocyxbWyJleGl0IixjLHRdLGVbby0yXSxlW28tMV0sWyJleGl0Iix1LHRdXSkscz1SdChzLGUuc2xpY2UobysxKSkscz1SdChzLFtbImV4aXQiLGwsdF1dKSx0bihlLGksZS5sZW5ndGgscyksZX1mdW5jdGlvbiBkJChlLHQsbil7Y29uc3Qgcj10aGlzO2xldCBhPXIuZXZlbnRzLmxlbmd0aCxpLG87Zm9yKDthLS07KWlmKChyLmV2ZW50c1thXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UifHxyLmV2ZW50c1thXVsxXS50eXBlPT09ImxhYmVsTGluayIpJiYhci5ldmVudHNbYV1bMV0uX2JhbGFuY2VkKXtpPXIuZXZlbnRzW2FdWzFdO2JyZWFrfXJldHVybiBzO2Z1bmN0aW9uIHMocCl7cmV0dXJuIGk/aS5faW5hY3RpdmU/ZChwKToobz1yLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFpyKHIuc2xpY2VTZXJpYWxpemUoe3N0YXJ0OmkuZW5kLGVuZDpyLm5vdygpfSkpKSxlLmVudGVyKCJsYWJlbEVuZCIpLGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKHApLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsRW5kIiksbCk6bihwKX1mdW5jdGlvbiBsKHApe3JldHVybiBwPT09NDA/ZS5hdHRlbXB0KG8kLGMsbz9jOmQpKHApOnA9PT05MT9lLmF0dGVtcHQocyQsYyxvP3U6ZCkocCk6bz9jKHApOmQocCl9ZnVuY3Rpb24gdShwKXtyZXR1cm4gZS5hdHRlbXB0KGwkLGMsZCkocCl9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gdChwKX1mdW5jdGlvbiBkKHApe3JldHVybiBpLl9iYWxhbmNlZD0hMCxuKHApfX1mdW5jdGlvbiBwJChlLHQsbil7cmV0dXJuIHI7ZnVuY3Rpb24gcihkKXtyZXR1cm4gZS5lbnRlcigicmVzb3VyY2UiKSxlLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoInJlc291cmNlTWFya2VyIiksYX1mdW5jdGlvbiBhKGQpe3JldHVybiBvdChkKT9yaShlLGkpKGQpOmkoZCl9ZnVuY3Rpb24gaShkKXtyZXR1cm4gZD09PTQxP2MoZCk6Wk4oZSxvLHMsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKShkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBvdChkKT9yaShlLGwpKGQpOmMoZCl9ZnVuY3Rpb24gcyhkKXtyZXR1cm4gbihkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzR8fGQ9PT0zOXx8ZD09PTQwP0pOKGUsdSxuLCJyZXNvdXJjZVRpdGxlIiwicmVzb3VyY2VUaXRsZU1hcmtlciIsInJlc291cmNlVGl0bGVTdHJpbmciKShkKTpjKGQpfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIG90KGQpP3JpKGUsYykoZCk6YyhkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBkPT09NDE/KGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxlLmV4aXQoInJlc291cmNlIiksdCk6bihkKX19ZnVuY3Rpb24gZiQoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiBRTi5jYWxsKHIsZSxpLG8sInJlZmVyZW5jZSIsInJlZmVyZW5jZU1hcmtlciIsInJlZmVyZW5jZVN0cmluZyIpKHMpfWZ1bmN0aW9uIGkocyl7cmV0dXJuIHIucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoWnIoci5zbGljZVNlcmlhbGl6ZShyLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/dChzKTpuKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIG4ocyl9fWZ1bmN0aW9uIG0kKGUsdCxuKXtyZXR1cm4gcjtmdW5jdGlvbiByKGkpe3JldHVybiBlLmVudGVyKCJyZWZlcmVuY2UiKSxlLmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSxlLmNvbnN1bWUoaSksZS5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxhfWZ1bmN0aW9uIGEoaSl7cmV0dXJuIGk9PT05Mz8oZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGkpLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJyZWZlcmVuY2UiKSx0KTpuKGkpfX1jb25zdCBnJD17bmFtZToibGFiZWxTdGFydEltYWdlIixyZXNvbHZlQWxsOmRiLnJlc29sdmVBbGwsdG9rZW5pemU6aCR9O2Z1bmN0aW9uIGgkKGUsdCxuKXtjb25zdCByPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShzKXtyZXR1cm4gZS5lbnRlcigibGFiZWxJbWFnZSIpLGUuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSxlLmNvbnN1bWUocyksZS5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksaX1mdW5jdGlvbiBpKHMpe3JldHVybiBzPT09OTE/KGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsSW1hZ2UiKSxvKTpuKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gci5wYXJzZXIuY29uc3RydWN0cz9uKHMpOnQocyl9fWNvbnN0IGIkPXtuYW1lOiJsYWJlbFN0YXJ0TGluayIscmVzb2x2ZUFsbDpkYi5yZXNvbHZlQWxsLHRva2VuaXplOnkkfTtmdW5jdGlvbiB5JChlLHQsbil7Y29uc3Qgcj10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGUuZW50ZXIoImxhYmVsTGluayIpLGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsTGluayIpLGl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gbz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiByLnBhcnNlci5jb25zdHJ1Y3RzP24obyk6dChvKX19Y29uc3Qgamw9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOnYkfTtmdW5jdGlvbiB2JChlLHQpe3JldHVybiBuO2Z1bmN0aW9uIG4ocil7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUociksZS5leGl0KCJsaW5lRW5kaW5nIiksdWUoZSx0LCJsaW5lUHJlZml4Iil9fWNvbnN0IE1vPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTpFJH07ZnVuY3Rpb24gRSQoZSx0LG4pe2xldCByPTAsYTtyZXR1cm4gaTtmdW5jdGlvbiBpKHUpe3JldHVybiBlLmVudGVyKCJ0aGVtYXRpY0JyZWFrIiksbyh1KX1mdW5jdGlvbiBvKHUpe3JldHVybiBhPXUscyh1KX1mdW5jdGlvbiBzKHUpe3JldHVybiB1PT09YT8oZS5lbnRlcigidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksbCh1KSk6cj49MyYmKHU9PT1udWxsfHxZKHUpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdCh1KSk6bih1KX1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09YT8oZS5jb25zdW1lKHUpLHIrKyxsKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxhZSh1KT91ZShlLHMsIndoaXRlc3BhY2UiKSh1KTpzKHUpKX19Y29uc3QgSmU9e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6ayR9LGV4aXQ6eCQsbmFtZToibGlzdCIsdG9rZW5pemU6VCR9LFMkPXtwYXJ0aWFsOiEwLHRva2VuaXplOlIkfSx3JD17cGFydGlhbDohMCx0b2tlbml6ZTpBJH07ZnVuY3Rpb24gVCQoZSx0LG4pe2NvbnN0IHI9dGhpcyxhPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtsZXQgaT1hJiZhWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/YVsyXS5zbGljZVNlcmlhbGl6ZShhWzFdLCEwKS5sZW5ndGg6MCxvPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhmKXtjb25zdCB5PXIuY29udGFpbmVyU3RhdGUudHlwZXx8KGY9PT00Mnx8Zj09PTQzfHxmPT09NDU/Imxpc3RVbm9yZGVyZWQiOiJsaXN0T3JkZXJlZCIpO2lmKHk9PT0ibGlzdFVub3JkZXJlZCI/IXIuY29udGFpbmVyU3RhdGUubWFya2VyfHxmPT09ci5jb250YWluZXJTdGF0ZS5tYXJrZXI6YmcoZikpe2lmKHIuY29udGFpbmVyU3RhdGUudHlwZXx8KHIuY29udGFpbmVyU3RhdGUudHlwZT15LGUuZW50ZXIoeSx7X2NvbnRhaW5lcjohMH0pKSx5PT09Imxpc3RVbm9yZGVyZWQiKXJldHVybiBlLmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLGY9PT00Mnx8Zj09PTQ1P2UuY2hlY2soTW8sbix1KShmKTp1KGYpO2lmKCFyLmludGVycnVwdHx8Zj09PTQ5KXJldHVybiBlLmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLGUuZW50ZXIoImxpc3RJdGVtVmFsdWUiKSxsKGYpfXJldHVybiBuKGYpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGJnKGYpJiYrK288MTA/KGUuY29uc3VtZShmKSxsKTooIXIuaW50ZXJydXB0fHxvPDIpJiYoci5jb250YWluZXJTdGF0ZS5tYXJrZXI/Zj09PXIuY29udGFpbmVyU3RhdGUubWFya2VyOmY9PT00MXx8Zj09PTQ2KT8oZS5leGl0KCJsaXN0SXRlbVZhbHVlIiksdShmKSk6bihmKX1mdW5jdGlvbiB1KGYpe3JldHVybiBlLmVudGVyKCJsaXN0SXRlbU1hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImxpc3RJdGVtTWFya2VyIiksci5jb250YWluZXJTdGF0ZS5tYXJrZXI9ci5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fGYsZS5jaGVjayhHcyxyLmludGVycnVwdD9uOmMsZS5hdHRlbXB0KFMkLHAsZCkpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxpKysscChmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBhZShmKT8oZS5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksZS5jb25zdW1lKGYpLGUuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIikscCk6bihmKX1mdW5jdGlvbiBwKGYpe3JldHVybiByLmNvbnRhaW5lclN0YXRlLnNpemU9aStyLnNsaWNlU2VyaWFsaXplKGUuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLHQoZil9fWZ1bmN0aW9uIGskKGUsdCxuKXtjb25zdCByPXRoaXM7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsZS5jaGVjayhHcyxhLGkpO2Z1bmN0aW9uIGEocyl7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9ci5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8ci5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lLHVlKGUsdCwibGlzdEl0ZW1JbmRlbnQiLHIuY29udGFpbmVyU3RhdGUuc2l6ZSsxKShzKX1mdW5jdGlvbiBpKHMpe3JldHVybiByLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHwhYWUocyk/KHIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9dm9pZCAwLHIuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT12b2lkIDAsbyhzKSk6KHIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9dm9pZCAwLHIuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT12b2lkIDAsZS5hdHRlbXB0KHckLHQsbykocykpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxyLmludGVycnVwdD12b2lkIDAsdWUoZSxlLmF0dGVtcHQoSmUsdCxuKSwibGluZVByZWZpeCIsci5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShzKX19ZnVuY3Rpb24gQSQoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gdWUoZSxhLCJsaXN0SXRlbUluZGVudCIsci5jb250YWluZXJTdGF0ZS5zaXplKzEpO2Z1bmN0aW9uIGEoaSl7Y29uc3Qgbz1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ci5jb250YWluZXJTdGF0ZS5zaXplP3QoaSk6bihpKX19ZnVuY3Rpb24geCQoZSl7ZS5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9ZnVuY3Rpb24gUiQoZSx0LG4pe2NvbnN0IHI9dGhpcztyZXR1cm4gdWUoZSxhLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLHIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gYShpKXtjb25zdCBvPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hYWUoaSkmJm8mJm9bMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiP3QoaSk6bihpKX19Y29uc3QgakU9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOl8kLHRva2VuaXplOkkkfTtmdW5jdGlvbiBfJChlLHQpe2xldCBuPWUubGVuZ3RoLHIsYSxpO2Zvcig7bi0tOylpZihlW25dWzBdPT09ImVudGVyIil7aWYoZVtuXVsxXS50eXBlPT09ImNvbnRlbnQiKXtyPW47YnJlYWt9ZVtuXVsxXS50eXBlPT09InBhcmFncmFwaCImJihhPW4pfWVsc2UgZVtuXVsxXS50eXBlPT09ImNvbnRlbnQiJiZlLnNwbGljZShuLDEpLCFpJiZlW25dWzFdLnR5cGU9PT0iZGVmaW5pdGlvbiImJihpPW4pO2NvbnN0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5lW3JdWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbZS5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIGVbYV1bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLGk/KGUuc3BsaWNlKGEsMCxbImVudGVyIixvLHRdKSxlLnNwbGljZShpKzEsMCxbImV4aXQiLGVbcl1bMV0sdF0pLGVbcl1bMV0uZW5kPXsuLi5lW2ldWzFdLmVuZH0pOmVbcl1bMV09byxlLnB1c2goWyJleGl0IixvLHRdKSxlfWZ1bmN0aW9uIEkkKGUsdCxuKXtjb25zdCByPXRoaXM7bGV0IGE7cmV0dXJuIGk7ZnVuY3Rpb24gaSh1KXtsZXQgYz1yLmV2ZW50cy5sZW5ndGgsZDtmb3IoO2MtLTspaWYoci5ldmVudHNbY11bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmci5ldmVudHNbY11bMV0udHlwZSE9PSJsaW5lUHJlZml4IiYmci5ldmVudHNbY11bMV0udHlwZSE9PSJjb250ZW50Iil7ZD1yLmV2ZW50c1tjXVsxXS50eXBlPT09InBhcmFncmFwaCI7YnJlYWt9cmV0dXJuIXIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXSYmKHIuaW50ZXJydXB0fHxkKT8oZS5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxhPXUsbyh1KSk6bih1KX1mdW5jdGlvbiBvKHUpe3JldHVybiBlLmVudGVyKCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIikscyh1KX1mdW5jdGlvbiBzKHUpe3JldHVybiB1PT09YT8oZS5jb25zdW1lKHUpLHMpOihlLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxhZSh1KT91ZShlLGwsImxpbmVTdWZmaXgiKSh1KTpsKHUpKX1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09bnVsbHx8WSh1KT8oZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZSIpLHQodSkpOm4odSl9fWNvbnN0IE4kPXt0b2tlbml6ZTpDJH07ZnVuY3Rpb24gQyQoZSl7Y29uc3QgdD10aGlzLG49ZS5hdHRlbXB0KEdzLHIsZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsYSx1ZShlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csYSxlLmF0dGVtcHQoUEIsYSkpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gbjtmdW5jdGlvbiByKGkpe2lmKGk9PT1udWxsKXtlLmNvbnN1bWUoaSk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSxlLmNvbnN1bWUoaSksZS5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSx0LmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLG59ZnVuY3Rpb24gYShpKXtpZihpPT09bnVsbCl7ZS5jb25zdW1lKGkpO3JldHVybn1yZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShpKSxlLmV4aXQoImxpbmVFbmRpbmciKSx0LmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLG59fWNvbnN0IE8kPXtyZXNvbHZlQWxsOnRDKCl9LEwkPWVDKCJzdHJpbmciKSxEJD1lQygidGV4dCIpO2Z1bmN0aW9uIGVDKGUpe3JldHVybntyZXNvbHZlQWxsOnRDKGU9PT0idGV4dCI/TSQ6dm9pZCAwKSx0b2tlbml6ZTp0fTtmdW5jdGlvbiB0KG4pe2NvbnN0IHI9dGhpcyxhPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZV0saT1uLmF0dGVtcHQoYSxvLHMpO3JldHVybiBvO2Z1bmN0aW9uIG8oYyl7cmV0dXJuIHUoYyk/aShjKTpzKGMpfWZ1bmN0aW9uIHMoYyl7aWYoYz09PW51bGwpe24uY29uc3VtZShjKTtyZXR1cm59cmV0dXJuIG4uZW50ZXIoImRhdGEiKSxuLmNvbnN1bWUoYyksbH1mdW5jdGlvbiBsKGMpe3JldHVybiB1KGMpPyhuLmV4aXQoImRhdGEiKSxpKGMpKToobi5jb25zdW1lKGMpLGwpfWZ1bmN0aW9uIHUoYyl7aWYoYz09PW51bGwpcmV0dXJuITA7Y29uc3QgZD1hW2NdO2xldCBwPS0xO2lmKGQpZm9yKDsrK3A8ZC5sZW5ndGg7KXtjb25zdCBmPWRbcF07aWYoIWYucHJldmlvdXN8fGYucHJldmlvdXMuY2FsbChyLHIucHJldmlvdXMpKXJldHVybiEwfXJldHVybiExfX19ZnVuY3Rpb24gdEMoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChuLHIpe2xldCBhPS0xLGk7Zm9yKDsrK2E8PW4ubGVuZ3RoOylpPT09dm9pZCAwP25bYV0mJm5bYV1bMV0udHlwZT09PSJkYXRhIiYmKGk9YSxhKyspOighblthXXx8blthXVsxXS50eXBlIT09ImRhdGEiKSYmKGEhPT1pKzImJihuW2ldWzFdLmVuZD1uW2EtMV1bMV0uZW5kLG4uc3BsaWNlKGkrMixhLWktMiksYT1pKzIpLGk9dm9pZCAwKTtyZXR1cm4gZT9lKG4scik6bn19ZnVuY3Rpb24gTSQoZSx0KXtsZXQgbj0wO2Zvcig7KytuPD1lLmxlbmd0aDspaWYoKG49PT1lLmxlbmd0aHx8ZVtuXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmZVtuLTFdWzFdLnR5cGU9PT0iZGF0YSIpe2NvbnN0IHI9ZVtuLTFdWzFdLGE9dC5zbGljZVN0cmVhbShyKTtsZXQgaT1hLmxlbmd0aCxvPS0xLHM9MCxsO2Zvcig7aS0tOyl7Y29uc3QgdT1hW2ldO2lmKHR5cGVvZiB1PT0ic3RyaW5nIil7Zm9yKG89dS5sZW5ndGg7dS5jaGFyQ29kZUF0KG8tMSk9PT0zMjspcysrLG8tLTtpZihvKWJyZWFrO289LTF9ZWxzZSBpZih1PT09LTIpbD0hMCxzKys7ZWxzZSBpZih1IT09LTEpe2krKzticmVha319aWYodC5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJm49PT1lLmxlbmd0aCYmKHM9MCkscyl7Y29uc3QgdT17dHlwZTpuPT09ZS5sZW5ndGh8fGx8fHM8Mj8ibGluZVN1ZmZpeCI6ImhhcmRCcmVha1RyYWlsaW5nIixzdGFydDp7X2J1ZmZlckluZGV4Omk/bzpyLnN0YXJ0Ll9idWZmZXJJbmRleCtvLF9pbmRleDpyLnN0YXJ0Ll9pbmRleCtpLGxpbmU6ci5lbmQubGluZSxjb2x1bW46ci5lbmQuY29sdW1uLXMsb2Zmc2V0OnIuZW5kLm9mZnNldC1zfSxlbmQ6ey4uLnIuZW5kfX07ci5lbmQ9ey4uLnUuc3RhcnR9LHIuc3RhcnQub2Zmc2V0PT09ci5lbmQub2Zmc2V0P09iamVjdC5hc3NpZ24ocix1KTooZS5zcGxpY2UobiwwLFsiZW50ZXIiLHUsdF0sWyJleGl0Iix1LHRdKSxuKz0yKX1uKyt9cmV0dXJuIGV9Y29uc3QgUCQ9ezQyOkplLDQzOkplLDQ1OkplLDQ4OkplLDQ5OkplLDUwOkplLDUxOkplLDUyOkplLDUzOkplLDU0OkplLDU1OkplLDU2OkplLDU3OkplLDYyOldOfSxGJD17OTE6ekJ9LFUkPXtbLTJdOnpsLFstMV06emwsMzI6emx9LEIkPXszNTpXQiw0MjpNbyw0NTpbakUsTW9dLDYwOlpCLDYxOmpFLDk1Ok1vLDk2OiRFLDEyNjokRX0sJCQ9ezM4OktOLDkyOllOfSx6JD17Wy01XTpqbCxbLTRdOmpsLFstM106amwsMzM6ZyQsMzg6S04sNDI6eWcsNjA6W2JCLGEkXSw5MTpiJCw5MjpbVkIsWU5dLDkzOmRiLDk1OnlnLDk2Ok5CfSxqJD17bnVsbDpbeWcsTyRdfSxHJD17bnVsbDpbNDIsOTVdfSxxJD17bnVsbDpbXX0sViQ9T2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydHkoe19fcHJvdG9fXzpudWxsLGF0dGVudGlvbk1hcmtlcnM6RyQsY29udGVudEluaXRpYWw6RiQsZGlzYWJsZTpxJCxkb2N1bWVudDpQJCxmbG93OkIkLGZsb3dJbml0aWFsOlUkLGluc2lkZVNwYW46aiQsc3RyaW5nOiQkLHRleHQ6eiR9LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSk7ZnVuY3Rpb24gSCQoZSx0LG4pe2xldCByPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTpuJiZuLmxpbmV8fDEsY29sdW1uOm4mJm4uY29sdW1ufHwxLG9mZnNldDpuJiZuLm9mZnNldHx8MH07Y29uc3QgYT17fSxpPVtdO2xldCBvPVtdLHM9W107Y29uc3QgbD17YXR0ZW1wdDpSKFQpLGNoZWNrOlIodiksY29uc3VtZTptLGVudGVyOmcsZXhpdDpFLGludGVycnVwdDpSKHYse2ludGVycnVwdDohMH0pfSx1PXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDpiLGV2ZW50czpbXSxub3c6eSxwYXJzZXI6ZSxwcmV2aW91czpudWxsLHNsaWNlU2VyaWFsaXplOnAsc2xpY2VTdHJlYW06Zix3cml0ZTpkfTtsZXQgYz10LnRva2VuaXplLmNhbGwodSxsKTtyZXR1cm4gdC5yZXNvbHZlQWxsJiZpLnB1c2godCksdTtmdW5jdGlvbiBkKEwpe3JldHVybiBvPVJ0KG8sTCksQSgpLG9bby5sZW5ndGgtMV0hPT1udWxsP1tdOihfKHQsMCksdS5ldmVudHM9Y2IoaSx1LmV2ZW50cyx1KSx1LmV2ZW50cyl9ZnVuY3Rpb24gcChMLEYpe3JldHVybiBZJChmKEwpLEYpfWZ1bmN0aW9uIGYoTCl7cmV0dXJuIFckKG8sTCl9ZnVuY3Rpb24geSgpe2NvbnN0e19idWZmZXJJbmRleDpMLF9pbmRleDpGLGxpbmU6cSxjb2x1bW46VyxvZmZzZXQ6R309cjtyZXR1cm57X2J1ZmZlckluZGV4OkwsX2luZGV4OkYsbGluZTpxLGNvbHVtbjpXLG9mZnNldDpHfX1mdW5jdGlvbiBiKEwpe2FbTC5saW5lXT1MLmNvbHVtbixDKCl9ZnVuY3Rpb24gQSgpe2xldCBMO2Zvcig7ci5faW5kZXg8by5sZW5ndGg7KXtjb25zdCBGPW9bci5faW5kZXhdO2lmKHR5cGVvZiBGPT0ic3RyaW5nIilmb3IoTD1yLl9pbmRleCxyLl9idWZmZXJJbmRleDwwJiYoci5fYnVmZmVySW5kZXg9MCk7ci5faW5kZXg9PT1MJiZyLl9idWZmZXJJbmRleDxGLmxlbmd0aDspaChGLmNoYXJDb2RlQXQoci5fYnVmZmVySW5kZXgpKTtlbHNlIGgoRil9fWZ1bmN0aW9uIGgoTCl7Yz1jKEwpfWZ1bmN0aW9uIG0oTCl7WShMKT8oci5saW5lKyssci5jb2x1bW49MSxyLm9mZnNldCs9TD09PS0zPzI6MSxDKCkpOkwhPT0tMSYmKHIuY29sdW1uKyssci5vZmZzZXQrKyksci5fYnVmZmVySW5kZXg8MD9yLl9pbmRleCsrOihyLl9idWZmZXJJbmRleCsrLHIuX2J1ZmZlckluZGV4PT09b1tyLl9pbmRleF0ubGVuZ3RoJiYoci5fYnVmZmVySW5kZXg9LTEsci5faW5kZXgrKykpLHUucHJldmlvdXM9TH1mdW5jdGlvbiBnKEwsRil7Y29uc3QgcT1GfHx7fTtyZXR1cm4gcS50eXBlPUwscS5zdGFydD15KCksdS5ldmVudHMucHVzaChbImVudGVyIixxLHVdKSxzLnB1c2gocSkscX1mdW5jdGlvbiBFKEwpe2NvbnN0IEY9cy5wb3AoKTtyZXR1cm4gRi5lbmQ9eSgpLHUuZXZlbnRzLnB1c2goWyJleGl0IixGLHVdKSxGfWZ1bmN0aW9uIFQoTCxGKXtfKEwsRi5mcm9tKX1mdW5jdGlvbiB2KEwsRil7Ri5yZXN0b3JlKCl9ZnVuY3Rpb24gUihMLEYpe3JldHVybiBxO2Z1bmN0aW9uIHEoVyxHLEspe2xldCBWLE4sVSxTO3JldHVybiBBcnJheS5pc0FycmF5KFcpP2ooVyk6InRva2VuaXplImluIFc/aihbV10pOiQoVyk7ZnVuY3Rpb24gJChlZSl7cmV0dXJuIFNlO2Z1bmN0aW9uIFNlKFVlKXtjb25zdCBEdD1VZSE9PW51bGwmJmVlW1VlXSxFdD1VZSE9PW51bGwmJmVlLm51bGwsTXQ9Wy4uLkFycmF5LmlzQXJyYXkoRHQpP0R0OkR0P1tEdF06W10sLi4uQXJyYXkuaXNBcnJheShFdCk/RXQ6RXQ/W0V0XTpbXV07cmV0dXJuIGooTXQpKFVlKX19ZnVuY3Rpb24gaihlZSl7cmV0dXJuIFY9ZWUsTj0wLGVlLmxlbmd0aD09PTA/Szp4KGVlW05dKX1mdW5jdGlvbiB4KGVlKXtyZXR1cm4gU2U7ZnVuY3Rpb24gU2UoVWUpe3JldHVybiBTPUkoKSxVPWVlLGVlLnBhcnRpYWx8fCh1LmN1cnJlbnRDb25zdHJ1Y3Q9ZWUpLGVlLm5hbWUmJnUucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKGVlLm5hbWUpP2hlKCk6ZWUudG9rZW5pemUuY2FsbChGP09iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh1KSxGKTp1LGwsdGUsaGUpKFVlKX19ZnVuY3Rpb24gdGUoZWUpe3JldHVybiBMKFUsUyksR31mdW5jdGlvbiBoZShlZSl7cmV0dXJuIFMucmVzdG9yZSgpLCsrTjxWLmxlbmd0aD94KFZbTl0pOkt9fX1mdW5jdGlvbiBfKEwsRil7TC5yZXNvbHZlQWxsJiYhaS5pbmNsdWRlcyhMKSYmaS5wdXNoKEwpLEwucmVzb2x2ZSYmdG4odS5ldmVudHMsRix1LmV2ZW50cy5sZW5ndGgtRixMLnJlc29sdmUodS5ldmVudHMuc2xpY2UoRiksdSkpLEwucmVzb2x2ZVRvJiYodS5ldmVudHM9TC5yZXNvbHZlVG8odS5ldmVudHMsdSkpfWZ1bmN0aW9uIEkoKXtjb25zdCBMPXkoKSxGPXUucHJldmlvdXMscT11LmN1cnJlbnRDb25zdHJ1Y3QsVz11LmV2ZW50cy5sZW5ndGgsRz1BcnJheS5mcm9tKHMpO3JldHVybntmcm9tOlcscmVzdG9yZTpLfTtmdW5jdGlvbiBLKCl7cj1MLHUucHJldmlvdXM9Rix1LmN1cnJlbnRDb25zdHJ1Y3Q9cSx1LmV2ZW50cy5sZW5ndGg9VyxzPUcsQygpfX1mdW5jdGlvbiBDKCl7ci5saW5lIGluIGEmJnIuY29sdW1uPDImJihyLmNvbHVtbj1hW3IubGluZV0sci5vZmZzZXQrPWFbci5saW5lXS0xKX19ZnVuY3Rpb24gVyQoZSx0KXtjb25zdCBuPXQuc3RhcnQuX2luZGV4LHI9dC5zdGFydC5fYnVmZmVySW5kZXgsYT10LmVuZC5faW5kZXgsaT10LmVuZC5fYnVmZmVySW5kZXg7bGV0IG87aWYobj09PWEpbz1bZVtuXS5zbGljZShyLGkpXTtlbHNle2lmKG89ZS5zbGljZShuLGEpLHI+LTEpe2NvbnN0IHM9b1swXTt0eXBlb2Ygcz09InN0cmluZyI/b1swXT1zLnNsaWNlKHIpOm8uc2hpZnQoKX1pPjAmJm8ucHVzaChlW2FdLnNsaWNlKDAsaSkpfXJldHVybiBvfWZ1bmN0aW9uIFkkKGUsdCl7bGV0IG49LTE7Y29uc3Qgcj1bXTtsZXQgYTtmb3IoOysrbjxlLmxlbmd0aDspe2NvbnN0IGk9ZVtuXTtsZXQgbztpZih0eXBlb2YgaT09InN0cmluZyIpbz1pO2Vsc2Ugc3dpdGNoKGkpe2Nhc2UtNTp7bz0iXHIiO2JyZWFrfWNhc2UtNDp7bz1gCmA7YnJlYWt9Y2FzZS0zOntvPWBccgpgO2JyZWFrfWNhc2UtMjp7bz10PyIgIjoiCSI7YnJlYWt9Y2FzZS0xOntpZighdCYmYSljb250aW51ZTtvPSIgIjticmVha31kZWZhdWx0Om89U3RyaW5nLmZyb21DaGFyQ29kZShpKX1hPWk9PT0tMixyLnB1c2gobyl9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gSyQoZSl7Y29uc3Qgcj17Y29uc3RydWN0czpuQihbViQsLi4uKGV8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6YShjQiksZGVmaW5lZDpbXSxkb2N1bWVudDphKHBCKSxmbG93OmEoTiQpLGxhenk6e30sc3RyaW5nOmEoTCQpLHRleHQ6YShEJCl9O3JldHVybiByO2Z1bmN0aW9uIGEoaSl7cmV0dXJuIG87ZnVuY3Rpb24gbyhzKXtyZXR1cm4gSCQocixpLHMpfX19ZnVuY3Rpb24gWCQoZSl7Zm9yKDshWE4oZSk7KTtyZXR1cm4gZX1jb25zdCBHRT0vW1wwXHRcblxyXS9nO2Z1bmN0aW9uIFokKCl7bGV0IGU9MSx0PSIiLG49ITAscjtyZXR1cm4gYTtmdW5jdGlvbiBhKGksbyxzKXtjb25zdCBsPVtdO2xldCB1LGMsZCxwLGY7Zm9yKGk9dCsodHlwZW9mIGk9PSJzdHJpbmciP2kudG9TdHJpbmcoKTpuZXcgVGV4dERlY29kZXIob3x8dm9pZCAwKS5kZWNvZGUoaSkpLGQ9MCx0PSIiLG4mJihpLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmZCsrLG49dm9pZCAwKTtkPGkubGVuZ3RoOyl7aWYoR0UubGFzdEluZGV4PWQsdT1HRS5leGVjKGkpLHA9dSYmdS5pbmRleCE9PXZvaWQgMD91LmluZGV4OmkubGVuZ3RoLGY9aS5jaGFyQ29kZUF0KHApLCF1KXt0PWkuc2xpY2UoZCk7YnJlYWt9aWYoZj09PTEwJiZkPT09cCYmcilsLnB1c2goLTMpLHI9dm9pZCAwO2Vsc2Ugc3dpdGNoKHImJihsLnB1c2goLTUpLHI9dm9pZCAwKSxkPHAmJihsLnB1c2goaS5zbGljZShkLHApKSxlKz1wLWQpLGYpe2Nhc2UgMDp7bC5wdXNoKDY1NTMzKSxlKys7YnJlYWt9Y2FzZSA5Ontmb3IoYz1NYXRoLmNlaWwoZS80KSo0LGwucHVzaCgtMik7ZSsrPGM7KWwucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7bC5wdXNoKC00KSxlPTE7YnJlYWt9ZGVmYXVsdDpyPSEwLGU9MX1kPXArMX1yZXR1cm4gcyYmKHImJmwucHVzaCgtNSksdCYmbC5wdXNoKHQpLGwucHVzaChudWxsKSksbH19Y29uc3QgUSQ9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naTtmdW5jdGlvbiBKJChlKXtyZXR1cm4gZS5yZXBsYWNlKFEkLGV6KX1mdW5jdGlvbiBleihlLHQsbil7aWYodClyZXR1cm4gdDtpZihuLmNoYXJDb2RlQXQoMCk9PT0zNSl7Y29uc3QgYT1uLmNoYXJDb2RlQXQoMSksaT1hPT09MTIwfHxhPT09ODg7cmV0dXJuIEhOKG4uc2xpY2UoaT8yOjEpLGk/MTY6MTApfXJldHVybiB1YihuKXx8ZX1jb25zdCBuQz17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB0eihlLHQsbil7cmV0dXJuIHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmKG49dCx0PXZvaWQgMCksbnoobikoWCQoSyQobikuZG9jdW1lbnQoKS53cml0ZShaJCgpKGUsdCwhMCkpKSl9ZnVuY3Rpb24gbnooZSl7Y29uc3QgdD17dHJhbnNmb3JtczpbXSxjYW5Db250YWluRW9sczpbImVtcGhhc2lzIiwiZnJhZ21lbnQiLCJoZWFkaW5nIiwicGFyYWdyYXBoIiwic3Ryb25nIl0sZW50ZXI6e2F1dG9saW5rOmkoR2IpLGF1dG9saW5rUHJvdG9jb2w6SSxhdXRvbGlua0VtYWlsOkksYXR4SGVhZGluZzppKCRiKSxibG9ja1F1b3RlOmkoRXQpLGNoYXJhY3RlckVzY2FwZTpJLGNoYXJhY3RlclJlZmVyZW5jZTpJLGNvZGVGZW5jZWQ6aShNdCksY29kZUZlbmNlZEZlbmNlSW5mbzpvLGNvZGVGZW5jZWRGZW5jZU1ldGE6byxjb2RlSW5kZW50ZWQ6aShNdCxvKSxjb2RlVGV4dDppKFpzLG8pLGNvZGVUZXh0RGF0YTpJLGRhdGE6SSxjb2RlRmxvd1ZhbHVlOkksZGVmaW5pdGlvbjppKGJhKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6byxkZWZpbml0aW9uTGFiZWxTdHJpbmc6byxkZWZpbml0aW9uVGl0bGVTdHJpbmc6byxlbXBoYXNpczppKFhDKSxoYXJkQnJlYWtFc2NhcGU6aSh6YiksaGFyZEJyZWFrVHJhaWxpbmc6aSh6YiksaHRtbEZsb3c6aShqYixvKSxodG1sRmxvd0RhdGE6SSxodG1sVGV4dDppKGpiLG8pLGh0bWxUZXh0RGF0YTpJLGltYWdlOmkoWkMpLGxhYmVsOm8sbGluazppKEdiKSxsaXN0SXRlbTppKFFDKSxsaXN0SXRlbVZhbHVlOnAsbGlzdE9yZGVyZWQ6aShxYixkKSxsaXN0VW5vcmRlcmVkOmkocWIpLHBhcmFncmFwaDppKEpDKSxyZWZlcmVuY2U6eCxyZWZlcmVuY2VTdHJpbmc6byxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOm8scmVzb3VyY2VUaXRsZVN0cmluZzpvLHNldGV4dEhlYWRpbmc6aSgkYiksc3Ryb25nOmkoZTApLHRoZW1hdGljQnJlYWs6aShuMCl9LGV4aXQ6e2F0eEhlYWRpbmc6bCgpLGF0eEhlYWRpbmdTZXF1ZW5jZTpULGF1dG9saW5rOmwoKSxhdXRvbGlua0VtYWlsOkR0LGF1dG9saW5rUHJvdG9jb2w6VWUsYmxvY2tRdW90ZTpsKCksY2hhcmFjdGVyRXNjYXBlVmFsdWU6QyxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpoZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOmhlLGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOmVlLGNoYXJhY3RlclJlZmVyZW5jZTpTZSxjb2RlRmVuY2VkOmwoQSksY29kZUZlbmNlZEZlbmNlOmIsY29kZUZlbmNlZEZlbmNlSW5mbzpmLGNvZGVGZW5jZWRGZW5jZU1ldGE6eSxjb2RlRmxvd1ZhbHVlOkMsY29kZUluZGVudGVkOmwoaCksY29kZVRleHQ6bChHKSxjb2RlVGV4dERhdGE6QyxkYXRhOkMsZGVmaW5pdGlvbjpsKCksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOkUsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOm0sZGVmaW5pdGlvblRpdGxlU3RyaW5nOmcsZW1waGFzaXM6bCgpLGhhcmRCcmVha0VzY2FwZTpsKEYpLGhhcmRCcmVha1RyYWlsaW5nOmwoRiksaHRtbEZsb3c6bChxKSxodG1sRmxvd0RhdGE6QyxodG1sVGV4dDpsKFcpLGh0bWxUZXh0RGF0YTpDLGltYWdlOmwoViksbGFiZWw6VSxsYWJlbFRleHQ6TixsaW5lRW5kaW5nOkwsbGluazpsKEspLGxpc3RJdGVtOmwoKSxsaXN0T3JkZXJlZDpsKCksbGlzdFVub3JkZXJlZDpsKCkscGFyYWdyYXBoOmwoKSxyZWZlcmVuY2VTdHJpbmc6dGUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpTLHJlc291cmNlVGl0bGVTdHJpbmc6JCxyZXNvdXJjZTpqLHNldGV4dEhlYWRpbmc6bChfKSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOlIsc2V0ZXh0SGVhZGluZ1RleHQ6dixzdHJvbmc6bCgpLHRoZW1hdGljQnJlYWs6bCgpfX07ckModCwoZXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2NvbnN0IG49e307cmV0dXJuIHI7ZnVuY3Rpb24gcihPKXtsZXQgQj17dHlwZToicm9vdCIsY2hpbGRyZW46W119O2NvbnN0IFg9e3N0YWNrOltCXSx0b2tlblN0YWNrOltdLGNvbmZpZzp0LGVudGVyOnMsZXhpdDp1LGJ1ZmZlcjpvLHJlc3VtZTpjLGRhdGE6bn0sbmU9W107bGV0IG9lPS0xO2Zvcig7KytvZTxPLmxlbmd0aDspaWYoT1tvZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fE9bb2VdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoT1tvZV1bMF09PT0iZW50ZXIiKW5lLnB1c2gob2UpO2Vsc2V7Y29uc3QgUHQ9bmUucG9wKCk7b2U9YShPLFB0LG9lKX1mb3Iob2U9LTE7KytvZTxPLmxlbmd0aDspe2NvbnN0IFB0PXRbT1tvZV1bMF1dO25DLmNhbGwoUHQsT1tvZV1bMV0udHlwZSkmJlB0W09bb2VdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6T1tvZV1bMl0uc2xpY2VTZXJpYWxpemV9LFgpLE9bb2VdWzFdKX1pZihYLnRva2VuU3RhY2subGVuZ3RoPjApe2NvbnN0IFB0PVgudG9rZW5TdGFja1tYLnRva2VuU3RhY2subGVuZ3RoLTFdOyhQdFsxXXx8cUUpLmNhbGwoWCx2b2lkIDAsUHRbMF0pfWZvcihCLnBvc2l0aW9uPXtzdGFydDpFbihPLmxlbmd0aD4wP09bMF1bMV0uc3RhcnQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pLGVuZDpFbihPLmxlbmd0aD4wP09bTy5sZW5ndGgtMl1bMV0uZW5kOntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KX0sb2U9LTE7KytvZTx0LnRyYW5zZm9ybXMubGVuZ3RoOylCPXQudHJhbnNmb3Jtc1tvZV0oQil8fEI7cmV0dXJuIEJ9ZnVuY3Rpb24gYShPLEIsWCl7bGV0IG5lPUItMSxvZT0tMSxQdD0hMSxZbixybix5YSx2YTtmb3IoOysrbmU8PVg7KXtjb25zdCB1dD1PW25lXTtzd2l0Y2godXRbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOnt1dFswXT09PSJlbnRlciI/b2UrKzpvZS0tLHZhPXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e3V0WzBdPT09ImVudGVyIiYmKFluJiYhdmEmJiFvZSYmIXlhJiYoeWE9bmUpLHZhPXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0OnZhPXZvaWQgMH1pZighb2UmJnV0WzBdPT09ImVudGVyIiYmdXRbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fG9lPT09LTEmJnV0WzBdPT09ImV4aXQiJiYodXRbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8dXRbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZihZbil7bGV0IFNyPW5lO2Zvcihybj12b2lkIDA7U3ItLTspe2NvbnN0IGFuPU9bU3JdO2lmKGFuWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGFuWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIil7aWYoYW5bMF09PT0iZXhpdCIpY29udGludWU7cm4mJihPW3JuXVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiLFB0PSEwKSxhblsxXS50eXBlPSJsaW5lRW5kaW5nIixybj1Tcn1lbHNlIGlmKCEoYW5bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8YW5bMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4Inx8YW5bMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSJ8fGFuWzFdLnR5cGU9PT0iYmxvY2tRdW90ZU1hcmtlciJ8fGFuWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVha315YSYmKCFybnx8eWE8cm4pJiYoWW4uX3NwcmVhZD0hMCksWW4uZW5kPU9iamVjdC5hc3NpZ24oe30scm4/T1tybl1bMV0uc3RhcnQ6dXRbMV0uZW5kKSxPLnNwbGljZShybnx8bmUsMCxbImV4aXQiLFluLHV0WzJdXSksbmUrKyxYKyt9aWYodXRbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCIpe2NvbnN0IFNyPXt0eXBlOiJsaXN0SXRlbSIsX3NwcmVhZDohMSxzdGFydDpPYmplY3QuYXNzaWduKHt9LHV0WzFdLnN0YXJ0KSxlbmQ6dm9pZCAwfTtZbj1TcixPLnNwbGljZShuZSwwLFsiZW50ZXIiLFNyLHV0WzJdXSksbmUrKyxYKysseWE9dm9pZCAwLHZhPSEwfX19cmV0dXJuIE9bQl1bMV0uX3NwcmVhZD1QdCxYfWZ1bmN0aW9uIGkoTyxCKXtyZXR1cm4gWDtmdW5jdGlvbiBYKG5lKXtzLmNhbGwodGhpcyxPKG5lKSxuZSksQiYmQi5jYWxsKHRoaXMsbmUpfX1mdW5jdGlvbiBvKCl7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJmcmFnbWVudCIsY2hpbGRyZW46W119KX1mdW5jdGlvbiBzKE8sQixYKXt0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLnB1c2goTyksdGhpcy5zdGFjay5wdXNoKE8pLHRoaXMudG9rZW5TdGFjay5wdXNoKFtCLFh8fHZvaWQgMF0pLE8ucG9zaXRpb249e3N0YXJ0OkVuKEIuc3RhcnQpLGVuZDp2b2lkIDB9fWZ1bmN0aW9uIGwoTyl7cmV0dXJuIEI7ZnVuY3Rpb24gQihYKXtPJiZPLmNhbGwodGhpcyxYKSx1LmNhbGwodGhpcyxYKX19ZnVuY3Rpb24gdShPLEIpe2NvbnN0IFg9dGhpcy5zdGFjay5wb3AoKSxuZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYobmUpbmVbMF0udHlwZSE9PU8udHlwZSYmKEI/Qi5jYWxsKHRoaXMsTyxuZVswXSk6KG5lWzFdfHxxRSkuY2FsbCh0aGlzLE8sbmVbMF0pKTtlbHNlIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK08udHlwZSsiYCAoIituaSh7c3RhcnQ6Ty5zdGFydCxlbmQ6Ty5lbmR9KSsiKTogaXTigJlzIG5vdCBvcGVuIik7WC5wb3NpdGlvbi5lbmQ9RW4oTy5lbmQpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gZUIodGhpcy5zdGFjay5wb3AoKSl9ZnVuY3Rpb24gZCgpe3RoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9ITB9ZnVuY3Rpb24gcChPKXtpZih0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlKXtjb25zdCBCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07Qi5zdGFydD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShPKSwxMCksdGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT12b2lkIDB9fWZ1bmN0aW9uIGYoKXtjb25zdCBPPXRoaXMucmVzdW1lKCksQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IubGFuZz1PfWZ1bmN0aW9uIHkoKXtjb25zdCBPPXRoaXMucmVzdW1lKCksQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IubWV0YT1PfWZ1bmN0aW9uIGIoKXt0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGV8fCh0aGlzLmJ1ZmZlcigpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT0hMCl9ZnVuY3Rpb24gQSgpe2NvbnN0IE89dGhpcy5yZXN1bWUoKSxCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Qi52YWx1ZT1PLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT12b2lkIDB9ZnVuY3Rpb24gaCgpe2NvbnN0IE89dGhpcy5yZXN1bWUoKSxCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Qi52YWx1ZT1PLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIG0oTyl7Y29uc3QgQj10aGlzLnJlc3VtZSgpLFg9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtYLmxhYmVsPUIsWC5pZGVudGlmaWVyPVpyKHRoaXMuc2xpY2VTZXJpYWxpemUoTykpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZygpe2NvbnN0IE89dGhpcy5yZXN1bWUoKSxCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Qi50aXRsZT1PfWZ1bmN0aW9uIEUoKXtjb25zdCBPPXRoaXMucmVzdW1lKCksQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IudXJsPU99ZnVuY3Rpb24gVChPKXtjb25zdCBCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYoIUIuZGVwdGgpe2NvbnN0IFg9dGhpcy5zbGljZVNlcmlhbGl6ZShPKS5sZW5ndGg7Qi5kZXB0aD1YfX1mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9ITB9ZnVuY3Rpb24gUihPKXtjb25zdCBCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Qi5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKE8pLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIF8oKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gSShPKXtjb25zdCBYPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW47bGV0IG5lPVhbWC5sZW5ndGgtMV07KCFuZXx8bmUudHlwZSE9PSJ0ZXh0IikmJihuZT10MCgpLG5lLnBvc2l0aW9uPXtzdGFydDpFbihPLnN0YXJ0KSxlbmQ6dm9pZCAwfSxYLnB1c2gobmUpKSx0aGlzLnN0YWNrLnB1c2gobmUpfWZ1bmN0aW9uIEMoTyl7Y29uc3QgQj10aGlzLnN0YWNrLnBvcCgpO0IudmFsdWUrPXRoaXMuc2xpY2VTZXJpYWxpemUoTyksQi5wb3NpdGlvbi5lbmQ9RW4oTy5lbmQpfWZ1bmN0aW9uIEwoTyl7Y29uc3QgQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5hdEhhcmRCcmVhayl7Y29uc3QgWD1CLmNoaWxkcmVuW0IuY2hpbGRyZW4ubGVuZ3RoLTFdO1gucG9zaXRpb24uZW5kPUVuKE8uZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJnQuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXMoQi50eXBlKSYmKEkuY2FsbCh0aGlzLE8pLEMuY2FsbCh0aGlzLE8pKX1mdW5jdGlvbiBGKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uIHEoKXtjb25zdCBPPXRoaXMucmVzdW1lKCksQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IudmFsdWU9T31mdW5jdGlvbiBXKCl7Y29uc3QgTz10aGlzLnJlc3VtZSgpLEI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtCLnZhbHVlPU99ZnVuY3Rpb24gRygpe2NvbnN0IE89dGhpcy5yZXN1bWUoKSxCPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Qi52YWx1ZT1PfWZ1bmN0aW9uIEsoKXtjb25zdCBPPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtjb25zdCBCPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO08udHlwZSs9IlJlZmVyZW5jZSIsTy5yZWZlcmVuY2VUeXBlPUIsZGVsZXRlIE8udXJsLGRlbGV0ZSBPLnRpdGxlfWVsc2UgZGVsZXRlIE8uaWRlbnRpZmllcixkZWxldGUgTy5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gVigpe2NvbnN0IE89dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2NvbnN0IEI9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Ty50eXBlKz0iUmVmZXJlbmNlIixPLnJlZmVyZW5jZVR5cGU9QixkZWxldGUgTy51cmwsZGVsZXRlIE8udGl0bGV9ZWxzZSBkZWxldGUgTy5pZGVudGlmaWVyLGRlbGV0ZSBPLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBOKE8pe2NvbnN0IEI9dGhpcy5zbGljZVNlcmlhbGl6ZShPKSxYPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07WC5sYWJlbD1KJChCKSxYLmlkZW50aWZpZXI9WnIoQikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBVKCl7Y29uc3QgTz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLEI9dGhpcy5yZXN1bWUoKSxYPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlPSEwLFgudHlwZT09PSJsaW5rIil7Y29uc3QgbmU9Ty5jaGlsZHJlbjtYLmNoaWxkcmVuPW5lfWVsc2UgWC5hbHQ9Qn1mdW5jdGlvbiBTKCl7Y29uc3QgTz10aGlzLnJlc3VtZSgpLEI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtCLnVybD1PfWZ1bmN0aW9uICQoKXtjb25zdCBPPXRoaXMucmVzdW1lKCksQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IudGl0bGU9T31mdW5jdGlvbiBqKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiB4KCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gdGUoTyl7Y29uc3QgQj10aGlzLnJlc3VtZSgpLFg9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtYLmxhYmVsPUIsWC5pZGVudGlmaWVyPVpyKHRoaXMuc2xpY2VTZXJpYWxpemUoTykpLnRvTG93ZXJDYXNlKCksdGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImZ1bGwifWZ1bmN0aW9uIGhlKE8pe3RoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPU8udHlwZX1mdW5jdGlvbiBlZShPKXtjb25zdCBCPXRoaXMuc2xpY2VTZXJpYWxpemUoTyksWD10aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZTtsZXQgbmU7WD8obmU9SE4oQixYPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOm5lPXViKEIpO2NvbnN0IG9lPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07b2UudmFsdWUrPW5lfWZ1bmN0aW9uIFNlKE8pe2NvbnN0IEI9dGhpcy5zdGFjay5wb3AoKTtCLnBvc2l0aW9uLmVuZD1FbihPLmVuZCl9ZnVuY3Rpb24gVWUoTyl7Qy5jYWxsKHRoaXMsTyk7Y29uc3QgQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IudXJsPXRoaXMuc2xpY2VTZXJpYWxpemUoTyl9ZnVuY3Rpb24gRHQoTyl7Qy5jYWxsKHRoaXMsTyk7Y29uc3QgQj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0IudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKE8pfWZ1bmN0aW9uIEV0KCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBNdCgpe3JldHVybnt0eXBlOiJjb2RlIixsYW5nOm51bGwsbWV0YTpudWxsLHZhbHVlOiIifX1mdW5jdGlvbiBacygpe3JldHVybnt0eXBlOiJpbmxpbmVDb2RlIix2YWx1ZToiIn19ZnVuY3Rpb24gYmEoKXtyZXR1cm57dHlwZToiZGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDpudWxsLHRpdGxlOm51bGwsdXJsOiIifX1mdW5jdGlvbiBYQygpe3JldHVybnt0eXBlOiJlbXBoYXNpcyIsY2hpbGRyZW46W119fWZ1bmN0aW9uICRiKCl7cmV0dXJue3R5cGU6ImhlYWRpbmciLGRlcHRoOjAsY2hpbGRyZW46W119fWZ1bmN0aW9uIHpiKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gamIoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIFpDKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gR2IoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIHFiKE8pe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOk8udHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6Ty5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBRQyhPKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpPLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBKQygpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBlMCgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiB0MCgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gbjAoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiBFbihlKXtyZXR1cm57bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1uLG9mZnNldDplLm9mZnNldH19ZnVuY3Rpb24gckMoZSx0KXtsZXQgbj0tMTtmb3IoOysrbjx0Lmxlbmd0aDspe2NvbnN0IHI9dFtuXTtBcnJheS5pc0FycmF5KHIpP3JDKGUscik6cnooZSxyKX19ZnVuY3Rpb24gcnooZSx0KXtsZXQgbjtmb3IobiBpbiB0KWlmKG5DLmNhbGwodCxuKSlzd2l0Y2gobil7Y2FzZSJjYW5Db250YWluRW9scyI6e2NvbnN0IHI9dFtuXTtyJiZlW25dLnB1c2goLi4ucik7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7Y29uc3Qgcj10W25dO3ImJmVbbl0ucHVzaCguLi5yKTticmVha31jYXNlImVudGVyIjpjYXNlImV4aXQiOntjb25zdCByPXRbbl07ciYmT2JqZWN0LmFzc2lnbihlW25dLHIpO2JyZWFrfX19ZnVuY3Rpb24gcUUoZSx0KXt0aHJvdyBlP25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK2UudHlwZSsiYCAoIituaSh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK3QudHlwZSsiYCwgIituaSh7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK3QudHlwZSsiYCwgIituaSh7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9ZnVuY3Rpb24gYXooZSl7Y29uc3QgdD10aGlzO3QucGFyc2VyPW47ZnVuY3Rpb24gbihyKXtyZXR1cm4gdHoocix7Li4udC5kYXRhKCJzZXR0aW5ncyIpLC4uLmUsZXh0ZW5zaW9uczp0LmRhdGEoIm1pY3JvbWFya0V4dGVuc2lvbnMiKXx8W10sbWRhc3RFeHRlbnNpb25zOnQuZGF0YSgiZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyIpfHxbXX0pfX1mdW5jdGlvbiBpeihlLHQpe2NvbnN0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJsb2NrcXVvdGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGUuYWxsKHQpLCEwKX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfWZ1bmN0aW9uIG96KGUsdCl7Y29uc3Qgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYnIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKHQsbiksW2UuYXBwbHlEYXRhKHQsbikse3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfWZ1bmN0aW9uIHN6KGUsdCl7Y29uc3Qgbj10LnZhbHVlP3QudmFsdWUrYApgOiIiLHI9e30sYT10Lmxhbmc/dC5sYW5nLnNwbGl0KC9ccysvKTpbXTthLmxlbmd0aD4wJiYoci5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK2FbMF1dKTtsZXQgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczpyLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6bn1dfTtyZXR1cm4gdC5tZXRhJiYoaS5kYXRhPXttZXRhOnQubWV0YX0pLGUucGF0Y2godCxpKSxpPWUuYXBwbHlEYXRhKHQsaSksaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltpXX0sZS5wYXRjaCh0LGkpLGl9ZnVuY3Rpb24gbHooZSx0KXtjb25zdCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJkZWwiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS5hbGwodCl9O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX1mdW5jdGlvbiB1eihlLHQpe2NvbnN0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImVtIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9ZnVuY3Rpb24gY3ooZSx0KXtjb25zdCBuPXR5cGVvZiBlLm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHI9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPWdhKHIudG9Mb3dlckNhc2UoKSksaT1lLmZvb3Rub3RlT3JkZXIuaW5kZXhPZihyKTtsZXQgbyxzPWUuZm9vdG5vdGVDb3VudHMuZ2V0KHIpO3M9PT12b2lkIDA/KHM9MCxlLmZvb3Rub3RlT3JkZXIucHVzaChyKSxvPWUuZm9vdG5vdGVPcmRlci5sZW5ndGgpOm89aSsxLHMrPTEsZS5mb290bm90ZUNvdW50cy5zZXQocixzKTtjb25zdCBsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIituKyJmbi0iK2EsaWQ6bisiZm5yZWYtIithKyhzPjE/Ii0iK3M6IiIpLGRhdGFGb290bm90ZVJlZjohMCxhcmlhRGVzY3JpYmVkQnk6WyJmb290bm90ZS1sYWJlbCJdfSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhvKX1dfTtlLnBhdGNoKHQsbCk7Y29uc3QgdT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltsXX07cmV0dXJuIGUucGF0Y2godCx1KSxlLmFwcGx5RGF0YSh0LHUpfWZ1bmN0aW9uIGR6KGUsdCl7Y29uc3Qgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrdC5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9ZnVuY3Rpb24gcHooZSx0KXtpZihlLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sKXtjb25zdCBuPXt0eXBlOiJyYXciLHZhbHVlOnQudmFsdWV9O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX19ZnVuY3Rpb24gYUMoZSx0KXtjb25zdCBuPXQucmVmZXJlbmNlVHlwZTtsZXQgcj0iXSI7aWYobj09PSJjb2xsYXBzZWQiP3IrPSJbXSI6bj09PSJmdWxsIiYmKHIrPSJbIisodC5sYWJlbHx8dC5pZGVudGlmaWVyKSsiXSIpLHQudHlwZT09PSJpbWFnZVJlZmVyZW5jZSIpcmV0dXJuW3t0eXBlOiJ0ZXh0Iix2YWx1ZToiIVsiK3QuYWx0K3J9XTtjb25zdCBhPWUuYWxsKHQpLGk9YVswXTtpJiZpLnR5cGU9PT0idGV4dCI/aS52YWx1ZT0iWyIraS52YWx1ZTphLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2NvbnN0IG89YVthLmxlbmd0aC0xXTtyZXR1cm4gbyYmby50eXBlPT09InRleHQiP28udmFsdWUrPXI6YS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpyfSksYX1mdW5jdGlvbiBmeihlLHQpe2NvbnN0IG49U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxyPWUuZGVmaW5pdGlvbkJ5SWQuZ2V0KG4pO2lmKCFyKXJldHVybiBhQyhlLHQpO2NvbnN0IGE9e3NyYzpnYShyLnVybHx8IiIpLGFsdDp0LmFsdH07ci50aXRsZSE9PW51bGwmJnIudGl0bGUhPT12b2lkIDAmJihhLnRpdGxlPXIudGl0bGUpO2NvbnN0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczphLGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9ZnVuY3Rpb24gbXooZSx0KXtjb25zdCBuPXtzcmM6Z2EodC51cmwpfTt0LmFsdCE9PW51bGwmJnQuYWx0IT09dm9pZCAwJiYobi5hbHQ9dC5hbHQpLHQudGl0bGUhPT1udWxsJiZ0LnRpdGxlIT09dm9pZCAwJiYobi50aXRsZT10LnRpdGxlKTtjb25zdCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbWciLHByb3BlcnRpZXM6bixjaGlsZHJlbjpbXX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfWZ1bmN0aW9uIGd6KGUsdCl7Y29uc3Qgbj17dHlwZToidGV4dCIsdmFsdWU6dC52YWx1ZS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIil9O2UucGF0Y2godCxuKTtjb25zdCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfWZ1bmN0aW9uIGh6KGUsdCl7Y29uc3Qgbj1TdHJpbmcodC5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHI9ZS5kZWZpbml0aW9uQnlJZC5nZXQobik7aWYoIXIpcmV0dXJuIGFDKGUsdCk7Y29uc3QgYT17aHJlZjpnYShyLnVybHx8IiIpfTtyLnRpdGxlIT09bnVsbCYmci50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9ci50aXRsZSk7Y29uc3QgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczphLGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9ZnVuY3Rpb24gYnooZSx0KXtjb25zdCBuPXtocmVmOmdhKHQudXJsKX07dC50aXRsZSE9PW51bGwmJnQudGl0bGUhPT12b2lkIDAmJihuLnRpdGxlPXQudGl0bGUpO2NvbnN0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6bixjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfWZ1bmN0aW9uIHl6KGUsdCxuKXtjb25zdCByPWUuYWxsKHQpLGE9bj92eihuKTppQyh0KSxpPXt9LG89W107aWYodHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iKXtjb25zdCBjPXJbMF07bGV0IGQ7YyYmYy50eXBlPT09ImVsZW1lbnQiJiZjLnRhZ05hbWU9PT0icCI/ZD1jOihkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxyLnVuc2hpZnQoZCkpLGQuY2hpbGRyZW4ubGVuZ3RoPjAmJmQuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6dC5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLGkuY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgcz0tMTtmb3IoOysrczxyLmxlbmd0aDspe2NvbnN0IGM9cltzXTsoYXx8cyE9PTB8fGMudHlwZSE9PSJlbGVtZW50Inx8Yy50YWdOYW1lIT09InAiKSYmby5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxjLnR5cGU9PT0iZWxlbWVudCImJmMudGFnTmFtZT09PSJwIiYmIWE/by5wdXNoKC4uLmMuY2hpbGRyZW4pOm8ucHVzaChjKX1jb25zdCBsPXJbci5sZW5ndGgtMV07bCYmKGF8fGwudHlwZSE9PSJlbGVtZW50Inx8bC50YWdOYW1lIT09InAiKSYmby5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTtjb25zdCB1PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczppLGNoaWxkcmVuOm99O3JldHVybiBlLnBhdGNoKHQsdSksZS5hcHBseURhdGEodCx1KX1mdW5jdGlvbiB2eihlKXtsZXQgdD0hMTtpZihlLnR5cGU9PT0ibGlzdCIpe3Q9ZS5zcHJlYWR8fCExO2NvbnN0IG49ZS5jaGlsZHJlbjtsZXQgcj0tMTtmb3IoOyF0JiYrK3I8bi5sZW5ndGg7KXQ9aUMobltyXSl9cmV0dXJuIHR9ZnVuY3Rpb24gaUMoZSl7Y29uc3QgdD1lLnNwcmVhZDtyZXR1cm4gdD8/ZS5jaGlsZHJlbi5sZW5ndGg+MX1mdW5jdGlvbiBFeihlLHQpe2NvbnN0IG49e30scj1lLmFsbCh0KTtsZXQgYT0tMTtmb3IodHlwZW9mIHQuc3RhcnQ9PSJudW1iZXIiJiZ0LnN0YXJ0IT09MSYmKG4uc3RhcnQ9dC5zdGFydCk7KythPHIubGVuZ3RoOyl7Y29uc3Qgbz1yW2FdO2lmKG8udHlwZT09PSJlbGVtZW50IiYmby50YWdOYW1lPT09ImxpIiYmby5wcm9wZXJ0aWVzJiZBcnJheS5pc0FycmF5KG8ucHJvcGVydGllcy5jbGFzc05hbWUpJiZvLnByb3BlcnRpZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCJ0YXNrLWxpc3QtaXRlbSIpKXtuLmNsYXNzTmFtZT1bImNvbnRhaW5zLXRhc2stbGlzdCJdO2JyZWFrfX1jb25zdCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnQub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczpuLGNoaWxkcmVuOmUud3JhcChyLCEwKX07cmV0dXJuIGUucGF0Y2godCxpKSxlLmFwcGx5RGF0YSh0LGkpfWZ1bmN0aW9uIFN6KGUsdCl7Y29uc3Qgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfWZ1bmN0aW9uIHd6KGUsdCl7Y29uc3Qgbj17dHlwZToicm9vdCIsY2hpbGRyZW46ZS53cmFwKGUuYWxsKHQpKX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfWZ1bmN0aW9uIFR6KGUsdCl7Y29uc3Qgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3Ryb25nIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9ZnVuY3Rpb24ga3ooZSx0KXtjb25zdCBuPWUuYWxsKHQpLHI9bi5zaGlmdCgpLGE9W107aWYocil7Y29uc3Qgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGhlYWQiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKFtyXSwhMCl9O2UucGF0Y2godC5jaGlsZHJlblswXSxvKSxhLnB1c2gobyl9aWYobi5sZW5ndGg+MCl7Y29uc3Qgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGJvZHkiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKG4sITApfSxzPWliKHQuY2hpbGRyZW5bMV0pLGw9Qk4odC5jaGlsZHJlblt0LmNoaWxkcmVuLmxlbmd0aC0xXSk7cyYmbCYmKG8ucG9zaXRpb249e3N0YXJ0OnMsZW5kOmx9KSxhLnB1c2gobyl9Y29uc3QgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGEsITApfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9ZnVuY3Rpb24gQXooZSx0LG4pe2NvbnN0IHI9bj9uLmNoaWxkcmVuOnZvaWQgMCxpPShyP3IuaW5kZXhPZih0KToxKT09PTA/InRoIjoidGQiLG89biYmbi50eXBlPT09InRhYmxlIj9uLmFsaWduOnZvaWQgMCxzPW8/by5sZW5ndGg6dC5jaGlsZHJlbi5sZW5ndGg7bGV0IGw9LTE7Y29uc3QgdT1bXTtmb3IoOysrbDxzOyl7Y29uc3QgZD10LmNoaWxkcmVuW2xdLHA9e30sZj1vP29bbF06dm9pZCAwO2YmJihwLmFsaWduPWYpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmkscHJvcGVydGllczpwLGNoaWxkcmVuOltdfTtkJiYoeS5jaGlsZHJlbj1lLmFsbChkKSxlLnBhdGNoKGQseSkseT1lLmFwcGx5RGF0YShkLHkpKSx1LnB1c2goeSl9Y29uc3QgYz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidHIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKHUsITApfTtyZXR1cm4gZS5wYXRjaCh0LGMpLGUuYXBwbHlEYXRhKHQsYyl9ZnVuY3Rpb24geHooZSx0KXtjb25zdCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfWNvbnN0IFZFPTksSEU9MzI7ZnVuY3Rpb24gUnooZSl7Y29uc3QgdD1TdHJpbmcoZSksbj0vXHI/XG58XHIvZztsZXQgcj1uLmV4ZWModCksYT0wO2NvbnN0IGk9W107Zm9yKDtyOylpLnB1c2goV0UodC5zbGljZShhLHIuaW5kZXgpLGE+MCwhMCksclswXSksYT1yLmluZGV4K3JbMF0ubGVuZ3RoLHI9bi5leGVjKHQpO3JldHVybiBpLnB1c2goV0UodC5zbGljZShhKSxhPjAsITEpKSxpLmpvaW4oIiIpfWZ1bmN0aW9uIFdFKGUsdCxuKXtsZXQgcj0wLGE9ZS5sZW5ndGg7aWYodCl7bGV0IGk9ZS5jb2RlUG9pbnRBdChyKTtmb3IoO2k9PT1WRXx8aT09PUhFOylyKyssaT1lLmNvZGVQb2ludEF0KHIpfWlmKG4pe2xldCBpPWUuY29kZVBvaW50QXQoYS0xKTtmb3IoO2k9PT1WRXx8aT09PUhFOylhLS0saT1lLmNvZGVQb2ludEF0KGEtMSl9cmV0dXJuIGE+cj9lLnNsaWNlKHIsYSk6IiJ9ZnVuY3Rpb24gX3ooZSx0KXtjb25zdCBuPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpSeihTdHJpbmcodC52YWx1ZSkpfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9ZnVuY3Rpb24gSXooZSx0KXtjb25zdCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfWNvbnN0IE56PXtibG9ja3F1b3RlOml6LGJyZWFrOm96LGNvZGU6c3osZGVsZXRlOmx6LGVtcGhhc2lzOnV6LGZvb3Rub3RlUmVmZXJlbmNlOmN6LGhlYWRpbmc6ZHosaHRtbDpweixpbWFnZVJlZmVyZW5jZTpmeixpbWFnZTpteixpbmxpbmVDb2RlOmd6LGxpbmtSZWZlcmVuY2U6aHosbGluazpieixsaXN0SXRlbTp5eixsaXN0OkV6LHBhcmFncmFwaDpTeixyb290Ond6LHN0cm9uZzpUeix0YWJsZTpreix0YWJsZUNlbGw6eHosdGFibGVSb3c6QXosdGV4dDpfeix0aGVtYXRpY0JyZWFrOkl6LHRvbWw6bW8seWFtbDptbyxkZWZpbml0aW9uOm1vLGZvb3Rub3RlRGVmaW5pdGlvbjptb307ZnVuY3Rpb24gbW8oKXt9Y29uc3Qgb0M9LTEscXM9MCxhaT0xLGhzPTIscGI9MyxmYj00LG1iPTUsZ2I9NixzQz03LGxDPTgsWUU9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxDej0oZSx0KT0+e2NvbnN0IG49KGEsaSk9PihlLnNldChpLGEpLGEpLHI9YT0+e2lmKGUuaGFzKGEpKXJldHVybiBlLmdldChhKTtjb25zdFtpLG9dPXRbYV07c3dpdGNoKGkpe2Nhc2UgcXM6Y2FzZSBvQzpyZXR1cm4gbihvLGEpO2Nhc2UgYWk6e2NvbnN0IHM9bihbXSxhKTtmb3IoY29uc3QgbCBvZiBvKXMucHVzaChyKGwpKTtyZXR1cm4gc31jYXNlIGhzOntjb25zdCBzPW4oe30sYSk7Zm9yKGNvbnN0W2wsdV1vZiBvKXNbcihsKV09cih1KTtyZXR1cm4gc31jYXNlIHBiOnJldHVybiBuKG5ldyBEYXRlKG8pLGEpO2Nhc2UgZmI6e2NvbnN0e3NvdXJjZTpzLGZsYWdzOmx9PW87cmV0dXJuIG4obmV3IFJlZ0V4cChzLGwpLGEpfWNhc2UgbWI6e2NvbnN0IHM9bihuZXcgTWFwLGEpO2Zvcihjb25zdFtsLHVdb2YgbylzLnNldChyKGwpLHIodSkpO3JldHVybiBzfWNhc2UgZ2I6e2NvbnN0IHM9bihuZXcgU2V0LGEpO2Zvcihjb25zdCBsIG9mIG8pcy5hZGQocihsKSk7cmV0dXJuIHN9Y2FzZSBzQzp7Y29uc3R7bmFtZTpzLG1lc3NhZ2U6bH09bztyZXR1cm4gbihuZXcgWUVbc10obCksYSl9Y2FzZSBsQzpyZXR1cm4gbihCaWdJbnQobyksYSk7Y2FzZSJCaWdJbnQiOnJldHVybiBuKE9iamVjdChCaWdJbnQobykpLGEpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiBuKG5ldyBVaW50OEFycmF5KG8pLmJ1ZmZlcixvKTtjYXNlIkRhdGFWaWV3Ijp7Y29uc3R7YnVmZmVyOnN9PW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBuKG5ldyBEYXRhVmlldyhzKSxvKX19cmV0dXJuIG4obmV3IFlFW2ldKG8pLGEpfTtyZXR1cm4gcn0sS0U9ZT0+Q3oobmV3IE1hcCxlKSgwKSxUcj0iIix7dG9TdHJpbmc6T3p9PXt9LHtrZXlzOkx6fT1PYmplY3QsT2E9ZT0+e2NvbnN0IHQ9dHlwZW9mIGU7aWYodCE9PSJvYmplY3QifHwhZSlyZXR1cm5bcXMsdF07Y29uc3Qgbj1Pei5jYWxsKGUpLnNsaWNlKDgsLTEpO3N3aXRjaChuKXtjYXNlIkFycmF5IjpyZXR1cm5bYWksVHJdO2Nhc2UiT2JqZWN0IjpyZXR1cm5baHMsVHJdO2Nhc2UiRGF0ZSI6cmV0dXJuW3BiLFRyXTtjYXNlIlJlZ0V4cCI6cmV0dXJuW2ZiLFRyXTtjYXNlIk1hcCI6cmV0dXJuW21iLFRyXTtjYXNlIlNldCI6cmV0dXJuW2diLFRyXTtjYXNlIkRhdGFWaWV3IjpyZXR1cm5bYWksbl19cmV0dXJuIG4uaW5jbHVkZXMoIkFycmF5Iik/W2FpLG5dOm4uaW5jbHVkZXMoIkVycm9yIik/W3NDLG5dOltocyxuXX0sZ289KFtlLHRdKT0+ZT09PXFzJiYodD09PSJmdW5jdGlvbiJ8fHQ9PT0ic3ltYm9sIiksRHo9KGUsdCxuLHIpPT57Y29uc3QgYT0obyxzKT0+e2NvbnN0IGw9ci5wdXNoKG8pLTE7cmV0dXJuIG4uc2V0KHMsbCksbH0saT1vPT57aWYobi5oYXMobykpcmV0dXJuIG4uZ2V0KG8pO2xldFtzLGxdPU9hKG8pO3N3aXRjaChzKXtjYXNlIHFzOntsZXQgYz1vO3N3aXRjaChsKXtjYXNlImJpZ2ludCI6cz1sQyxjPW8udG9TdHJpbmcoKTticmVhaztjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6aWYoZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gc2VyaWFsaXplICIrbCk7Yz1udWxsO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gYShbb0NdLG8pfXJldHVybiBhKFtzLGNdLG8pfWNhc2UgYWk6e2lmKGwpe2xldCBwPW87cmV0dXJuIGw9PT0iRGF0YVZpZXciP3A9bmV3IFVpbnQ4QXJyYXkoby5idWZmZXIpOmw9PT0iQXJyYXlCdWZmZXIiJiYocD1uZXcgVWludDhBcnJheShvKSksYShbbCxbLi4ucF1dLG8pfWNvbnN0IGM9W10sZD1hKFtzLGNdLG8pO2Zvcihjb25zdCBwIG9mIG8pYy5wdXNoKGkocCkpO3JldHVybiBkfWNhc2UgaHM6e2lmKGwpc3dpdGNoKGwpe2Nhc2UiQmlnSW50IjpyZXR1cm4gYShbbCxvLnRvU3RyaW5nKCldLG8pO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpyZXR1cm4gYShbbCxvLnZhbHVlT2YoKV0sbyl9aWYodCYmInRvSlNPTiJpbiBvKXJldHVybiBpKG8udG9KU09OKCkpO2NvbnN0IGM9W10sZD1hKFtzLGNdLG8pO2Zvcihjb25zdCBwIG9mIEx6KG8pKShlfHwhZ28oT2Eob1twXSkpKSYmYy5wdXNoKFtpKHApLGkob1twXSldKTtyZXR1cm4gZH1jYXNlIHBiOnJldHVybiBhKFtzLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSBmYjp7Y29uc3R7c291cmNlOmMsZmxhZ3M6ZH09bztyZXR1cm4gYShbcyx7c291cmNlOmMsZmxhZ3M6ZH1dLG8pfWNhc2UgbWI6e2NvbnN0IGM9W10sZD1hKFtzLGNdLG8pO2Zvcihjb25zdFtwLGZdb2YgbykoZXx8IShnbyhPYShwKSl8fGdvKE9hKGYpKSkpJiZjLnB1c2goW2kocCksaShmKV0pO3JldHVybiBkfWNhc2UgZ2I6e2NvbnN0IGM9W10sZD1hKFtzLGNdLG8pO2Zvcihjb25zdCBwIG9mIG8pKGV8fCFnbyhPYShwKSkpJiZjLnB1c2goaShwKSk7cmV0dXJuIGR9fWNvbnN0e21lc3NhZ2U6dX09bztyZXR1cm4gYShbcyx7bmFtZTpsLG1lc3NhZ2U6dX1dLG8pfTtyZXR1cm4gaX0sWEU9KGUse2pzb246dCxsb3NzeTpufT17fSk9Pntjb25zdCByPVtdO3JldHVybiBEeighKHR8fG4pLCEhdCxuZXcgTWFwLHIpKGUpLHJ9LGJzPXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KGUsdCk9PnQmJigianNvbiJpbiB0fHwibG9zc3kiaW4gdCk/S0UoWEUoZSx0KSk6c3RydWN0dXJlZENsb25lKGUpOihlLHQpPT5LRShYRShlLHQpKTtmdW5jdGlvbiBNeihlLHQpe2NvbnN0IG49W3t0eXBlOiJ0ZXh0Iix2YWx1ZToi4oapIn1dO3JldHVybiB0PjEmJm4ucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKHQpfV19KSxufWZ1bmN0aW9uIFB6KGUsdCl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKGUrMSkrKHQ+MT8iLSIrdDoiIil9ZnVuY3Rpb24gRnooZSl7Y29uc3QgdD10eXBlb2YgZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP2Uub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixuPWUub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxNeixyPWUub3B0aW9ucy5mb290bm90ZUJhY2tMYWJlbHx8UHosYT1lLm9wdGlvbnMuZm9vdG5vdGVMYWJlbHx8IkZvb3Rub3RlcyIsaT1lLm9wdGlvbnMuZm9vdG5vdGVMYWJlbFRhZ05hbWV8fCJoMiIsbz1lLm9wdGlvbnMuZm9vdG5vdGVMYWJlbFByb3BlcnRpZXN8fHtjbGFzc05hbWU6WyJzci1vbmx5Il19LHM9W107bGV0IGw9LTE7Zm9yKDsrK2w8ZS5mb290bm90ZU9yZGVyLmxlbmd0aDspe2NvbnN0IHU9ZS5mb290bm90ZUJ5SWQuZ2V0KGUuZm9vdG5vdGVPcmRlcltsXSk7aWYoIXUpY29udGludWU7Y29uc3QgYz1lLmFsbCh1KSxkPVN0cmluZyh1LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCkscD1nYShkLnRvTG93ZXJDYXNlKCkpO2xldCBmPTA7Y29uc3QgeT1bXSxiPWUuZm9vdG5vdGVDb3VudHMuZ2V0KGQpO2Zvcig7YiE9PXZvaWQgMCYmKytmPD1iOyl7eS5sZW5ndGg+MCYmeS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KTtsZXQgbT10eXBlb2Ygbj09InN0cmluZyI/bjpuKGwsZik7dHlwZW9mIG09PSJzdHJpbmciJiYobT17dHlwZToidGV4dCIsdmFsdWU6bX0pLHkucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrdCsiZm5yZWYtIitwKyhmPjE/Ii0iK2Y6IiIpLGRhdGFGb290bm90ZUJhY2tyZWY6IiIsYXJpYUxhYmVsOnR5cGVvZiByPT0ic3RyaW5nIj9yOnIobCxmKSxjbGFzc05hbWU6WyJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXX0sY2hpbGRyZW46QXJyYXkuaXNBcnJheShtKT9tOlttXX0pfWNvbnN0IEE9Y1tjLmxlbmd0aC0xXTtpZihBJiZBLnR5cGU9PT0iZWxlbWVudCImJkEudGFnTmFtZT09PSJwIil7Y29uc3QgbT1BLmNoaWxkcmVuW0EuY2hpbGRyZW4ubGVuZ3RoLTFdO20mJm0udHlwZT09PSJ0ZXh0Ij9tLnZhbHVlKz0iICI6QS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxBLmNoaWxkcmVuLnB1c2goLi4ueSl9ZWxzZSBjLnB1c2goLi4ueSk7Y29uc3QgaD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToibGkiLHByb3BlcnRpZXM6e2lkOnQrImZuLSIrcH0sY2hpbGRyZW46ZS53cmFwKGMsITApfTtlLnBhdGNoKHUsaCkscy5wdXNoKGgpfWlmKHMubGVuZ3RoIT09MClyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZToic2VjdGlvbiIscHJvcGVydGllczp7ZGF0YUZvb3Rub3RlczohMCxjbGFzc05hbWU6WyJmb290bm90ZXMiXX0sY2hpbGRyZW46W3t0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmkscHJvcGVydGllczp7Li4uYnMobyksaWQ6ImZvb3Rub3RlLWxhYmVsIn0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTphfV19LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJvbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAocywhMCl9LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX19Y29uc3QgdUM9ZnVuY3Rpb24oZSl7aWYoZT09bnVsbClyZXR1cm4geno7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpcmV0dXJuIFZzKGUpO2lmKHR5cGVvZiBlPT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9VeihlKTpCeihlKTtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuICR6KGUpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX07ZnVuY3Rpb24gVXooZSl7Y29uc3QgdD1bXTtsZXQgbj0tMTtmb3IoOysrbjxlLmxlbmd0aDspdFtuXT11QyhlW25dKTtyZXR1cm4gVnMocik7ZnVuY3Rpb24gciguLi5hKXtsZXQgaT0tMTtmb3IoOysraTx0Lmxlbmd0aDspaWYodFtpXS5hcHBseSh0aGlzLGEpKXJldHVybiEwO3JldHVybiExfX1mdW5jdGlvbiBCeihlKXtjb25zdCB0PWU7cmV0dXJuIFZzKG4pO2Z1bmN0aW9uIG4ocil7Y29uc3QgYT1yO2xldCBpO2ZvcihpIGluIGUpaWYoYVtpXSE9PXRbaV0pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uICR6KGUpe3JldHVybiBWcyh0KTtmdW5jdGlvbiB0KG4pe3JldHVybiBuJiZuLnR5cGU9PT1lfX1mdW5jdGlvbiBWcyhlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KG4scixhKXtyZXR1cm4hIShqeihuKSYmZS5jYWxsKHRoaXMsbix0eXBlb2Ygcj09Im51bWJlciI/cjp2b2lkIDAsYXx8dm9pZCAwKSl9fWZ1bmN0aW9uIHp6KCl7cmV0dXJuITB9ZnVuY3Rpb24ganooZSl7cmV0dXJuIGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJiJ0eXBlImluIGV9Y29uc3QgY0M9W10sR3o9ITAsWkU9ITEscXo9InNraXAiO2Z1bmN0aW9uIFZ6KGUsdCxuLHIpe2xldCBhO3R5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9ImZ1bmN0aW9uIj8ocj1uLG49dCk6YT10O2NvbnN0IGk9dUMoYSksbz1yPy0xOjE7cyhlLHZvaWQgMCxbXSkoKTtmdW5jdGlvbiBzKGwsdSxjKXtjb25zdCBkPWwmJnR5cGVvZiBsPT0ib2JqZWN0Ij9sOnt9O2lmKHR5cGVvZiBkLnR5cGU9PSJzdHJpbmciKXtjb25zdCBmPXR5cGVvZiBkLnRhZ05hbWU9PSJzdHJpbmciP2QudGFnTmFtZTp0eXBlb2YgZC5uYW1lPT0ic3RyaW5nIj9kLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShwLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKGwudHlwZSsoZj8iPCIrZisiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gcDtmdW5jdGlvbiBwKCl7bGV0IGY9Y0MseSxiLEE7aWYoKCF0fHxpKGwsdSxjW2MubGVuZ3RoLTFdfHx2b2lkIDApKSYmKGY9SHoobihsLGMpKSxmWzBdPT09WkUpKXJldHVybiBmO2lmKCJjaGlsZHJlbiJpbiBsJiZsLmNoaWxkcmVuKXtjb25zdCBoPWw7aWYoaC5jaGlsZHJlbiYmZlswXSE9PXF6KWZvcihiPShyP2guY2hpbGRyZW4ubGVuZ3RoOi0xKStvLEE9Yy5jb25jYXQoaCk7Yj4tMSYmYjxoLmNoaWxkcmVuLmxlbmd0aDspe2NvbnN0IG09aC5jaGlsZHJlbltiXTtpZih5PXMobSxiLEEpKCkseVswXT09PVpFKXJldHVybiB5O2I9dHlwZW9mIHlbMV09PSJudW1iZXIiP3lbMV06YitvfX1yZXR1cm4gZn19fWZ1bmN0aW9uIEh6KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2U6dHlwZW9mIGU9PSJudW1iZXIiP1tHeixlXTplPT1udWxsP2NDOltlXX1mdW5jdGlvbiBkQyhlLHQsbixyKXtsZXQgYSxpLG87dHlwZW9mIHQ9PSJmdW5jdGlvbiImJnR5cGVvZiBuIT0iZnVuY3Rpb24iPyhpPXZvaWQgMCxvPXQsYT1uKTooaT10LG89bixhPXIpLFZ6KGUsaSxzLGEpO2Z1bmN0aW9uIHMobCx1KXtjb25zdCBjPXVbdS5sZW5ndGgtMV0sZD1jP2MuY2hpbGRyZW4uaW5kZXhPZihsKTp2b2lkIDA7cmV0dXJuIG8obCxkLGMpfX1jb25zdCB2Zz17fS5oYXNPd25Qcm9wZXJ0eSxXej17fTtmdW5jdGlvbiBZeihlLHQpe2NvbnN0IG49dHx8V3oscj1uZXcgTWFwLGE9bmV3IE1hcCxpPW5ldyBNYXAsbz17Li4uTnosLi4ubi5oYW5kbGVyc30scz17YWxsOnUsYXBwbHlEYXRhOlh6LGRlZmluaXRpb25CeUlkOnIsZm9vdG5vdGVCeUlkOmEsZm9vdG5vdGVDb3VudHM6aSxmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmwsb3B0aW9uczpuLHBhdGNoOkt6LHdyYXA6UXp9O3JldHVybiBkQyhlLGZ1bmN0aW9uKGMpe2lmKGMudHlwZT09PSJkZWZpbml0aW9uInx8Yy50eXBlPT09ImZvb3Rub3RlRGVmaW5pdGlvbiIpe2NvbnN0IGQ9Yy50eXBlPT09ImRlZmluaXRpb24iP3I6YSxwPVN0cmluZyhjLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7ZC5oYXMocCl8fGQuc2V0KHAsYyl9fSkscztmdW5jdGlvbiBsKGMsZCl7Y29uc3QgcD1jLnR5cGUsZj1zLmhhbmRsZXJzW3BdO2lmKHZnLmNhbGwocy5oYW5kbGVycyxwKSYmZilyZXR1cm4gZihzLGMsZCk7aWYocy5vcHRpb25zLnBhc3NUaHJvdWdoJiZzLm9wdGlvbnMucGFzc1Rocm91Z2guaW5jbHVkZXMocCkpe2lmKCJjaGlsZHJlbiJpbiBjKXtjb25zdHtjaGlsZHJlbjpiLC4uLkF9PWMsaD1icyhBKTtyZXR1cm4gaC5jaGlsZHJlbj1zLmFsbChjKSxofXJldHVybiBicyhjKX1yZXR1cm4ocy5vcHRpb25zLnVua25vd25IYW5kbGVyfHxaeikocyxjLGQpfWZ1bmN0aW9uIHUoYyl7Y29uc3QgZD1bXTtpZigiY2hpbGRyZW4iaW4gYyl7Y29uc3QgcD1jLmNoaWxkcmVuO2xldCBmPS0xO2Zvcig7KytmPHAubGVuZ3RoOyl7Y29uc3QgeT1zLm9uZShwW2ZdLGMpO2lmKHkpe2lmKGYmJnBbZi0xXS50eXBlPT09ImJyZWFrIiYmKCFBcnJheS5pc0FycmF5KHkpJiZ5LnR5cGU9PT0idGV4dCImJih5LnZhbHVlPVFFKHkudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh5KSYmeS50eXBlPT09ImVsZW1lbnQiKSl7Y29uc3QgYj15LmNoaWxkcmVuWzBdO2ImJmIudHlwZT09PSJ0ZXh0IiYmKGIudmFsdWU9UUUoYi52YWx1ZSkpfUFycmF5LmlzQXJyYXkoeSk/ZC5wdXNoKC4uLnkpOmQucHVzaCh5KX19fXJldHVybiBkfX1mdW5jdGlvbiBLeihlLHQpe2UucG9zaXRpb24mJih0LnBvc2l0aW9uPU9VKGUpKX1mdW5jdGlvbiBYeihlLHQpe2xldCBuPXQ7aWYoZSYmZS5kYXRhKXtjb25zdCByPWUuZGF0YS5oTmFtZSxhPWUuZGF0YS5oQ2hpbGRyZW4saT1lLmRhdGEuaFByb3BlcnRpZXM7aWYodHlwZW9mIHI9PSJzdHJpbmciKWlmKG4udHlwZT09PSJlbGVtZW50IiluLnRhZ05hbWU9cjtlbHNle2NvbnN0IG89ImNoaWxkcmVuImluIG4/bi5jaGlsZHJlbjpbbl07bj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpyLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319bi50eXBlPT09ImVsZW1lbnQiJiZpJiZPYmplY3QuYXNzaWduKG4ucHJvcGVydGllcyxicyhpKSksImNoaWxkcmVuImluIG4mJm4uY2hpbGRyZW4mJmEhPT1udWxsJiZhIT09dm9pZCAwJiYobi5jaGlsZHJlbj1hKX1yZXR1cm4gbn1mdW5jdGlvbiBaeihlLHQpe2NvbnN0IG49dC5kYXRhfHx7fSxyPSJ2YWx1ZSJpbiB0JiYhKHZnLmNhbGwobiwiaFByb3BlcnRpZXMiKXx8dmcuY2FsbChuLCJoQ2hpbGRyZW4iKSk/e3R5cGU6InRleHQiLHZhbHVlOnQudmFsdWV9Ont0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJkaXYiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS5hbGwodCl9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX1mdW5jdGlvbiBReihlLHQpe2NvbnN0IG49W107bGV0IHI9LTE7Zm9yKHQmJm4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KytyPGUubGVuZ3RoOylyJiZuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLG4ucHVzaChlW3JdKTtyZXR1cm4gdCYmZS5sZW5ndGg+MCYmbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxufWZ1bmN0aW9uIFFFKGUpe2xldCB0PTAsbj1lLmNoYXJDb2RlQXQodCk7Zm9yKDtuPT09OXx8bj09PTMyOyl0Kyssbj1lLmNoYXJDb2RlQXQodCk7cmV0dXJuIGUuc2xpY2UodCl9ZnVuY3Rpb24gSkUoZSx0KXtjb25zdCBuPVl6KGUsdCkscj1uLm9uZShlLHZvaWQgMCksYT1GeihuKSxpPUFycmF5LmlzQXJyYXkocik/e3R5cGU6InJvb3QiLGNoaWxkcmVuOnJ9OnJ8fHt0eXBlOiJyb290IixjaGlsZHJlbjpbXX07cmV0dXJuIGEmJmkuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxhKSxpfWZ1bmN0aW9uIEp6KGUsdCl7cmV0dXJuIGUmJiJydW4iaW4gZT9hc3luYyBmdW5jdGlvbihuLHIpe2NvbnN0IGE9SkUobix7ZmlsZTpyLC4uLnR9KTthd2FpdCBlLnJ1bihhLHIpfTpmdW5jdGlvbihuLHIpe3JldHVybiBKRShuLHtmaWxlOnIsLi4uZXx8dH0pfX1mdW5jdGlvbiBlUyhlKXtpZihlKXRocm93IGV9dmFyIFBvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscEM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyx0Uz1PYmplY3QuZGVmaW5lUHJvcGVydHksblM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixyUz1mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIEFycmF5LmlzQXJyYXk9PSJmdW5jdGlvbiI/QXJyYXkuaXNBcnJheSh0KTpwQy5jYWxsKHQpPT09IltvYmplY3QgQXJyYXldIn0sYVM9ZnVuY3Rpb24odCl7aWYoIXR8fHBDLmNhbGwodCkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgbj1Qby5jYWxsKHQsImNvbnN0cnVjdG9yIikscj10LmNvbnN0cnVjdG9yJiZ0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSYmUG8uY2FsbCh0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpO2lmKHQuY29uc3RydWN0b3ImJiFuJiYhcilyZXR1cm4hMTt2YXIgYTtmb3IoYSBpbiB0KTtyZXR1cm4gdHlwZW9mIGE+InUifHxQby5jYWxsKHQsYSl9LGlTPWZ1bmN0aW9uKHQsbil7dFMmJm4ubmFtZT09PSJfX3Byb3RvX18iP3RTKHQsbi5uYW1lLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpuLm5ld1ZhbHVlLHdyaXRhYmxlOiEwfSk6dFtuLm5hbWVdPW4ubmV3VmFsdWV9LG9TPWZ1bmN0aW9uKHQsbil7aWYobj09PSJfX3Byb3RvX18iKWlmKFBvLmNhbGwodCxuKSl7aWYoblMpcmV0dXJuIG5TKHQsbikudmFsdWV9ZWxzZSByZXR1cm47cmV0dXJuIHRbbl19LGVqPWZ1bmN0aW9uIGUoKXt2YXIgdCxuLHIsYSxpLG8scz1hcmd1bWVudHNbMF0sbD0xLHU9YXJndW1lbnRzLmxlbmd0aCxjPSExO2Zvcih0eXBlb2Ygcz09ImJvb2xlYW4iJiYoYz1zLHM9YXJndW1lbnRzWzFdfHx7fSxsPTIpLChzPT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCImJnR5cGVvZiBzIT0iZnVuY3Rpb24iKSYmKHM9e30pO2w8dTsrK2wpaWYodD1hcmd1bWVudHNbbF0sdCE9bnVsbClmb3IobiBpbiB0KXI9b1MocyxuKSxhPW9TKHQsbikscyE9PWEmJihjJiZhJiYoYVMoYSl8fChpPXJTKGEpKSk/KGk/KGk9ITEsbz1yJiZyUyhyKT9yOltdKTpvPXImJmFTKHIpP3I6e30saVMocyx7bmFtZTpuLG5ld1ZhbHVlOmUoYyxvLGEpfSkpOnR5cGVvZiBhPCJ1IiYmaVMocyx7bmFtZTpuLG5ld1ZhbHVlOmF9KSk7cmV0dXJuIHN9O2NvbnN0IEdsPU5pKGVqKTtmdW5jdGlvbiBFZyhlKXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiExO2NvbnN0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gZSl9ZnVuY3Rpb24gdGooKXtjb25zdCBlPVtdLHQ9e3J1bjpuLHVzZTpyfTtyZXR1cm4gdDtmdW5jdGlvbiBuKC4uLmEpe2xldCBpPS0xO2NvbnN0IG89YS5wb3AoKTtpZih0eXBlb2YgbyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIitvKTtzKG51bGwsLi4uYSk7ZnVuY3Rpb24gcyhsLC4uLnUpe2NvbnN0IGM9ZVsrK2ldO2xldCBkPS0xO2lmKGwpe28obCk7cmV0dXJufWZvcig7KytkPGEubGVuZ3RoOykodVtkXT09PW51bGx8fHVbZF09PT12b2lkIDApJiYodVtkXT1hW2RdKTthPXUsYz9uaihjLHMpKC4uLnUpOm8obnVsbCwuLi51KX19ZnVuY3Rpb24gcihhKXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrYSk7cmV0dXJuIGUucHVzaChhKSx0fX1mdW5jdGlvbiBuaihlLHQpe2xldCBuO3JldHVybiByO2Z1bmN0aW9uIHIoLi4ubyl7Y29uc3Qgcz1lLmxlbmd0aD5vLmxlbmd0aDtsZXQgbDtzJiZvLnB1c2goYSk7dHJ5e2w9ZS5hcHBseSh0aGlzLG8pfWNhdGNoKHUpe2NvbnN0IGM9dTtpZihzJiZuKXRocm93IGM7cmV0dXJuIGEoYyl9c3x8KGwmJmwudGhlbiYmdHlwZW9mIGwudGhlbj09ImZ1bmN0aW9uIj9sLnRoZW4oaSxhKTpsIGluc3RhbmNlb2YgRXJyb3I/YShsKTppKGwpKX1mdW5jdGlvbiBhKG8sLi4ucyl7bnx8KG49ITAsdChvLC4uLnMpKX1mdW5jdGlvbiBpKG8pe2EobnVsbCxvKX19Y29uc3QgV3Q9e2Jhc2VuYW1lOnJqLGRpcm5hbWU6YWosZXh0bmFtZTppaixqb2luOm9qLHNlcDoiLyJ9O2Z1bmN0aW9uIHJqKGUsdCl7aWYodCE9PXZvaWQgMCYmdHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJyJleHQiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTtqaShlKTtsZXQgbj0wLHI9LTEsYT1lLmxlbmd0aCxpO2lmKHQ9PT12b2lkIDB8fHQubGVuZ3RoPT09MHx8dC5sZW5ndGg+ZS5sZW5ndGgpe2Zvcig7YS0tOylpZihlLmNvZGVQb2ludEF0KGEpPT09NDcpe2lmKGkpe249YSsxO2JyZWFrfX1lbHNlIHI8MCYmKGk9ITAscj1hKzEpO3JldHVybiByPDA/IiI6ZS5zbGljZShuLHIpfWlmKHQ9PT1lKXJldHVybiIiO2xldCBvPS0xLHM9dC5sZW5ndGgtMTtmb3IoO2EtLTspaWYoZS5jb2RlUG9pbnRBdChhKT09PTQ3KXtpZihpKXtuPWErMTticmVha319ZWxzZSBvPDAmJihpPSEwLG89YSsxKSxzPi0xJiYoZS5jb2RlUG9pbnRBdChhKT09PXQuY29kZVBvaW50QXQocy0tKT9zPDAmJihyPWEpOihzPS0xLHI9bykpO3JldHVybiBuPT09cj9yPW86cjwwJiYocj1lLmxlbmd0aCksZS5zbGljZShuLHIpfWZ1bmN0aW9uIGFqKGUpe2lmKGppKGUpLGUubGVuZ3RoPT09MClyZXR1cm4iLiI7bGV0IHQ9LTEsbj1lLmxlbmd0aCxyO2Zvcig7LS1uOylpZihlLmNvZGVQb2ludEF0KG4pPT09NDcpe2lmKHIpe3Q9bjticmVha319ZWxzZSByfHwocj0hMCk7cmV0dXJuIHQ8MD9lLmNvZGVQb2ludEF0KDApPT09NDc/Ii8iOiIuIjp0PT09MSYmZS5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvLyI6ZS5zbGljZSgwLHQpfWZ1bmN0aW9uIGlqKGUpe2ppKGUpO2xldCB0PWUubGVuZ3RoLG49LTEscj0wLGE9LTEsaT0wLG87Zm9yKDt0LS07KXtjb25zdCBzPWUuY29kZVBvaW50QXQodCk7aWYocz09PTQ3KXtpZihvKXtyPXQrMTticmVha31jb250aW51ZX1uPDAmJihvPSEwLG49dCsxKSxzPT09NDY/YTwwP2E9dDppIT09MSYmKGk9MSk6YT4tMSYmKGk9LTEpfXJldHVybiBhPDB8fG48MHx8aT09PTB8fGk9PT0xJiZhPT09bi0xJiZhPT09cisxPyIiOmUuc2xpY2UoYSxuKX1mdW5jdGlvbiBvaiguLi5lKXtsZXQgdD0tMSxuO2Zvcig7Kyt0PGUubGVuZ3RoOylqaShlW3RdKSxlW3RdJiYobj1uPT09dm9pZCAwP2VbdF06bisiLyIrZVt0XSk7cmV0dXJuIG49PT12b2lkIDA/Ii4iOnNqKG4pfWZ1bmN0aW9uIHNqKGUpe2ppKGUpO2NvbnN0IHQ9ZS5jb2RlUG9pbnRBdCgwKT09PTQ3O2xldCBuPWxqKGUsIXQpO3JldHVybiBuLmxlbmd0aD09PTAmJiF0JiYobj0iLiIpLG4ubGVuZ3RoPjAmJmUuY29kZVBvaW50QXQoZS5sZW5ndGgtMSk9PT00NyYmKG4rPSIvIiksdD8iLyIrbjpufWZ1bmN0aW9uIGxqKGUsdCl7bGV0IG49IiIscj0wLGE9LTEsaT0wLG89LTEscyxsO2Zvcig7KytvPD1lLmxlbmd0aDspe2lmKG88ZS5sZW5ndGgpcz1lLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYocz09PTQ3KWJyZWFrO3M9NDd9aWYocz09PTQ3KXtpZighKGE9PT1vLTF8fGk9PT0xKSlpZihhIT09by0xJiZpPT09Mil7aWYobi5sZW5ndGg8Mnx8ciE9PTJ8fG4uY29kZVBvaW50QXQobi5sZW5ndGgtMSkhPT00Nnx8bi5jb2RlUG9pbnRBdChuLmxlbmd0aC0yKSE9PTQ2KXtpZihuLmxlbmd0aD4yKXtpZihsPW4ubGFzdEluZGV4T2YoIi8iKSxsIT09bi5sZW5ndGgtMSl7bDwwPyhuPSIiLHI9MCk6KG49bi5zbGljZSgwLGwpLHI9bi5sZW5ndGgtMS1uLmxhc3RJbmRleE9mKCIvIikpLGE9byxpPTA7Y29udGludWV9fWVsc2UgaWYobi5sZW5ndGg+MCl7bj0iIixyPTAsYT1vLGk9MDtjb250aW51ZX19dCYmKG49bi5sZW5ndGg+MD9uKyIvLi4iOiIuLiIscj0yKX1lbHNlIG4ubGVuZ3RoPjA/bis9Ii8iK2Uuc2xpY2UoYSsxLG8pOm49ZS5zbGljZShhKzEsbykscj1vLWEtMTthPW8saT0wfWVsc2Ugcz09PTQ2JiZpPi0xP2krKzppPS0xfXJldHVybiBufWZ1bmN0aW9uIGppKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoZSkpfWNvbnN0IHVqPXtjd2Q6Y2p9O2Z1bmN0aW9uIGNqKCl7cmV0dXJuIi8ifWZ1bmN0aW9uIFNnKGUpe3JldHVybiEhKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJiJocmVmImluIGUmJmUuaHJlZiYmInByb3RvY29sImluIGUmJmUucHJvdG9jb2wmJmUuYXV0aD09PXZvaWQgMCl9ZnVuY3Rpb24gZGooZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKWU9bmV3IFVSTChlKTtlbHNlIGlmKCFTZyhlKSl7Y29uc3QgdD1uZXcgVHlwZUVycm9yKCdUaGUgInBhdGgiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJytlKyJgIik7dGhyb3cgdC5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsdH1pZihlLnByb3RvY29sIT09ImZpbGU6Iil7Y29uc3QgdD1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyB0LmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLHR9cmV0dXJuIHBqKGUpfWZ1bmN0aW9uIHBqKGUpe2lmKGUuaG9zdG5hbWUhPT0iIil7Y29uc3Qgcj1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgci5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixyfWNvbnN0IHQ9ZS5wYXRobmFtZTtsZXQgbj0tMTtmb3IoOysrbjx0Lmxlbmd0aDspaWYodC5jb2RlUG9pbnRBdChuKT09PTM3JiZ0LmNvZGVQb2ludEF0KG4rMSk9PT01MCl7Y29uc3Qgcj10LmNvZGVQb2ludEF0KG4rMik7aWYocj09PTcwfHxyPT09MTAyKXtjb25zdCBhPW5ldyBUeXBlRXJyb3IoIkZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycyIpO3Rocm93IGEuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCIsYX19cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX1jb25zdCBxbD1bImhpc3RvcnkiLCJwYXRoIiwiYmFzZW5hbWUiLCJzdGVtIiwiZXh0bmFtZSIsImRpcm5hbWUiXTtjbGFzcyBmQ3tjb25zdHJ1Y3Rvcih0KXtsZXQgbjt0P1NnKHQpP249e3BhdGg6dH06dHlwZW9mIHQ9PSJzdHJpbmcifHxmaih0KT9uPXt2YWx1ZTp0fTpuPXQ6bj17fSx0aGlzLmN3ZD0iY3dkImluIG4/IiI6dWouY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IHI9LTE7Zm9yKDsrK3I8cWwubGVuZ3RoOyl7Y29uc3QgaT1xbFtyXTtpIGluIG4mJm5baV0hPT12b2lkIDAmJm5baV0hPT1udWxsJiYodGhpc1tpXT1pPT09Imhpc3RvcnkiP1suLi5uW2ldXTpuW2ldKX1sZXQgYTtmb3IoYSBpbiBuKXFsLmluY2x1ZGVzKGEpfHwodGhpc1thXT1uW2FdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/V3QuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKHQpe0hsKHQsImJhc2VuYW1lIiksVmwodCwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9V3Quam9pbih0aGlzLmRpcm5hbWV8fCIiLHQpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP1d0LmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUodCl7c1ModGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD1XdC5qb2luKHR8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP1d0LmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUodCl7aWYoVmwodCwiZXh0bmFtZSIpLHNTKHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLHQpe2lmKHQuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYodC5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1XdC5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKHR8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgodCl7U2codCkmJih0PWRqKHQpKSxIbCh0LCJwYXRoIiksdGhpcy5wYXRoIT09dCYmdGhpcy5oaXN0b3J5LnB1c2godCl9Z2V0IHN0ZW0oKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/V3QuYmFzZW5hbWUodGhpcy5wYXRoLHRoaXMuZXh0bmFtZSk6dm9pZCAwfXNldCBzdGVtKHQpe0hsKHQsInN0ZW0iKSxWbCh0LCJzdGVtIiksdGhpcy5wYXRoPVd0LmpvaW4odGhpcy5kaXJuYW1lfHwiIix0Kyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbCh0LG4scil7Y29uc3QgYT10aGlzLm1lc3NhZ2UodCxuLHIpO3Rocm93IGEuZmF0YWw9ITAsYX1pbmZvKHQsbixyKXtjb25zdCBhPXRoaXMubWVzc2FnZSh0LG4scik7cmV0dXJuIGEuZmF0YWw9dm9pZCAwLGF9bWVzc2FnZSh0LG4scil7Y29uc3QgYT1uZXcgVmUodCxuLHIpO3JldHVybiB0aGlzLnBhdGgmJihhLm5hbWU9dGhpcy5wYXRoKyI6IithLm5hbWUsYS5maWxlPXRoaXMucGF0aCksYS5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2goYSksYX10b1N0cmluZyh0KXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIodHx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fWZ1bmN0aW9uIFZsKGUsdCl7aWYoZSYmZS5pbmNsdWRlcyhXdC5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIitXdC5zZXArImAiKX1mdW5jdGlvbiBIbChlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBjYW5ub3QgYmUgZW1wdHkiKX1mdW5jdGlvbiBzUyhlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiU2V0dGluZyBgIit0KyJgIHJlcXVpcmVzIGBwYXRoYCB0byBiZSBzZXQgdG9vIil9ZnVuY3Rpb24gZmooZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBlJiYiYnl0ZU9mZnNldCJpbiBlKX1jb25zdCBtaj1mdW5jdGlvbihlKXtjb25zdCByPXRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLGE9cltlXSxpPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoaSxhcmd1bWVudHMpfTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGksciksaX0sZ2o9e30uaGFzT3duUHJvcGVydHk7Y2xhc3MgaGIgZXh0ZW5kcyBtantjb25zdHJ1Y3Rvcigpe3N1cGVyKCJjb3B5IiksdGhpcy5Db21waWxlcj12b2lkIDAsdGhpcy5QYXJzZXI9dm9pZCAwLHRoaXMuYXR0YWNoZXJzPVtdLHRoaXMuY29tcGlsZXI9dm9pZCAwLHRoaXMuZnJlZXplSW5kZXg9LTEsdGhpcy5mcm96ZW49dm9pZCAwLHRoaXMubmFtZXNwYWNlPXt9LHRoaXMucGFyc2VyPXZvaWQgMCx0aGlzLnRyYW5zZm9ybWVycz10aigpfWNvcHkoKXtjb25zdCB0PW5ldyBoYjtsZXQgbj0tMTtmb3IoOysrbjx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtjb25zdCByPXRoaXMuYXR0YWNoZXJzW25dO3QudXNlKC4uLnIpfXJldHVybiB0LmRhdGEoR2woITAse30sdGhpcy5uYW1lc3BhY2UpKSx0fWRhdGEodCxuKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhLbCgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlW3RdPW4sdGhpcyk6Z2ouY2FsbCh0aGlzLm5hbWVzcGFjZSx0KSYmdGhpcy5uYW1lc3BhY2VbdF18fHZvaWQgMDp0PyhLbCgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPXQsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7Y29uc3QgdD10aGlzO2Zvcig7Kyt0aGlzLmZyZWV6ZUluZGV4PHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2NvbnN0W24sLi4ucl09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoclswXT09PSExKWNvbnRpbnVlO3JbMF09PT0hMCYmKHJbMF09dm9pZCAwKTtjb25zdCBhPW4uY2FsbCh0LC4uLnIpO3R5cGVvZiBhPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2UoYSl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UodCl7dGhpcy5mcmVlemUoKTtjb25zdCBuPWhvKHQpLHI9dGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyO3JldHVybiBXbCgicGFyc2UiLHIpLHIoU3RyaW5nKG4pLG4pfXByb2Nlc3ModCxuKXtjb25zdCByPXRoaXM7cmV0dXJuIHRoaXMuZnJlZXplKCksV2woInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksWWwoInByb2Nlc3MiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLG4/YSh2b2lkIDAsbik6bmV3IFByb21pc2UoYSk7ZnVuY3Rpb24gYShpLG8pe2NvbnN0IHM9aG8odCksbD1yLnBhcnNlKHMpO3IucnVuKGwscyxmdW5jdGlvbihjLGQscCl7aWYoY3x8IWR8fCFwKXJldHVybiB1KGMpO2NvbnN0IGY9ZCx5PXIuc3RyaW5naWZ5KGYscCk7eWooeSk/cC52YWx1ZT15OnAucmVzdWx0PXksdShjLHApfSk7ZnVuY3Rpb24gdShjLGQpe2N8fCFkP28oYyk6aT9pKGQpOm4odm9pZCAwLGQpfX19cHJvY2Vzc1N5bmModCl7bGV0IG49ITEscjtyZXR1cm4gdGhpcy5mcmVlemUoKSxXbCgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksWWwoInByb2Nlc3NTeW5jIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0aGlzLnByb2Nlc3ModCxhKSx1UygicHJvY2Vzc1N5bmMiLCJwcm9jZXNzIixuKSxyO2Z1bmN0aW9uIGEoaSxvKXtuPSEwLGVTKGkpLHI9b319cnVuKHQsbixyKXtsUyh0KSx0aGlzLmZyZWV6ZSgpO2NvbnN0IGE9dGhpcy50cmFuc2Zvcm1lcnM7cmV0dXJuIXImJnR5cGVvZiBuPT0iZnVuY3Rpb24iJiYocj1uLG49dm9pZCAwKSxyP2kodm9pZCAwLHIpOm5ldyBQcm9taXNlKGkpO2Z1bmN0aW9uIGkobyxzKXtjb25zdCBsPWhvKG4pO2EucnVuKHQsbCx1KTtmdW5jdGlvbiB1KGMsZCxwKXtjb25zdCBmPWR8fHQ7Yz9zKGMpOm8/byhmKTpyKHZvaWQgMCxmLHApfX19cnVuU3luYyh0LG4pe2xldCByPSExLGE7cmV0dXJuIHRoaXMucnVuKHQsbixpKSx1UygicnVuU3luYyIsInJ1biIsciksYTtmdW5jdGlvbiBpKG8scyl7ZVMobyksYT1zLHI9ITB9fXN0cmluZ2lmeSh0LG4pe3RoaXMuZnJlZXplKCk7Y29uc3Qgcj1obyhuKSxhPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIFlsKCJzdHJpbmdpZnkiLGEpLGxTKHQpLGEodCxyKX11c2UodCwuLi5uKXtjb25zdCByPXRoaXMuYXR0YWNoZXJzLGE9dGhpcy5uYW1lc3BhY2U7aWYoS2woInVzZSIsdGhpcy5mcm96ZW4pLHQhPW51bGwpaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpbCh0LG4pO2Vsc2UgaWYodHlwZW9mIHQ9PSJvYmplY3QiKUFycmF5LmlzQXJyYXkodCk/cyh0KTpvKHQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrdCsiYCIpO3JldHVybiB0aGlzO2Z1bmN0aW9uIGkodSl7aWYodHlwZW9mIHU9PSJmdW5jdGlvbiIpbCh1LFtdKTtlbHNlIGlmKHR5cGVvZiB1PT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KHUpKXtjb25zdFtjLC4uLmRdPXU7bChjLGQpfWVsc2Ugbyh1KTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK3UrImAiKX1mdW5jdGlvbiBvKHUpe2lmKCEoInBsdWdpbnMiaW4gdSkmJiEoInNldHRpbmdzImluIHUpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlIGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBwcmVzZXQsIHdoaWNoIGlzIHByb2JhYmx5IGEgbWlzdGFrZTogcHJlc2V0cyB0eXBpY2FsbHkgY29tZSB3aXRoIGBwbHVnaW5zYCBhbmQgc29tZXRpbWVzIHdpdGggYHNldHRpbmdzYCwgYnV0IHRoaXMgaGFzIG5laXRoZXIiKTtzKHUucGx1Z2lucyksdS5zZXR0aW5ncyYmKGEuc2V0dGluZ3M9R2woITAsYS5zZXR0aW5ncyx1LnNldHRpbmdzKSl9ZnVuY3Rpb24gcyh1KXtsZXQgYz0tMTtpZih1IT1udWxsKWlmKEFycmF5LmlzQXJyYXkodSkpZm9yKDsrK2M8dS5sZW5ndGg7KXtjb25zdCBkPXVbY107aShkKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbGlzdCBvZiBwbHVnaW5zLCBub3QgYCIrdSsiYCIpfWZ1bmN0aW9uIGwodSxjKXtsZXQgZD0tMSxwPS0xO2Zvcig7KytkPHIubGVuZ3RoOylpZihyW2RdWzBdPT09dSl7cD1kO2JyZWFrfWlmKHA9PT0tMSlyLnB1c2goW3UsLi4uY10pO2Vsc2UgaWYoYy5sZW5ndGg+MCl7bGV0W2YsLi4ueV09Yztjb25zdCBiPXJbcF1bMV07RWcoYikmJkVnKGYpJiYoZj1HbCghMCxiLGYpKSxyW3BdPVt1LGYsLi4ueV19fX19Y29uc3QgaGo9bmV3IGhiKCkuZnJlZXplKCk7ZnVuY3Rpb24gV2woZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrZSsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24gWWwoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrZSsiYCB3aXRob3V0IGBjb21waWxlcmAiKX1mdW5jdGlvbiBLbChlLHQpe2lmKHQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2FsbCBgIitlKyJgIG9uIGEgZnJvemVuIHByb2Nlc3Nvci5cbkNyZWF0ZSBhIG5ldyBwcm9jZXNzb3IgZmlyc3QsIGJ5IGNhbGxpbmcgaXQ6IHVzZSBgcHJvY2Vzc29yKClgIGluc3RlYWQgb2YgYHByb2Nlc3NvcmAuIil9ZnVuY3Rpb24gbFMoZSl7aWYoIUVnKGUpfHx0eXBlb2YgZS50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrZSsiYCIpfWZ1bmN0aW9uIHVTKGUsdCxuKXtpZighbil0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgZmluaXNoZWQgYXN5bmMuIFVzZSBgIit0KyJgIGluc3RlYWQiKX1mdW5jdGlvbiBobyhlKXtyZXR1cm4gYmooZSk/ZTpuZXcgZkMoZSl9ZnVuY3Rpb24gYmooZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYibWVzc2FnZSJpbiBlJiYibWVzc2FnZXMiaW4gZSl9ZnVuY3Rpb24geWooZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nInx8dmooZSl9ZnVuY3Rpb24gdmooZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBlJiYiYnl0ZU9mZnNldCJpbiBlKX1jb25zdCBFaj0iaHR0cHM6Ly9naXRodWIuY29tL3JlbWFya2pzL3JlYWN0LW1hcmtkb3duL2Jsb2IvbWFpbi9jaGFuZ2Vsb2cubWQiLGNTPVtdLGRTPXthbGxvd0Rhbmdlcm91c0h0bWw6ITB9LFNqPS9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2ksd2o9W3tmcm9tOiJhc3RQbHVnaW5zIixpZDoicmVtb3ZlLWJ1Z2d5LWh0bWwtaW4tbWFya2Rvd24tcGFyc2VyIn0se2Zyb206ImFsbG93RGFuZ2Vyb3VzSHRtbCIsaWQ6InJlbW92ZS1idWdneS1odG1sLWluLW1hcmtkb3duLXBhcnNlciJ9LHtmcm9tOiJhbGxvd05vZGUiLGlkOiJyZXBsYWNlLWFsbG93bm9kZS1hbGxvd2VkdHlwZXMtYW5kLWRpc2FsbG93ZWR0eXBlcyIsdG86ImFsbG93RWxlbWVudCJ9LHtmcm9tOiJhbGxvd2VkVHlwZXMiLGlkOiJyZXBsYWNlLWFsbG93bm9kZS1hbGxvd2VkdHlwZXMtYW5kLWRpc2FsbG93ZWR0eXBlcyIsdG86ImFsbG93ZWRFbGVtZW50cyJ9LHtmcm9tOiJkaXNhbGxvd2VkVHlwZXMiLGlkOiJyZXBsYWNlLWFsbG93bm9kZS1hbGxvd2VkdHlwZXMtYW5kLWRpc2FsbG93ZWR0eXBlcyIsdG86ImRpc2FsbG93ZWRFbGVtZW50cyJ9LHtmcm9tOiJlc2NhcGVIdG1sIixpZDoicmVtb3ZlLWJ1Z2d5LWh0bWwtaW4tbWFya2Rvd24tcGFyc2VyIn0se2Zyb206ImluY2x1ZGVFbGVtZW50SW5kZXgiLGlkOiIjcmVtb3ZlLWluY2x1ZGVlbGVtZW50aW5kZXgifSx7ZnJvbToiaW5jbHVkZU5vZGVJbmRleCIsaWQ6ImNoYW5nZS1pbmNsdWRlbm9kZWluZGV4LXRvLWluY2x1ZGVlbGVtZW50aW5kZXgifSx7ZnJvbToibGlua1RhcmdldCIsaWQ6InJlbW92ZS1saW5rdGFyZ2V0In0se2Zyb206InBsdWdpbnMiLGlkOiJjaGFuZ2UtcGx1Z2lucy10by1yZW1hcmtwbHVnaW5zIix0bzoicmVtYXJrUGx1Z2lucyJ9LHtmcm9tOiJyYXdTb3VyY2VQb3MiLGlkOiIjcmVtb3ZlLXJhd3NvdXJjZXBvcyJ9LHtmcm9tOiJyZW5kZXJlcnMiLGlkOiJjaGFuZ2UtcmVuZGVyZXJzLXRvLWNvbXBvbmVudHMiLHRvOiJjb21wb25lbnRzIn0se2Zyb206InNvdXJjZSIsaWQ6ImNoYW5nZS1zb3VyY2UtdG8tY2hpbGRyZW4iLHRvOiJjaGlsZHJlbiJ9LHtmcm9tOiJzb3VyY2VQb3MiLGlkOiIjcmVtb3ZlLXNvdXJjZXBvcyJ9LHtmcm9tOiJ0cmFuc2Zvcm1JbWFnZVVyaSIsaWQ6IiNhZGQtdXJsdHJhbnNmb3JtIix0bzoidXJsVHJhbnNmb3JtIn0se2Zyb206InRyYW5zZm9ybUxpbmtVcmkiLGlkOiIjYWRkLXVybHRyYW5zZm9ybSIsdG86InVybFRyYW5zZm9ybSJ9XTtmdW5jdGlvbiBUaihlKXtjb25zdCB0PWtqKGUpLG49QWooZSk7cmV0dXJuIHhqKHQucnVuU3luYyh0LnBhcnNlKG4pLG4pLGUpfWZ1bmN0aW9uIGtqKGUpe2NvbnN0IHQ9ZS5yZWh5cGVQbHVnaW5zfHxjUyxuPWUucmVtYXJrUGx1Z2luc3x8Y1Mscj1lLnJlbWFya1JlaHlwZU9wdGlvbnM/ey4uLmUucmVtYXJrUmVoeXBlT3B0aW9ucywuLi5kU306ZFM7cmV0dXJuIGhqKCkudXNlKGF6KS51c2UobikudXNlKEp6LHIpLnVzZSh0KX1mdW5jdGlvbiBBaihlKXtjb25zdCB0PWUuY2hpbGRyZW58fCIiLG49bmV3IGZDO3JldHVybiB0eXBlb2YgdD09InN0cmluZyImJihuLnZhbHVlPXQpLG59ZnVuY3Rpb24geGooZSx0KXtjb25zdCBuPXQuYWxsb3dlZEVsZW1lbnRzLHI9dC5hbGxvd0VsZW1lbnQsYT10LmNvbXBvbmVudHMsaT10LmRpc2FsbG93ZWRFbGVtZW50cyxvPXQuc2tpcEh0bWwscz10LnVud3JhcERpc2FsbG93ZWQsbD10LnVybFRyYW5zZm9ybXx8Umo7Zm9yKGNvbnN0IGMgb2Ygd2opT2JqZWN0Lmhhc093bih0LGMuZnJvbSkmJigiIitjLmZyb20rKGMudG8/InVzZSBgIitjLnRvKyJgIGluc3RlYWQiOiJyZW1vdmUgaXQiKStFaitjLmlkLHZvaWQgMCk7cmV0dXJuIHQuY2xhc3NOYW1lJiYoZT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOntjbGFzc05hbWU6dC5jbGFzc05hbWV9LGNoaWxkcmVuOmUudHlwZT09PSJyb290Ij9lLmNoaWxkcmVuOltlXX0pLGRDKGUsdSksRlUoZSx7RnJhZ21lbnQ6ay5GcmFnbWVudCxjb21wb25lbnRzOmEsaWdub3JlSW52YWxpZFN0eWxlOiEwLGpzeDprLmpzeCxqc3hzOmsuanN4cyxwYXNzS2V5czohMCxwYXNzTm9kZTohMH0pO2Z1bmN0aW9uIHUoYyxkLHApe2lmKGMudHlwZT09PSJyYXciJiZwJiZ0eXBlb2YgZD09Im51bWJlciIpcmV0dXJuIG8/cC5jaGlsZHJlbi5zcGxpY2UoZCwxKTpwLmNoaWxkcmVuW2RdPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlfSxkO2lmKGMudHlwZT09PSJlbGVtZW50Iil7bGV0IGY7Zm9yKGYgaW4gJGwpaWYoT2JqZWN0Lmhhc093bigkbCxmKSYmT2JqZWN0Lmhhc093bihjLnByb3BlcnRpZXMsZikpe2NvbnN0IHk9Yy5wcm9wZXJ0aWVzW2ZdLGI9JGxbZl07KGI9PT1udWxsfHxiLmluY2x1ZGVzKGMudGFnTmFtZSkpJiYoYy5wcm9wZXJ0aWVzW2ZdPWwoU3RyaW5nKHl8fCIiKSxmLGMpKX19aWYoYy50eXBlPT09ImVsZW1lbnQiKXtsZXQgZj1uPyFuLmluY2x1ZGVzKGMudGFnTmFtZSk6aT9pLmluY2x1ZGVzKGMudGFnTmFtZSk6ITE7aWYoIWYmJnImJnR5cGVvZiBkPT0ibnVtYmVyIiYmKGY9IXIoYyxkLHApKSxmJiZwJiZ0eXBlb2YgZD09Im51bWJlciIpcmV0dXJuIHMmJmMuY2hpbGRyZW4/cC5jaGlsZHJlbi5zcGxpY2UoZCwxLC4uLmMuY2hpbGRyZW4pOnAuY2hpbGRyZW4uc3BsaWNlKGQsMSksZH19fWZ1bmN0aW9uIFJqKGUpe2NvbnN0IHQ9ZS5pbmRleE9mKCI6Iiksbj1lLmluZGV4T2YoIj8iKSxyPWUuaW5kZXhPZigiIyIpLGE9ZS5pbmRleE9mKCIvIik7cmV0dXJuIHQ9PT0tMXx8YSE9PS0xJiZ0PmF8fG4hPT0tMSYmdD5ufHxyIT09LTEmJnQ+cnx8U2oudGVzdChlLnNsaWNlKDAsdCkpP2U6IiJ9ZnVuY3Rpb24gX2ooZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufWZ1bmN0aW9uIElqKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGE9X2ooZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihhW25dPWVbbl0pfXJldHVybiBhfWZ1bmN0aW9uIHdnKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBOaihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB3ZyhlKX1mdW5jdGlvbiBDaihlKXtpZih0eXBlb2YgU3ltYm9sPCJ1IiYmZVtTeW1ib2wuaXRlcmF0b3JdIT1udWxsfHxlWyJAQGl0ZXJhdG9yIl0hPW51bGwpcmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gT2ooZSx0KXtpZihlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIHdnKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gbj09PSJPYmplY3QiJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT0iTWFwInx8bj09PSJTZXQiP0FycmF5LmZyb20oZSk6bj09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT93ZyhlLHQpOnZvaWQgMH19ZnVuY3Rpb24gTGooKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFRnKGUpe3JldHVybiBOaihlKXx8Q2ooZSl8fE9qKGUpfHxMaigpfWZ1bmN0aW9uIElpKGUpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIElpPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxJaShlKX1mdW5jdGlvbiBEaihlLHQpe2lmKElpKGUpIT0ib2JqZWN0Inx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHQpO2lmKElpKHIpIT0ib2JqZWN0IilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gTWooZSl7dmFyIHQ9RGooZSwic3RyaW5nIik7cmV0dXJuIElpKHQpPT0ic3ltYm9sIj90OnQrIiJ9ZnVuY3Rpb24gbUMoZSx0LG4pe3JldHVybih0PU1qKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGtnKCl7cmV0dXJuIGtnPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sa2cuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIHBTKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gR3IoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdIT1udWxsP2FyZ3VtZW50c1t0XTp7fTt0JTI/cFMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe21DKGUscixuW3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnBTKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBQaihlKXt2YXIgdD1lLmxlbmd0aDtpZih0PT09MHx8dD09PTEpcmV0dXJuIGU7aWYodD09PTIpcmV0dXJuW2VbMF0sZVsxXSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdKV07aWYodD09PTMpcmV0dXJuW2VbMF0sZVsxXSxlWzJdLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pXTtpZih0Pj00KXJldHVybltlWzBdLGVbMV0sZVsyXSxlWzNdLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdKSwiIi5jb25jYXQoZVswXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsyXSksIiIuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzNdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbM10pLCIiLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzJdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsxXSwiLiIpLmNvbmNhdChlWzBdLCIuIikuY29uY2F0KGVbMl0pLCIiLmNvbmNhdChlWzNdLCIuIikuY29uY2F0KGVbMV0sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzBdKSwiIi5jb25jYXQoZVszXSwiLiIpLmNvbmNhdChlWzJdLCIuIikuY29uY2F0KGVbMF0sIi4iKS5jb25jYXQoZVsxXSksIiIuY29uY2F0KGVbM10sIi4iKS5jb25jYXQoZVsyXSwiLiIpLmNvbmNhdChlWzFdLCIuIikuY29uY2F0KGVbMF0pXX12YXIgWGw9e307ZnVuY3Rpb24gRmooZSl7aWYoZS5sZW5ndGg9PT0wfHxlLmxlbmd0aD09PTEpcmV0dXJuIGU7dmFyIHQ9ZS5qb2luKCIuIik7cmV0dXJuIFhsW3RdfHwoWGxbdF09UGooZSkpLFhsW3RdfWZ1bmN0aW9uIFVqKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9ZS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkhPT0idG9rZW4ifSksYT1GaihyKTtyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24oaSxvKXtyZXR1cm4gR3IoR3Ioe30saSksbltvXSl9LHQpfWZ1bmN0aW9uIGZTKGUpe3JldHVybiBlLmpvaW4oIiAiKX1mdW5jdGlvbiBCaihlLHQpe3ZhciBuPTA7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBuKz0xLHIubWFwKGZ1bmN0aW9uKGEsaSl7cmV0dXJuIGdDKHtub2RlOmEsc3R5bGVzaGVldDplLHVzZUlubGluZVN0eWxlczp0LGtleToiY29kZS1zZWdtZW50LSIuY29uY2F0KG4sIi0iKS5jb25jYXQoaSl9KX0pfX1mdW5jdGlvbiBnQyhlKXt2YXIgdD1lLm5vZGUsbj1lLnN0eWxlc2hlZXQscj1lLnN0eWxlLGE9cj09PXZvaWQgMD97fTpyLGk9ZS51c2VJbmxpbmVTdHlsZXMsbz1lLmtleSxzPXQucHJvcGVydGllcyxsPXQudHlwZSx1PXQudGFnTmFtZSxjPXQudmFsdWU7aWYobD09PSJ0ZXh0IilyZXR1cm4gYztpZih1KXt2YXIgZD1CaihuLGkpLHA7aWYoIWkpcD1HcihHcih7fSxzKSx7fSx7Y2xhc3NOYW1lOmZTKHMuY2xhc3NOYW1lKX0pO2Vsc2V7dmFyIGY9T2JqZWN0LmtleXMobikucmVkdWNlKGZ1bmN0aW9uKGgsbSl7cmV0dXJuIG0uc3BsaXQoIi4iKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2guaW5jbHVkZXMoZyl8fGgucHVzaChnKX0pLGh9LFtdKSx5PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZS5pbmNsdWRlcygidG9rZW4iKT9bInRva2VuIl06W10sYj1zLmNsYXNzTmFtZSYmeS5jb25jYXQocy5jbGFzc05hbWUuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiFmLmluY2x1ZGVzKGgpfSkpO3A9R3IoR3Ioe30scykse30se2NsYXNzTmFtZTpmUyhiKXx8dm9pZCAwLHN0eWxlOlVqKHMuY2xhc3NOYW1lLE9iamVjdC5hc3NpZ24oe30scy5zdHlsZSxhKSxuKX0pfXZhciBBPWQodC5jaGlsZHJlbik7cmV0dXJuIFl0LmNyZWF0ZUVsZW1lbnQodSxrZyh7a2V5Om99LHApLEEpfX1jb25zdCAkaj1mdW5jdGlvbihlLHQpe3ZhciBuPWUubGlzdExhbmd1YWdlcygpO3JldHVybiBuLmluZGV4T2YodCkhPT0tMX07dmFyIHpqPVsibGFuZ3VhZ2UiLCJjaGlsZHJlbiIsInN0eWxlIiwiY3VzdG9tU3R5bGUiLCJjb2RlVGFnUHJvcHMiLCJ1c2VJbmxpbmVTdHlsZXMiLCJzaG93TGluZU51bWJlcnMiLCJzaG93SW5saW5lTGluZU51bWJlcnMiLCJzdGFydGluZ0xpbmVOdW1iZXIiLCJsaW5lTnVtYmVyQ29udGFpbmVyU3R5bGUiLCJsaW5lTnVtYmVyU3R5bGUiLCJ3cmFwTGluZXMiLCJ3cmFwTG9uZ0xpbmVzIiwibGluZVByb3BzIiwicmVuZGVyZXIiLCJQcmVUYWciLCJDb2RlVGFnIiwiY29kZSIsImFzdEdlbmVyYXRvciJdO2Z1bmN0aW9uIG1TKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gX24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdIT1udWxsP2FyZ3VtZW50c1t0XTp7fTt0JTI/bVMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe21DKGUscixuW3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOm1TKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KX1yZXR1cm4gZX12YXIgamo9L1xuL2c7ZnVuY3Rpb24gR2ooZSl7cmV0dXJuIGUubWF0Y2goamopfWZ1bmN0aW9uIHFqKGUpe3ZhciB0PWUubGluZXMsbj1lLnN0YXJ0aW5nTGluZU51bWJlcixyPWUuc3R5bGU7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKGEsaSl7dmFyIG89aStuO3JldHVybiBZdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5OiJsaW5lLSIuY29uY2F0KGkpLGNsYXNzTmFtZToicmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyLWxpbmUtbnVtYmVyIixzdHlsZTp0eXBlb2Ygcj09ImZ1bmN0aW9uIj9yKG8pOnJ9LCIiLmNvbmNhdChvLGAKYCkpfSl9ZnVuY3Rpb24gVmooZSl7dmFyIHQ9ZS5jb2RlU3RyaW5nLG49ZS5jb2RlU3R5bGUscj1lLmNvbnRhaW5lclN0eWxlLGE9cj09PXZvaWQgMD97ZmxvYXQ6ImxlZnQiLHBhZGRpbmdSaWdodDoiMTBweCJ9OnIsaT1lLm51bWJlclN0eWxlLG89aT09PXZvaWQgMD97fTppLHM9ZS5zdGFydGluZ0xpbmVOdW1iZXI7cmV0dXJuIFl0LmNyZWF0ZUVsZW1lbnQoImNvZGUiLHtzdHlsZTpPYmplY3QuYXNzaWduKHt9LG4sYSl9LHFqKHtsaW5lczp0LnJlcGxhY2UoL1xuJC8sIiIpLnNwbGl0KGAKYCksc3R5bGU6byxzdGFydGluZ0xpbmVOdW1iZXI6c30pKX1mdW5jdGlvbiBIaihlKXtyZXR1cm4iIi5jb25jYXQoZS50b1N0cmluZygpLmxlbmd0aCwiLjI1ZW0iKX1mdW5jdGlvbiBoQyhlLHQpe3JldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzcGFuIixwcm9wZXJ0aWVzOntrZXk6ImxpbmUtbnVtYmVyLS0iLmNvbmNhdChlKSxjbGFzc05hbWU6WyJjb21tZW50IiwibGluZW51bWJlciIsInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci1saW5lLW51bWJlciJdLHN0eWxlOnR9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6ZX1dfX1mdW5jdGlvbiBiQyhlLHQsbil7dmFyIHI9e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWluV2lkdGg6SGoobikscGFkZGluZ1JpZ2h0OiIxZW0iLHRleHRBbGlnbjoicmlnaHQiLHVzZXJTZWxlY3Q6Im5vbmUifSxhPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2UodCk6ZSxpPV9uKF9uKHt9LHIpLGEpO3JldHVybiBpfWZ1bmN0aW9uIEZvKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLmxpbmVOdW1iZXIscj1lLmxpbmVOdW1iZXJTdHlsZSxhPWUubGFyZ2VzdExpbmVOdW1iZXIsaT1lLnNob3dJbmxpbmVMaW5lTnVtYmVycyxvPWUubGluZVByb3BzLHM9bz09PXZvaWQgMD97fTpvLGw9ZS5jbGFzc05hbWUsdT1sPT09dm9pZCAwP1tdOmwsYz1lLnNob3dMaW5lTnVtYmVycyxkPWUud3JhcExvbmdMaW5lcyxwPWUud3JhcExpbmVzLGY9cD09PXZvaWQgMD8hMTpwLHk9Zj9fbih7fSx0eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKG4pOnMpOnt9O2lmKHkuY2xhc3NOYW1lPXkuY2xhc3NOYW1lP1tdLmNvbmNhdChUZyh5LmNsYXNzTmFtZS50cmltKCkuc3BsaXQoL1xzKy8pKSxUZyh1KSk6dSxuJiZpKXt2YXIgYj1iQyhyLG4sYSk7dC51bnNoaWZ0KGhDKG4sYikpfXJldHVybiBkJmMmJih5LnN0eWxlPV9uKHtkaXNwbGF5OiJmbGV4In0seS5zdHlsZSkpLHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzcGFuIixwcm9wZXJ0aWVzOnksY2hpbGRyZW46dH19ZnVuY3Rpb24geUMoZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpbXSxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpbXSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBhPWVbcl07aWYoYS50eXBlPT09InRleHQiKW4ucHVzaChGbyh7Y2hpbGRyZW46W2FdLGNsYXNzTmFtZTpUZyhuZXcgU2V0KHQpKX0pKTtlbHNlIGlmKGEuY2hpbGRyZW4pe3ZhciBpPXQuY29uY2F0KGEucHJvcGVydGllcy5jbGFzc05hbWUpO3lDKGEuY2hpbGRyZW4saSkuZm9yRWFjaChmdW5jdGlvbihvKXtyZXR1cm4gbi5wdXNoKG8pfSl9fXJldHVybiBufWZ1bmN0aW9uIFdqKGUsdCxuLHIsYSxpLG8scyxsKXt2YXIgdSxjPXlDKGUudmFsdWUpLGQ9W10scD0tMSxmPTA7ZnVuY3Rpb24geShULHYpe3ZhciBSPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpbXTtyZXR1cm4gRm8oe2NoaWxkcmVuOlQsbGluZU51bWJlcjp2LGxpbmVOdW1iZXJTdHlsZTpzLGxhcmdlc3RMaW5lTnVtYmVyOm8sc2hvd0lubGluZUxpbmVOdW1iZXJzOmEsbGluZVByb3BzOm4sY2xhc3NOYW1lOlIsc2hvd0xpbmVOdW1iZXJzOnIsd3JhcExvbmdMaW5lczpsLHdyYXBMaW5lczp0fSl9ZnVuY3Rpb24gYihULHYpe2lmKHImJnYmJmEpe3ZhciBSPWJDKHMsdixvKTtULnVuc2hpZnQoaEModixSKSl9cmV0dXJuIFR9ZnVuY3Rpb24gQShULHYpe3ZhciBSPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpbXTtyZXR1cm4gdHx8Ui5sZW5ndGg+MD95KFQsdixSKTpiKFQsdil9Zm9yKHZhciBoPWZ1bmN0aW9uKCl7dmFyIHY9Y1tmXSxSPXYuY2hpbGRyZW5bMF0udmFsdWUsXz1HaihSKTtpZihfKXt2YXIgST1SLnNwbGl0KGAKYCk7SS5mb3JFYWNoKGZ1bmN0aW9uKEMsTCl7dmFyIEY9ciYmZC5sZW5ndGgraSxxPXt0eXBlOiJ0ZXh0Iix2YWx1ZToiIi5jb25jYXQoQyxgCmApfTtpZihMPT09MCl7dmFyIFc9Yy5zbGljZShwKzEsZikuY29uY2F0KEZvKHtjaGlsZHJlbjpbcV0sY2xhc3NOYW1lOnYucHJvcGVydGllcy5jbGFzc05hbWV9KSksRz1BKFcsRik7ZC5wdXNoKEcpfWVsc2UgaWYoTD09PUkubGVuZ3RoLTEpe3ZhciBLPWNbZisxXSYmY1tmKzFdLmNoaWxkcmVuJiZjW2YrMV0uY2hpbGRyZW5bMF0sVj17dHlwZToidGV4dCIsdmFsdWU6IiIuY29uY2F0KEMpfTtpZihLKXt2YXIgTj1Gbyh7Y2hpbGRyZW46W1ZdLGNsYXNzTmFtZTp2LnByb3BlcnRpZXMuY2xhc3NOYW1lfSk7Yy5zcGxpY2UoZisxLDAsTil9ZWxzZXt2YXIgVT1bVl0sUz1BKFUsRix2LnByb3BlcnRpZXMuY2xhc3NOYW1lKTtkLnB1c2goUyl9fWVsc2V7dmFyICQ9W3FdLGo9QSgkLEYsdi5wcm9wZXJ0aWVzLmNsYXNzTmFtZSk7ZC5wdXNoKGopfX0pLHA9Zn1mKyt9O2Y8Yy5sZW5ndGg7KWgoKTtpZihwIT09Yy5sZW5ndGgtMSl7dmFyIG09Yy5zbGljZShwKzEsYy5sZW5ndGgpO2lmKG0mJm0ubGVuZ3RoKXt2YXIgZz1yJiZkLmxlbmd0aCtpLEU9QShtLGcpO2QucHVzaChFKX19cmV0dXJuIHQ/ZDoodT1bXSkuY29uY2F0LmFwcGx5KHUsZCl9ZnVuY3Rpb24gWWooZSl7dmFyIHQ9ZS5yb3dzLG49ZS5zdHlsZXNoZWV0LHI9ZS51c2VJbmxpbmVTdHlsZXM7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKGEsaSl7cmV0dXJuIGdDKHtub2RlOmEsc3R5bGVzaGVldDpuLHVzZUlubGluZVN0eWxlczpyLGtleToiY29kZS1zZWdtZW50LSIuY29uY2F0KGkpfSl9KX1mdW5jdGlvbiB2QyhlKXtyZXR1cm4gZSYmdHlwZW9mIGUuaGlnaGxpZ2h0QXV0bzwidSJ9ZnVuY3Rpb24gS2ooZSl7dmFyIHQ9ZS5hc3RHZW5lcmF0b3Isbj1lLmxhbmd1YWdlLHI9ZS5jb2RlLGE9ZS5kZWZhdWx0Q29kZVZhbHVlO2lmKHZDKHQpKXt2YXIgaT0kaih0LG4pO3JldHVybiBuPT09InRleHQiP3t2YWx1ZTphLGxhbmd1YWdlOiJ0ZXh0In06aT90LmhpZ2hsaWdodChuLHIpOnQuaGlnaGxpZ2h0QXV0byhyKX10cnl7cmV0dXJuIG4mJm4hPT0idGV4dCI/e3ZhbHVlOnQuaGlnaGxpZ2h0KHIsbil9Ont2YWx1ZTphfX1jYXRjaHtyZXR1cm57dmFsdWU6YX19fWZ1bmN0aW9uIFhqKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBhLGksbz1yLmxhbmd1YWdlLHM9ci5jaGlsZHJlbixsPXIuc3R5bGUsdT1sPT09dm9pZCAwP3Q6bCxjPXIuY3VzdG9tU3R5bGUsZD1jPT09dm9pZCAwP3t9OmMscD1yLmNvZGVUYWdQcm9wcyxmPXA9PT12b2lkIDA/e2NsYXNzTmFtZTpvPyJsYW5ndWFnZS0iLmNvbmNhdChvKTp2b2lkIDAsc3R5bGU6X24oX24oe30sdVsnY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdJ10pLHVbJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0nLmNvbmNhdChvLCciXScpXSl9OnAseT1yLnVzZUlubGluZVN0eWxlcyxiPXk9PT12b2lkIDA/ITA6eSxBPXIuc2hvd0xpbmVOdW1iZXJzLGg9QT09PXZvaWQgMD8hMTpBLG09ci5zaG93SW5saW5lTGluZU51bWJlcnMsZz1tPT09dm9pZCAwPyEwOm0sRT1yLnN0YXJ0aW5nTGluZU51bWJlcixUPUU9PT12b2lkIDA/MTpFLHY9ci5saW5lTnVtYmVyQ29udGFpbmVyU3R5bGUsUj1yLmxpbmVOdW1iZXJTdHlsZSxfPVI9PT12b2lkIDA/e306UixJPXIud3JhcExpbmVzLEM9ci53cmFwTG9uZ0xpbmVzLEw9Qz09PXZvaWQgMD8hMTpDLEY9ci5saW5lUHJvcHMscT1GPT09dm9pZCAwP3t9OkYsVz1yLnJlbmRlcmVyLEc9ci5QcmVUYWcsSz1HPT09dm9pZCAwPyJwcmUiOkcsVj1yLkNvZGVUYWcsTj1WPT09dm9pZCAwPyJjb2RlIjpWLFU9ci5jb2RlLFM9VT09PXZvaWQgMD8oQXJyYXkuaXNBcnJheShzKT9zWzBdOnMpfHwiIjpVLCQ9ci5hc3RHZW5lcmF0b3Isaj1JaihyLHpqKTskPSR8fGU7dmFyIHg9aD9ZdC5jcmVhdGVFbGVtZW50KFZqLHtjb250YWluZXJTdHlsZTp2LGNvZGVTdHlsZTpmLnN0eWxlfHx7fSxudW1iZXJTdHlsZTpfLHN0YXJ0aW5nTGluZU51bWJlcjpULGNvZGVTdHJpbmc6U30pOm51bGwsdGU9dS5obGpzfHx1WydwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSddfHx7YmFja2dyb3VuZENvbG9yOiIjZmZmIn0saGU9dkMoJCk/ImhsanMiOiJwcmlzbWpzIixlZT1iP09iamVjdC5hc3NpZ24oe30saix7c3R5bGU6T2JqZWN0LmFzc2lnbih7fSx0ZSxkKX0pOk9iamVjdC5hc3NpZ24oe30saix7Y2xhc3NOYW1lOmouY2xhc3NOYW1lPyIiLmNvbmNhdChoZSwiICIpLmNvbmNhdChqLmNsYXNzTmFtZSk6aGUsc3R5bGU6T2JqZWN0LmFzc2lnbih7fSxkKX0pO2lmKEw/Zi5zdHlsZT1fbih7d2hpdGVTcGFjZToicHJlLXdyYXAifSxmLnN0eWxlKTpmLnN0eWxlPV9uKHt3aGl0ZVNwYWNlOiJwcmUifSxmLnN0eWxlKSwhJClyZXR1cm4gWXQuY3JlYXRlRWxlbWVudChLLGVlLHgsWXQuY3JlYXRlRWxlbWVudChOLGYsUykpOyhJPT09dm9pZCAwJiZXfHxMKSYmKEk9ITApLFc9V3x8WWo7dmFyIFNlPVt7dHlwZToidGV4dCIsdmFsdWU6U31dLFVlPUtqKHthc3RHZW5lcmF0b3I6JCxsYW5ndWFnZTpvLGNvZGU6UyxkZWZhdWx0Q29kZVZhbHVlOlNlfSk7VWUubGFuZ3VhZ2U9PT1udWxsJiYoVWUudmFsdWU9U2UpO3ZhciBEdD0oYT0oaT1TLm1hdGNoKC9cbi9nKSk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmxlbmd0aCkhPT1udWxsJiZhIT09dm9pZCAwP2E6MCxFdD1UK0R0LE10PVdqKFVlLEkscSxoLGcsVCxFdCxfLEwpO3JldHVybiBZdC5jcmVhdGVFbGVtZW50KEssZWUsWXQuY3JlYXRlRWxlbWVudChOLGYsIWcmJngsVyh7cm93czpNdCxzdHlsZXNoZWV0OnUsdXNlSW5saW5lU3R5bGVzOmJ9KSkpfX1jb25zdCBaaj1bImFiYXAiLCJhYm5mIiwiYWN0aW9uc2NyaXB0IiwiYWRhIiwiYWdkYSIsImFsIiwiYW50bHI0IiwiYXBhY2hlY29uZiIsImFwZXgiLCJhcGwiLCJhcHBsZXNjcmlwdCIsImFxbCIsImFyZHVpbm8iLCJhcmZmIiwiYXNjaWlkb2MiLCJhc202NTAyIiwiYXNtYXRtZWwiLCJhc3BuZXQiLCJhdXRvaG90a2V5IiwiYXV0b2l0IiwiYXZpc3ludGgiLCJhdnJvLWlkbCIsImJhc2giLCJiYXNpYyIsImJhdGNoIiwiYmJjb2RlIiwiYmljZXAiLCJiaXJiIiwiYmlzb24iLCJibmYiLCJicmFpbmZ1Y2siLCJicmlnaHRzY3JpcHQiLCJicm8iLCJic2wiLCJjIiwiY2ZzY3JpcHQiLCJjaGFpc2NyaXB0IiwiY2lsIiwiY2xpa2UiLCJjbG9qdXJlIiwiY21ha2UiLCJjb2JvbCIsImNvZmZlZXNjcmlwdCIsImNvbmN1cm5hcyIsImNvcSIsImNwcCIsImNyeXN0YWwiLCJjc2hhcnAiLCJjc2h0bWwiLCJjc3AiLCJjc3MtZXh0cmFzIiwiY3NzIiwiY3N2IiwiY3lwaGVyIiwiZCIsImRhcnQiLCJkYXRhd2VhdmUiLCJkYXgiLCJkaGFsbCIsImRpZmYiLCJkamFuZ28iLCJkbnMtem9uZS1maWxlIiwiZG9ja2VyIiwiZG90IiwiZWJuZiIsImVkaXRvcmNvbmZpZyIsImVpZmZlbCIsImVqcyIsImVsaXhpciIsImVsbSIsImVyYiIsImVybGFuZyIsImV0bHVhIiwiZXhjZWwtZm9ybXVsYSIsImZhY3RvciIsImZhbHNlIiwiZmlyZXN0b3JlLXNlY3VyaXR5LXJ1bGVzIiwiZmxvdyIsImZvcnRyYW4iLCJmc2hhcnAiLCJmdGwiLCJnYXAiLCJnY29kZSIsImdkc2NyaXB0IiwiZ2VkY29tIiwiZ2hlcmtpbiIsImdpdCIsImdsc2wiLCJnbWwiLCJnbiIsImdvLW1vZHVsZSIsImdvIiwiZ3JhcGhxbCIsImdyb292eSIsImhhbWwiLCJoYW5kbGViYXJzIiwiaGFza2VsbCIsImhheGUiLCJoY2wiLCJobHNsIiwiaG9vbiIsImhwa3AiLCJoc3RzIiwiaHR0cCIsImljaGlnb2phbSIsImljb24iLCJpY3UtbWVzc2FnZS1mb3JtYXQiLCJpZHJpcyIsImllY3N0IiwiaWdub3JlIiwiaW5mb3JtNyIsImluaSIsImlvIiwiaiIsImphdmEiLCJqYXZhZG9jIiwiamF2YWRvY2xpa2UiLCJqYXZhc2NyaXB0IiwiamF2YXN0YWNrdHJhY2UiLCJqZXhsIiwiam9saWUiLCJqcSIsImpzLWV4dHJhcyIsImpzLXRlbXBsYXRlcyIsImpzZG9jIiwianNvbiIsImpzb241IiwianNvbnAiLCJqc3N0YWNrdHJhY2UiLCJqc3giLCJqdWxpYSIsImtlZXBhbGl2ZWQiLCJrZXltYW4iLCJrb3RsaW4iLCJrdW1pciIsImt1c3RvIiwibGF0ZXgiLCJsYXR0ZSIsImxlc3MiLCJsaWx5cG9uZCIsImxpcXVpZCIsImxpc3AiLCJsaXZlc2NyaXB0IiwibGx2bSIsImxvZyIsImxvbGNvZGUiLCJsdWEiLCJtYWdtYSIsIm1ha2VmaWxlIiwibWFya2Rvd24iLCJtYXJrdXAtdGVtcGxhdGluZyIsIm1hcmt1cCIsIm1hdGxhYiIsIm1heHNjcmlwdCIsIm1lbCIsIm1lcm1haWQiLCJtaXphciIsIm1vbmdvZGIiLCJtb25rZXkiLCJtb29uc2NyaXB0IiwibjFxbCIsIm40anMiLCJuYW5kMnRldHJpcy1oZGwiLCJuYW5pc2NyaXB0IiwibmFzbSIsIm5lb24iLCJuZXZvZCIsIm5naW54IiwibmltIiwibml4IiwibnNpcyIsIm9iamVjdGl2ZWMiLCJvY2FtbCIsIm9wZW5jbCIsIm9wZW5xYXNtIiwib3oiLCJwYXJpZ3AiLCJwYXJzZXIiLCJwYXNjYWwiLCJwYXNjYWxpZ28iLCJwY2F4aXMiLCJwZW9wbGVjb2RlIiwicGVybCIsInBocC1leHRyYXMiLCJwaHAiLCJwaHBkb2MiLCJwbHNxbCIsInBvd2VycXVlcnkiLCJwb3dlcnNoZWxsIiwicHJvY2Vzc2luZyIsInByb2xvZyIsInByb21xbCIsInByb3BlcnRpZXMiLCJwcm90b2J1ZiIsInBzbCIsInB1ZyIsInB1cHBldCIsInB1cmUiLCJwdXJlYmFzaWMiLCJwdXJlc2NyaXB0IiwicHl0aG9uIiwicSIsInFtbCIsInFvcmUiLCJxc2hhcnAiLCJyIiwicmFja2V0IiwicmVhc29uIiwicmVnZXgiLCJyZWdvIiwicmVucHkiLCJyZXN0IiwicmlwIiwicm9ib2NvbmYiLCJyb2JvdGZyYW1ld29yayIsInJ1YnkiLCJydXN0Iiwic2FzIiwic2FzcyIsInNjYWxhIiwic2NoZW1lIiwic2NzcyIsInNoZWxsLXNlc3Npb24iLCJzbWFsaSIsInNtYWxsdGFsayIsInNtYXJ0eSIsInNtbCIsInNvbGlkaXR5Iiwic29sdXRpb24tZmlsZSIsInNveSIsInNwYXJxbCIsInNwbHVuay1zcGwiLCJzcWYiLCJzcWwiLCJzcXVpcnJlbCIsInN0YW4iLCJzdHlsdXMiLCJzd2lmdCIsInN5c3RlbWQiLCJ0NC1jcyIsInQ0LXRlbXBsYXRpbmciLCJ0NC12YiIsInRhcCIsInRjbCIsInRleHRpbGUiLCJ0b21sIiwidHJlbW9yIiwidHN4IiwidHQyIiwidHVydGxlIiwidHdpZyIsInR5cGVzY3JpcHQiLCJ0eXBvc2NyaXB0IiwidW5yZWFsc2NyaXB0IiwidW9yYXpvciIsInVyaSIsInYiLCJ2YWxhIiwidmJuZXQiLCJ2ZWxvY2l0eSIsInZlcmlsb2ciLCJ2aGRsIiwidmltIiwidmlzdWFsLWJhc2ljIiwid2FycHNjcmlwdCIsIndhc20iLCJ3ZWItaWRsIiwid2lraSIsIndvbGZyYW0iLCJ3cmVuIiwieGVvcmEiLCJ4bWwtZG9jIiwieG9qbyIsInhxdWVyeSIsInlhbWwiLCJ5YW5nIiwiemlnIl07dmFyIFFqPWVHLEpqPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gZUcoKXtmb3IodmFyIGU9e30sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilKai5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfXZhciBFQz1TQyxiYj1TQy5wcm90b3R5cGU7YmIuc3BhY2U9bnVsbDtiYi5ub3JtYWw9e307YmIucHJvcGVydHk9e307ZnVuY3Rpb24gU0MoZSx0LG4pe3RoaXMucHJvcGVydHk9ZSx0aGlzLm5vcm1hbD10LG4mJih0aGlzLnNwYWNlPW4pfXZhciBnUz1Raix0Rz1FQyxuRz1yRztmdW5jdGlvbiByRyhlKXtmb3IodmFyIHQ9ZS5sZW5ndGgsbj1bXSxyPVtdLGE9LTEsaSxvOysrYTx0OylpPWVbYV0sbi5wdXNoKGkucHJvcGVydHkpLHIucHVzaChpLm5vcm1hbCksbz1pLnNwYWNlO3JldHVybiBuZXcgdEcoZ1MuYXBwbHkobnVsbCxuKSxnUy5hcHBseShudWxsLHIpLG8pfXZhciB5Yj1hRztmdW5jdGlvbiBhRyhlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfXZhciB3Qz1UQyxMdD1UQy5wcm90b3R5cGU7THQuc3BhY2U9bnVsbDtMdC5hdHRyaWJ1dGU9bnVsbDtMdC5wcm9wZXJ0eT1udWxsO0x0LmJvb2xlYW49ITE7THQuYm9vbGVhbmlzaD0hMTtMdC5vdmVybG9hZGVkQm9vbGVhbj0hMTtMdC5udW1iZXI9ITE7THQuY29tbWFTZXBhcmF0ZWQ9ITE7THQuc3BhY2VTZXBhcmF0ZWQ9ITE7THQuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExO0x0Lm11c3RVc2VQcm9wZXJ0eT0hMTtMdC5kZWZpbmVkPSExO2Z1bmN0aW9uIFRDKGUsdCl7dGhpcy5wcm9wZXJ0eT1lLHRoaXMuYXR0cmlidXRlPXR9dmFyIG5uPXt9LGlHPTA7bm4uYm9vbGVhbj12cigpO25uLmJvb2xlYW5pc2g9dnIoKTtubi5vdmVybG9hZGVkQm9vbGVhbj12cigpO25uLm51bWJlcj12cigpO25uLnNwYWNlU2VwYXJhdGVkPXZyKCk7bm4uY29tbWFTZXBhcmF0ZWQ9dnIoKTtubi5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9dnIoKTtmdW5jdGlvbiB2cigpe3JldHVybiBNYXRoLnBvdygyLCsraUcpfXZhciBrQz13QyxoUz1ubixBQz12Yjt2Yi5wcm90b3R5cGU9bmV3IGtDO3ZiLnByb3RvdHlwZS5kZWZpbmVkPSEwO3ZhciB4Qz1bImJvb2xlYW4iLCJib29sZWFuaXNoIiwib3ZlcmxvYWRlZEJvb2xlYW4iLCJudW1iZXIiLCJjb21tYVNlcGFyYXRlZCIsInNwYWNlU2VwYXJhdGVkIiwiY29tbWFPclNwYWNlU2VwYXJhdGVkIl0sb0c9eEMubGVuZ3RoO2Z1bmN0aW9uIHZiKGUsdCxuLHIpe3ZhciBhPS0xLGk7Zm9yKGJTKHRoaXMsInNwYWNlIixyKSxrQy5jYWxsKHRoaXMsZSx0KTsrK2E8b0c7KWk9eENbYV0sYlModGhpcyxpLChuJmhTW2ldKT09PWhTW2ldKX1mdW5jdGlvbiBiUyhlLHQsbil7biYmKGVbdF09bil9dmFyIHlTPXliLHNHPUVDLGxHPUFDLEdpPXVHO2Z1bmN0aW9uIHVHKGUpe3ZhciB0PWUuc3BhY2Usbj1lLm11c3RVc2VQcm9wZXJ0eXx8W10scj1lLmF0dHJpYnV0ZXN8fHt9LGE9ZS5wcm9wZXJ0aWVzLGk9ZS50cmFuc2Zvcm0sbz17fSxzPXt9LGwsdTtmb3IobCBpbiBhKXU9bmV3IGxHKGwsaShyLGwpLGFbbF0sdCksbi5pbmRleE9mKGwpIT09LTEmJih1Lm11c3RVc2VQcm9wZXJ0eT0hMCksb1tsXT11LHNbeVMobCldPWwsc1t5Uyh1LmF0dHJpYnV0ZSldPWw7cmV0dXJuIG5ldyBzRyhvLHMsdCl9dmFyIGNHPUdpLGRHPWNHKHtzcGFjZToieGxpbmsiLHRyYW5zZm9ybTpwRyxwcm9wZXJ0aWVzOnt4TGlua0FjdHVhdGU6bnVsbCx4TGlua0FyY1JvbGU6bnVsbCx4TGlua0hyZWY6bnVsbCx4TGlua1JvbGU6bnVsbCx4TGlua1Nob3c6bnVsbCx4TGlua1RpdGxlOm51bGwseExpbmtUeXBlOm51bGx9fSk7ZnVuY3Rpb24gcEcoZSx0KXtyZXR1cm4ieGxpbms6Iit0LnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9dmFyIGZHPUdpLG1HPWZHKHtzcGFjZToieG1sIix0cmFuc2Zvcm06Z0cscHJvcGVydGllczp7eG1sTGFuZzpudWxsLHhtbEJhc2U6bnVsbCx4bWxTcGFjZTpudWxsfX0pO2Z1bmN0aW9uIGdHKGUsdCl7cmV0dXJuInhtbDoiK3Quc2xpY2UoMykudG9Mb3dlckNhc2UoKX12YXIgaEc9Ykc7ZnVuY3Rpb24gYkcoZSx0KXtyZXR1cm4gdCBpbiBlP2VbdF06dH12YXIgeUc9aEcsUkM9dkc7ZnVuY3Rpb24gdkcoZSx0KXtyZXR1cm4geUcoZSx0LnRvTG93ZXJDYXNlKCkpfXZhciBFRz1HaSxTRz1SQyx3Rz1FRyh7c3BhY2U6InhtbG5zIixhdHRyaWJ1dGVzOnt4bWxuc3hsaW5rOiJ4bWxuczp4bGluayJ9LHRyYW5zZm9ybTpTRyxwcm9wZXJ0aWVzOnt4bWxuczpudWxsLHhtbG5zWExpbms6bnVsbH19KSxFYj1ubixURz1HaSxRZT1FYi5ib29sZWFuaXNoLFR0PUViLm51bWJlcixYbj1FYi5zcGFjZVNlcGFyYXRlZCxrRz1URyh7dHJhbnNmb3JtOkFHLHByb3BlcnRpZXM6e2FyaWFBY3RpdmVEZXNjZW5kYW50Om51bGwsYXJpYUF0b21pYzpRZSxhcmlhQXV0b0NvbXBsZXRlOm51bGwsYXJpYUJ1c3k6UWUsYXJpYUNoZWNrZWQ6UWUsYXJpYUNvbENvdW50OlR0LGFyaWFDb2xJbmRleDpUdCxhcmlhQ29sU3BhbjpUdCxhcmlhQ29udHJvbHM6WG4sYXJpYUN1cnJlbnQ6bnVsbCxhcmlhRGVzY3JpYmVkQnk6WG4sYXJpYURldGFpbHM6bnVsbCxhcmlhRGlzYWJsZWQ6UWUsYXJpYURyb3BFZmZlY3Q6WG4sYXJpYUVycm9yTWVzc2FnZTpudWxsLGFyaWFFeHBhbmRlZDpRZSxhcmlhRmxvd1RvOlhuLGFyaWFHcmFiYmVkOlFlLGFyaWFIYXNQb3B1cDpudWxsLGFyaWFIaWRkZW46UWUsYXJpYUludmFsaWQ6bnVsbCxhcmlhS2V5U2hvcnRjdXRzOm51bGwsYXJpYUxhYmVsOm51bGwsYXJpYUxhYmVsbGVkQnk6WG4sYXJpYUxldmVsOlR0LGFyaWFMaXZlOm51bGwsYXJpYU1vZGFsOlFlLGFyaWFNdWx0aUxpbmU6UWUsYXJpYU11bHRpU2VsZWN0YWJsZTpRZSxhcmlhT3JpZW50YXRpb246bnVsbCxhcmlhT3duczpYbixhcmlhUGxhY2Vob2xkZXI6bnVsbCxhcmlhUG9zSW5TZXQ6VHQsYXJpYVByZXNzZWQ6UWUsYXJpYVJlYWRPbmx5OlFlLGFyaWFSZWxldmFudDpudWxsLGFyaWFSZXF1aXJlZDpRZSxhcmlhUm9sZURlc2NyaXB0aW9uOlhuLGFyaWFSb3dDb3VudDpUdCxhcmlhUm93SW5kZXg6VHQsYXJpYVJvd1NwYW46VHQsYXJpYVNlbGVjdGVkOlFlLGFyaWFTZXRTaXplOlR0LGFyaWFTb3J0Om51bGwsYXJpYVZhbHVlTWF4OlR0LGFyaWFWYWx1ZU1pbjpUdCxhcmlhVmFsdWVOb3c6VHQsYXJpYVZhbHVlVGV4dDpudWxsLHJvbGU6bnVsbH19KTtmdW5jdGlvbiBBRyhlLHQpe3JldHVybiB0PT09InJvbGUiP3Q6ImFyaWEtIit0LnNsaWNlKDQpLnRvTG93ZXJDYXNlKCl9dmFyIGhhPW5uLHhHPUdpLFJHPVJDLFE9aGEuYm9vbGVhbixfRz1oYS5vdmVybG9hZGVkQm9vbGVhbixMYT1oYS5ib29sZWFuaXNoLGRlPWhhLm51bWJlcixIZT1oYS5zcGFjZVNlcGFyYXRlZCxibz1oYS5jb21tYVNlcGFyYXRlZCxJRz14Ryh7c3BhY2U6Imh0bWwiLGF0dHJpYnV0ZXM6e2FjY2VwdGNoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc25hbWU6ImNsYXNzIixodG1sZm9yOiJmb3IiLGh0dHBlcXVpdjoiaHR0cC1lcXVpdiJ9LHRyYW5zZm9ybTpSRyxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpibyxhY2NlcHRDaGFyc2V0OkhlLGFjY2Vzc0tleTpIZSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpRLGFsbG93UGF5bWVudFJlcXVlc3Q6USxhbGxvd1VzZXJNZWRpYTpRLGFsdDpudWxsLGFzOm51bGwsYXN5bmM6USxhdXRvQ2FwaXRhbGl6ZTpudWxsLGF1dG9Db21wbGV0ZTpIZSxhdXRvRm9jdXM6USxhdXRvUGxheTpRLGNhcHR1cmU6USxjaGFyU2V0Om51bGwsY2hlY2tlZDpRLGNpdGU6bnVsbCxjbGFzc05hbWU6SGUsY29sczpkZSxjb2xTcGFuOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRFZGl0YWJsZTpMYSxjb250cm9sczpRLGNvbnRyb2xzTGlzdDpIZSxjb29yZHM6ZGV8Ym8sY3Jvc3NPcmlnaW46bnVsbCxkYXRhOm51bGwsZGF0ZVRpbWU6bnVsbCxkZWNvZGluZzpudWxsLGRlZmF1bHQ6USxkZWZlcjpRLGRpcjpudWxsLGRpck5hbWU6bnVsbCxkaXNhYmxlZDpRLGRvd25sb2FkOl9HLGRyYWdnYWJsZTpMYSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpRLGZvcm1UYXJnZXQ6bnVsbCxoZWFkZXJzOkhlLGhlaWdodDpkZSxoaWRkZW46USxoaWdoOmRlLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGh0bWxGb3I6SGUsaHR0cEVxdWl2OkhlLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0OmJvLGlucHV0TW9kZTpudWxsLGludGVncml0eTpudWxsLGlzOm51bGwsaXNNYXA6USxpdGVtSWQ6bnVsbCxpdGVtUHJvcDpIZSxpdGVtUmVmOkhlLGl0ZW1TY29wZTpRLGl0ZW1UeXBlOkhlLGtpbmQ6bnVsbCxsYWJlbDpudWxsLGxhbmc6bnVsbCxsYW5ndWFnZTpudWxsLGxpc3Q6bnVsbCxsb2FkaW5nOm51bGwsbG9vcDpRLGxvdzpkZSxtYW5pZmVzdDpudWxsLG1heDpudWxsLG1heExlbmd0aDpkZSxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDpkZSxtdWx0aXBsZTpRLG11dGVkOlEsbmFtZTpudWxsLG5vbmNlOm51bGwsbm9Nb2R1bGU6USxub1ZhbGlkYXRlOlEsb25BYm9ydDpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQXV4Q2xpY2s6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVVbmxvYWQ6bnVsbCxvbkJsdXI6bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb3JtRGF0YTpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTGFuZ3VhZ2VDaGFuZ2U6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkRW5kOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1lc3NhZ2VFcnJvcjpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVqZWN0aW9uSGFuZGxlZDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNsb3RDaGFuZ2U6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmhhbmRsZWRSZWplY3Rpb246bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25XaGVlbDpudWxsLG9wZW46USxvcHRpbXVtOmRlLHBhdHRlcm46bnVsbCxwaW5nOkhlLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6USxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6USxyZWZlcnJlclBvbGljeTpudWxsLHJlbDpIZSxyZXF1aXJlZDpRLHJldmVyc2VkOlEscm93czpkZSxyb3dTcGFuOmRlLHNhbmRib3g6SGUsc2NvcGU6bnVsbCxzY29wZWQ6USxzZWFtbGVzczpRLHNlbGVjdGVkOlEsc2hhcGU6bnVsbCxzaXplOmRlLHNpemVzOm51bGwsc2xvdDpudWxsLHNwYW46ZGUsc3BlbGxDaGVjazpMYSxzcmM6bnVsbCxzcmNEb2M6bnVsbCxzcmNMYW5nOm51bGwsc3JjU2V0OmJvLHN0YXJ0OmRlLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OmRlLHRhcmdldDpudWxsLHRpdGxlOm51bGwsdHJhbnNsYXRlOm51bGwsdHlwZTpudWxsLHR5cGVNdXN0TWF0Y2g6USx1c2VNYXA6bnVsbCx2YWx1ZTpMYSx3aWR0aDpkZSx3cmFwOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6SGUsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOmRlLGJvcmRlckNvbG9yOm51bGwsYm90dG9tTWFyZ2luOmRlLGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OlEsZGVjbGFyZTpRLGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6ZGUsbGVmdE1hcmdpbjpkZSxsaW5rOm51bGwsbG9uZ0Rlc2M6bnVsbCxsb3dTcmM6bnVsbCxtYXJnaW5IZWlnaHQ6ZGUsbWFyZ2luV2lkdGg6ZGUsbm9SZXNpemU6USxub0hyZWY6USxub1NoYWRlOlEsbm9XcmFwOlEsb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOmRlLHJ1bGVzOm51bGwsc2NoZW1lOm51bGwsc2Nyb2xsaW5nOkxhLHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjpkZSx2YWx1ZVR5cGU6bnVsbCx2ZXJzaW9uOm51bGwsdkFsaWduOm51bGwsdkxpbms6bnVsbCx2U3BhY2U6ZGUsYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6USxkaXNhYmxlUmVtb3RlUGxheWJhY2s6USxwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6ZGUsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH19KSxORz1uRyxDRz1kRyxPRz1tRyxMRz13RyxERz1rRyxNRz1JRyxQRz1ORyhbT0csQ0csTEcsREcsTUddKSxGRz15YixVRz1BQyxCRz13QyxTYj0iZGF0YSIsJEc9R0csekc9L15kYXRhWy1cdy46XSskL2ksX0M9Ly1bYS16XS9nLGpHPS9bQS1aXS9nO2Z1bmN0aW9uIEdHKGUsdCl7dmFyIG49RkcodCkscj10LGE9Qkc7cmV0dXJuIG4gaW4gZS5ub3JtYWw/ZS5wcm9wZXJ0eVtlLm5vcm1hbFtuXV06KG4ubGVuZ3RoPjQmJm4uc2xpY2UoMCw0KT09PVNiJiZ6Ry50ZXN0KHQpJiYodC5jaGFyQXQoNCk9PT0iLSI/cj1xRyh0KTp0PVZHKHQpLGE9VUcpLG5ldyBhKHIsdCkpfWZ1bmN0aW9uIHFHKGUpe3ZhciB0PWUuc2xpY2UoNSkucmVwbGFjZShfQyxXRyk7cmV0dXJuIFNiK3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX1mdW5jdGlvbiBWRyhlKXt2YXIgdD1lLnNsaWNlKDQpO3JldHVybiBfQy50ZXN0KHQpP2U6KHQ9dC5yZXBsYWNlKGpHLEhHKSx0LmNoYXJBdCgwKSE9PSItIiYmKHQ9Ii0iK3QpLFNiK3QpfWZ1bmN0aW9uIEhHKGUpe3JldHVybiItIitlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gV0coZSl7cmV0dXJuIGUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9dmFyIFlHPUtHLHZTPS9bIy5dL2c7ZnVuY3Rpb24gS0coZSx0KXtmb3IodmFyIG49ZXx8IiIscj10fHwiZGl2IixhPXt9LGk9MCxvLHMsbDtpPG4ubGVuZ3RoOyl2Uy5sYXN0SW5kZXg9aSxsPXZTLmV4ZWMobiksbz1uLnNsaWNlKGksbD9sLmluZGV4Om4ubGVuZ3RoKSxvJiYocz9zPT09IiMiP2EuaWQ9bzphLmNsYXNzTmFtZT9hLmNsYXNzTmFtZS5wdXNoKG8pOmEuY2xhc3NOYW1lPVtvXTpyPW8saSs9by5sZW5ndGgpLGwmJihzPWxbMF0saSsrKTtyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZTpyLHByb3BlcnRpZXM6YSxjaGlsZHJlbjpbXX19dmFyIHdiPXt9O3diLnBhcnNlPVFHO3diLnN0cmluZ2lmeT1KRzt2YXIgRVM9IiIsWEc9IiAiLFpHPS9bIFx0XG5cclxmXSsvZztmdW5jdGlvbiBRRyhlKXt2YXIgdD1TdHJpbmcoZXx8RVMpLnRyaW0oKTtyZXR1cm4gdD09PUVTP1tdOnQuc3BsaXQoWkcpfWZ1bmN0aW9uIEpHKGUpe3JldHVybiBlLmpvaW4oWEcpLnRyaW0oKX12YXIgVGI9e307VGIucGFyc2U9ZXE7VGIuc3RyaW5naWZ5PXRxO3ZhciBBZz0iLCIsU1M9IiAiLHphPSIiO2Z1bmN0aW9uIGVxKGUpe2Zvcih2YXIgdD1bXSxuPVN0cmluZyhlfHx6YSkscj1uLmluZGV4T2YoQWcpLGE9MCxpPSExLG87IWk7KXI9PT0tMSYmKHI9bi5sZW5ndGgsaT0hMCksbz1uLnNsaWNlKGEscikudHJpbSgpLChvfHwhaSkmJnQucHVzaChvKSxhPXIrMSxyPW4uaW5kZXhPZihBZyxhKTtyZXR1cm4gdH1mdW5jdGlvbiB0cShlLHQpe3ZhciBuPXR8fHt9LHI9bi5wYWRMZWZ0PT09ITE/emE6U1MsYT1uLnBhZFJpZ2h0P1NTOnphO3JldHVybiBlW2UubGVuZ3RoLTFdPT09emEmJihlPWUuY29uY2F0KHphKSksZS5qb2luKGErQWcrcikudHJpbSgpfXZhciBucT0kRyx3Uz15YixycT1ZRyxUUz13Yi5wYXJzZSxrUz1UYi5wYXJzZSxhcT1vcSxpcT17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvcShlLHQsbil7dmFyIHI9bj9kcShuKTpudWxsO3JldHVybiBhO2Z1bmN0aW9uIGEobyxzKXt2YXIgbD1ycShvLHQpLHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpLGM9bC50YWdOYW1lLnRvTG93ZXJDYXNlKCksZDtpZihsLnRhZ05hbWU9ciYmaXEuY2FsbChyLGMpP3JbY106YyxzJiZzcShzLGwpJiYodS51bnNoaWZ0KHMpLHM9bnVsbCkscylmb3IoZCBpbiBzKWkobC5wcm9wZXJ0aWVzLGQsc1tkXSk7cmV0dXJuIElDKGwuY2hpbGRyZW4sdSksbC50YWdOYW1lPT09InRlbXBsYXRlIiYmKGwuY29udGVudD17dHlwZToicm9vdCIsY2hpbGRyZW46bC5jaGlsZHJlbn0sbC5jaGlsZHJlbj1bXSksbH1mdW5jdGlvbiBpKG8scyxsKXt2YXIgdSxjLGQ7bD09bnVsbHx8bCE9PWx8fCh1PW5xKGUscyksYz11LnByb3BlcnR5LGQ9bCx0eXBlb2YgZD09InN0cmluZyImJih1LnNwYWNlU2VwYXJhdGVkP2Q9VFMoZCk6dS5jb21tYVNlcGFyYXRlZD9kPWtTKGQpOnUuY29tbWFPclNwYWNlU2VwYXJhdGVkJiYoZD1UUyhrUyhkKS5qb2luKCIgIikpKSksYz09PSJzdHlsZSImJnR5cGVvZiBsIT0ic3RyaW5nIiYmKGQ9Y3EoZCkpLGM9PT0iY2xhc3NOYW1lIiYmby5jbGFzc05hbWUmJihkPW8uY2xhc3NOYW1lLmNvbmNhdChkKSksb1tjXT11cSh1LGMsZCkpfX1mdW5jdGlvbiBzcShlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ8fCJsZW5ndGgiaW4gZXx8bHEodC50YWdOYW1lLGUpfWZ1bmN0aW9uIGxxKGUsdCl7dmFyIG49dC50eXBlO3JldHVybiBlPT09ImlucHV0Inx8IW58fHR5cGVvZiBuIT0ic3RyaW5nIj8hMTp0eXBlb2YgdC5jaGlsZHJlbj09Im9iamVjdCImJiJsZW5ndGgiaW4gdC5jaGlsZHJlbj8hMDoobj1uLnRvTG93ZXJDYXNlKCksZT09PSJidXR0b24iP24hPT0ibWVudSImJm4hPT0ic3VibWl0IiYmbiE9PSJyZXNldCImJm4hPT0iYnV0dG9uIjoidmFsdWUiaW4gdCl9ZnVuY3Rpb24gSUMoZSx0KXt2YXIgbixyO2lmKHR5cGVvZiB0PT0ic3RyaW5nInx8dHlwZW9mIHQ9PSJudW1iZXIiKXtlLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyh0KX0pO3JldHVybn1pZih0eXBlb2YgdD09Im9iamVjdCImJiJsZW5ndGgiaW4gdCl7Zm9yKG49LTEscj10Lmxlbmd0aDsrK248cjspSUMoZSx0W25dKTtyZXR1cm59aWYodHlwZW9mIHQhPSJvYmplY3QifHwhKCJ0eXBlImluIHQpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm9kZXMsIG9yIHN0cmluZywgZ290IGAiK3QrImAiKTtlLnB1c2godCl9ZnVuY3Rpb24gdXEoZSx0LG4pe3ZhciByLGEsaTtpZih0eXBlb2YgbiE9Im9iamVjdCJ8fCEoImxlbmd0aCJpbiBuKSlyZXR1cm4gQVMoZSx0LG4pO2ZvcihhPW4ubGVuZ3RoLHI9LTEsaT1bXTsrK3I8YTspaVtyXT1BUyhlLHQsbltyXSk7cmV0dXJuIGl9ZnVuY3Rpb24gQVMoZSx0LG4pe3ZhciByPW47cmV0dXJuIGUubnVtYmVyfHxlLnBvc2l0aXZlTnVtYmVyPyFpc05hTihyKSYmciE9PSIiJiYocj1OdW1iZXIocikpOihlLmJvb2xlYW58fGUub3ZlcmxvYWRlZEJvb2xlYW4pJiZ0eXBlb2Ygcj09InN0cmluZyImJihyPT09IiJ8fHdTKG4pPT09d1ModCkpJiYocj0hMCkscn1mdW5jdGlvbiBjcShlKXt2YXIgdD1bXSxuO2ZvcihuIGluIGUpdC5wdXNoKFtuLGVbbl1dLmpvaW4oIjogIikpO3JldHVybiB0LmpvaW4oIjsgIil9ZnVuY3Rpb24gZHEoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLG49LTEscj17fSxhOysrbjx0OylhPWVbbl0sclthLnRvTG93ZXJDYXNlKCldPWE7cmV0dXJuIHJ9dmFyIHBxPVBHLGZxPWFxLE5DPWZxKHBxLCJkaXYiKTtOQy5kaXNwbGF5TmFtZT0iaHRtbCI7dmFyIG1xPU5DLGdxPW1xO2NvbnN0IGhxPSLDhiIsYnE9IiYiLHlxPSLDgSIsdnE9IsOCIixFcT0iw4AiLFNxPSLDhSIsd3E9IsODIixUcT0iw4QiLGtxPSLCqSIsQXE9IsOHIix4cT0iw5AiLFJxPSLDiSIsX3E9IsOKIixJcT0iw4giLE5xPSLDiyIsQ3E9Ij4iLE9xPSLDjSIsTHE9IsOOIixEcT0iw4wiLE1xPSLDjyIsUHE9IjwiLEZxPSLDkSIsVXE9IsOTIixCcT0iw5QiLCRxPSLDkiIsenE9IsOYIixqcT0iw5UiLEdxPSLDliIscXE9JyInLFZxPSLCriIsSHE9IsOeIixXcT0iw5oiLFlxPSLDmyIsS3E9IsOZIixYcT0iw5wiLFpxPSLDnSIsUXE9IsOhIixKcT0iw6IiLGVWPSLCtCIsdFY9IsOmIixuVj0iw6AiLHJWPSImIixhVj0iw6UiLGlWPSLDoyIsb1Y9IsOkIixzVj0iwqYiLGxWPSLDpyIsdVY9IsK4IixjVj0iwqIiLGRWPSLCqSIscFY9IsKkIixmVj0iwrAiLG1WPSLDtyIsZ1Y9IsOpIixoVj0iw6oiLGJWPSLDqCIseVY9IsOwIix2Vj0iw6siLEVWPSLCvSIsU1Y9IsK8Iix3Vj0iwr4iLFRWPSI+IixrVj0iw60iLEFWPSLDriIseFY9IsKhIixSVj0iw6wiLF9WPSLCvyIsSVY9IsOvIixOVj0iwqsiLENWPSI8IixPVj0iwq8iLExWPSLCtSIsRFY9IsK3IixNVj0iwqAiLFBWPSLCrCIsRlY9IsOxIixVVj0iw7MiLEJWPSLDtCIsJFY9IsOyIix6Vj0iwqoiLGpWPSLCuiIsR1Y9IsO4IixxVj0iw7UiLFZWPSLDtiIsSFY9IsK2IixXVj0iwrEiLFlWPSLCoyIsS1Y9JyInLFhWPSLCuyIsWlY9IsKuIixRVj0iwqciLEpWPSLCrSIsZTM9IsK5Iix0Mz0iwrIiLG4zPSLCsyIscjM9IsOfIixhMz0iw74iLGkzPSLDlyIsbzM9IsO6IixzMz0iw7siLGwzPSLDuSIsdTM9IsKoIixjMz0iw7wiLGQzPSLDvSIscDM9IsKlIixmMz0iw78iLG0zPXtBRWxpZzpocSxBTVA6YnEsQWFjdXRlOnlxLEFjaXJjOnZxLEFncmF2ZTpFcSxBcmluZzpTcSxBdGlsZGU6d3EsQXVtbDpUcSxDT1BZOmtxLENjZWRpbDpBcSxFVEg6eHEsRWFjdXRlOlJxLEVjaXJjOl9xLEVncmF2ZTpJcSxFdW1sOk5xLEdUOkNxLElhY3V0ZTpPcSxJY2lyYzpMcSxJZ3JhdmU6RHEsSXVtbDpNcSxMVDpQcSxOdGlsZGU6RnEsT2FjdXRlOlVxLE9jaXJjOkJxLE9ncmF2ZTokcSxPc2xhc2g6enEsT3RpbGRlOmpxLE91bWw6R3EsUVVPVDpxcSxSRUc6VnEsVEhPUk46SHEsVWFjdXRlOldxLFVjaXJjOllxLFVncmF2ZTpLcSxVdW1sOlhxLFlhY3V0ZTpacSxhYWN1dGU6UXEsYWNpcmM6SnEsYWN1dGU6ZVYsYWVsaWc6dFYsYWdyYXZlOm5WLGFtcDpyVixhcmluZzphVixhdGlsZGU6aVYsYXVtbDpvVixicnZiYXI6c1YsY2NlZGlsOmxWLGNlZGlsOnVWLGNlbnQ6Y1YsY29weTpkVixjdXJyZW46cFYsZGVnOmZWLGRpdmlkZTptVixlYWN1dGU6Z1YsZWNpcmM6aFYsZWdyYXZlOmJWLGV0aDp5VixldW1sOnZWLGZyYWMxMjpFVixmcmFjMTQ6U1YsZnJhYzM0OndWLGd0OlRWLGlhY3V0ZTprVixpY2lyYzpBVixpZXhjbDp4VixpZ3JhdmU6UlYsaXF1ZXN0Ol9WLGl1bWw6SVYsbGFxdW86TlYsbHQ6Q1YsbWFjcjpPVixtaWNybzpMVixtaWRkb3Q6RFYsbmJzcDpNVixub3Q6UFYsbnRpbGRlOkZWLG9hY3V0ZTpVVixvY2lyYzpCVixvZ3JhdmU6JFYsb3JkZjp6VixvcmRtOmpWLG9zbGFzaDpHVixvdGlsZGU6cVYsb3VtbDpWVixwYXJhOkhWLHBsdXNtbjpXVixwb3VuZDpZVixxdW90OktWLHJhcXVvOlhWLHJlZzpaVixzZWN0OlFWLHNoeTpKVixzdXAxOmUzLHN1cDI6dDMsc3VwMzpuMyxzemxpZzpyMyx0aG9ybjphMyx0aW1lczppMyx1YWN1dGU6bzMsdWNpcmM6czMsdWdyYXZlOmwzLHVtbDp1Myx1dW1sOmMzLHlhY3V0ZTpkMyx5ZW46cDMseXVtbDpmM30sZzM9ezA6Iu+/vSIsMTI4OiLigqwiLDEzMDoi4oCaIiwxMzE6IsaSIiwxMzI6IuKAniIsMTMzOiLigKYiLDEzNDoi4oCgIiwxMzU6IuKAoSIsMTM2OiLLhiIsMTM3OiLigLAiLDEzODoixaAiLDEzOToi4oC5IiwxNDA6IsWSIiwxNDI6IsW9IiwxNDU6IuKAmCIsMTQ2OiLigJkiLDE0Nzoi4oCcIiwxNDg6IuKAnSIsMTQ5OiLigKIiLDE1MDoi4oCTIiwxNTE6IuKAlCIsMTUyOiLLnCIsMTUzOiLihKIiLDE1NDoixaEiLDE1NToi4oC6IiwxNTY6IsWTIiwxNTg6IsW+IiwxNTk6IsW4In07dmFyIENDPWgzO2Z1bmN0aW9uIGgzKGUpe3ZhciB0PXR5cGVvZiBlPT0ic3RyaW5nIj9lLmNoYXJDb2RlQXQoMCk6ZTtyZXR1cm4gdD49NDgmJnQ8PTU3fXZhciBiMz15MztmdW5jdGlvbiB5MyhlKXt2YXIgdD10eXBlb2YgZT09InN0cmluZyI/ZS5jaGFyQ29kZUF0KDApOmU7cmV0dXJuIHQ+PTk3JiZ0PD0xMDJ8fHQ+PTY1JiZ0PD03MHx8dD49NDgmJnQ8PTU3fXZhciB2Mz1FMztmdW5jdGlvbiBFMyhlKXt2YXIgdD10eXBlb2YgZT09InN0cmluZyI/ZS5jaGFyQ29kZUF0KDApOmU7cmV0dXJuIHQ+PTk3JiZ0PD0xMjJ8fHQ+PTY1JiZ0PD05MH12YXIgUzM9djMsdzM9Q0MsVDM9azM7ZnVuY3Rpb24gazMoZSl7cmV0dXJuIFMzKGUpfHx3MyhlKX12YXIgeW8sQTM9NTkseDM9UjM7ZnVuY3Rpb24gUjMoZSl7dmFyIHQ9IiYiK2UrIjsiLG47cmV0dXJuIHlvPXlvfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIikseW8uaW5uZXJIVE1MPXQsbj15by50ZXh0Q29udGVudCxuLmNoYXJDb2RlQXQobi5sZW5ndGgtMSk9PT1BMyYmZSE9PSJzZW1pInx8bj09PXQ/ITE6bn12YXIgeFM9bTMsUlM9ZzMsXzM9Q0MsSTM9YjMsT0M9VDMsTjM9eDMsQzM9cTMsTzM9e30uaGFzT3duUHJvcGVydHksa3I9U3RyaW5nLmZyb21DaGFyQ29kZSxMMz1GdW5jdGlvbi5wcm90b3R5cGUsX1M9e3dhcm5pbmc6bnVsbCxyZWZlcmVuY2U6bnVsbCx0ZXh0Om51bGwsd2FybmluZ0NvbnRleHQ6bnVsbCxyZWZlcmVuY2VDb250ZXh0Om51bGwsdGV4dENvbnRleHQ6bnVsbCxwb3NpdGlvbjp7fSxhZGRpdGlvbmFsOm51bGwsYXR0cmlidXRlOiExLG5vblRlcm1pbmF0ZWQ6ITB9LEQzPTksSVM9MTAsTTM9MTIsUDM9MzIsTlM9MzgsRjM9NTksVTM9NjAsQjM9NjEsJDM9MzUsejM9ODgsajM9MTIwLEczPTY1NTMzLEFyPSJuYW1lZCIsa2I9ImhleGFkZWNpbWFsIixBYj0iZGVjaW1hbCIseGI9e307eGJba2JdPTE2O3hiW0FiXT0xMDt2YXIgSHM9e307SHNbQXJdPU9DO0hzW0FiXT1fMztIc1trYl09STM7dmFyIExDPTEsREM9MixNQz0zLFBDPTQsRkM9NSx4Zz02LFVDPTcsV249e307V25bTENdPSJOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24iO1duW0RDXT0iTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24iO1duW01DXT0iTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGVtcHR5IjtXbltQQ109Ik51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGVtcHR5IjtXbltGQ109Ik5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIG11c3QgYmUga25vd24iO1duW3hnXT0iTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBjYW5ub3QgYmUgZGlzYWxsb3dlZCI7V25bVUNdPSJOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGNhbm5vdCBiZSBvdXRzaWRlIHRoZSBwZXJtaXNzaWJsZSBVbmljb2RlIHJhbmdlIjtmdW5jdGlvbiBxMyhlLHQpe3ZhciBuPXt9LHIsYTt0fHwodD17fSk7Zm9yKGEgaW4gX1Mpcj10W2FdLG5bYV09cj8/X1NbYV07cmV0dXJuKG4ucG9zaXRpb24uaW5kZW50fHxuLnBvc2l0aW9uLnN0YXJ0KSYmKG4uaW5kZW50PW4ucG9zaXRpb24uaW5kZW50fHxbXSxuLnBvc2l0aW9uPW4ucG9zaXRpb24uc3RhcnQpLFYzKGUsbil9ZnVuY3Rpb24gVjMoZSx0KXt2YXIgbj10LmFkZGl0aW9uYWwscj10Lm5vblRlcm1pbmF0ZWQsYT10LnRleHQsaT10LnJlZmVyZW5jZSxvPXQud2FybmluZyxzPXQudGV4dENvbnRleHQsbD10LnJlZmVyZW5jZUNvbnRleHQsdT10Lndhcm5pbmdDb250ZXh0LGM9dC5wb3NpdGlvbixkPXQuaW5kZW50fHxbXSxwPWUubGVuZ3RoLGY9MCx5PS0xLGI9Yy5jb2x1bW58fDEsQT1jLmxpbmV8fDEsaD0iIixtPVtdLGcsRSxULHYsUixfLEksQyxMLEYscSxXLEcsSyxWLE4sVSxTLCQ7Zm9yKHR5cGVvZiBuPT0ic3RyaW5nIiYmKG49bi5jaGFyQ29kZUF0KDApKSxOPWooKSxDPW8/eDpMMyxmLS0scCsrOysrZjxwOylpZihSPT09SVMmJihiPWRbeV18fDEpLFI9ZS5jaGFyQ29kZUF0KGYpLFI9PT1OUyl7aWYoST1lLmNoYXJDb2RlQXQoZisxKSxJPT09RDN8fEk9PT1JU3x8ST09PU0zfHxJPT09UDN8fEk9PT1OU3x8ST09PVUzfHxJIT09SXx8biYmST09PW4pe2grPWtyKFIpLGIrKztjb250aW51ZX1mb3IoRz1mKzEsVz1HLCQ9RyxJPT09JDM/KCQ9KytXLEk9ZS5jaGFyQ29kZUF0KCQpLEk9PT16M3x8ST09PWozPyhLPWtiLCQ9KytXKTpLPUFiKTpLPUFyLGc9IiIscT0iIix2PSIiLFY9SHNbS10sJC0tOysrJDxwJiYoST1lLmNoYXJDb2RlQXQoJCksISFWKEkpKTspdis9a3IoSSksSz09PUFyJiZPMy5jYWxsKHhTLHYpJiYoZz12LHE9eFNbdl0pO1Q9ZS5jaGFyQ29kZUF0KCQpPT09RjMsVCYmKCQrKyxFPUs9PT1Bcj9OMyh2KTohMSxFJiYoZz12LHE9RSkpLFM9MSskLUcsIVQmJiFyfHwodj9LPT09QXI/KFQmJiFxP0MoRkMsMSk6KGchPT12JiYoJD1XK2cubGVuZ3RoLFM9MSskLVcsVD0hMSksVHx8KEw9Zz9MQzpNQyx0LmF0dHJpYnV0ZT8oST1lLmNoYXJDb2RlQXQoJCksST09PUIzPyhDKEwsUykscT1udWxsKTpPQyhJKT9xPW51bGw6QyhMLFMpKTpDKEwsUykpKSxfPXEpOihUfHxDKERDLFMpLF89cGFyc2VJbnQodix4YltLXSksSDMoXyk/KEMoVUMsUyksXz1rcihHMykpOl8gaW4gUlM/KEMoeGcsUyksXz1SU1tfXSk6KEY9IiIsVzMoXykmJkMoeGcsUyksXz42NTUzNSYmKF8tPTY1NTM2LEYrPWtyKF8+Pj4xMHw1NTI5NiksXz01NjMyMHxfJjEwMjMpLF89RitrcihfKSkpOkshPT1BciYmQyhQQyxTKSksXz8odGUoKSxOPWooKSxmPSQtMSxiKz0kLUcrMSxtLnB1c2goXyksVT1qKCksVS5vZmZzZXQrKyxpJiZpLmNhbGwobCxfLHtzdGFydDpOLGVuZDpVfSxlLnNsaWNlKEctMSwkKSksTj1VKToodj1lLnNsaWNlKEctMSwkKSxoKz12LGIrPXYubGVuZ3RoLGY9JC0xKX1lbHNlIFI9PT0xMCYmKEErKyx5KyssYj0wKSxSPT09Uj8oaCs9a3IoUiksYisrKTp0ZSgpO3JldHVybiBtLmpvaW4oIiIpO2Z1bmN0aW9uIGooKXtyZXR1cm57bGluZTpBLGNvbHVtbjpiLG9mZnNldDpmKyhjLm9mZnNldHx8MCl9fWZ1bmN0aW9uIHgoaGUsZWUpe3ZhciBTZT1qKCk7U2UuY29sdW1uKz1lZSxTZS5vZmZzZXQrPWVlLG8uY2FsbCh1LFduW2hlXSxTZSxoZSl9ZnVuY3Rpb24gdGUoKXtoJiYobS5wdXNoKGgpLGEmJmEuY2FsbChzLGgse3N0YXJ0Ok4sZW5kOmooKX0pLGg9IiIpfX1mdW5jdGlvbiBIMyhlKXtyZXR1cm4gZT49NTUyOTYmJmU8PTU3MzQzfHxlPjExMTQxMTF9ZnVuY3Rpb24gVzMoZSl7cmV0dXJuIGU+PTEmJmU8PTh8fGU9PT0xMXx8ZT49MTMmJmU8PTMxfHxlPj0xMjcmJmU8PTE1OXx8ZT49NjQ5NzYmJmU8PTY1MDA3fHwoZSY2NTUzNSk9PT02NTUzNXx8KGUmNjU1MzUpPT09NjU1MzR9dmFyIEJDPXtleHBvcnRzOnt9fTsoZnVuY3Rpb24oZSl7dmFyIHQ9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZT9zZWxmOnt9Oy8qKgogKiBQcmlzbTogTGlnaHR3ZWlnaHQsIHJvYnVzdCwgZWxlZ2FudCBzeW50YXggaGlnaGxpZ2h0aW5nCiAqCiAqIEBsaWNlbnNlIE1JVCA8aHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+CiAqIEBhdXRob3IgTGVhIFZlcm91IDxodHRwczovL2xlYS52ZXJvdS5tZT4KICogQG5hbWVzcGFjZQogKiBAcHVibGljCiAqL3ZhciBuPWZ1bmN0aW9uKHIpe3ZhciBhPS8oPzpefFxzKWxhbmcoPzp1YWdlKT8tKFtcdy1dKykoPz1cc3wkKS9pLGk9MCxvPXt9LHM9e21hbnVhbDpyLlByaXNtJiZyLlByaXNtLm1hbnVhbCxkaXNhYmxlV29ya2VyTWVzc2FnZUhhbmRsZXI6ci5QcmlzbSYmci5QcmlzbS5kaXNhYmxlV29ya2VyTWVzc2FnZUhhbmRsZXIsdXRpbDp7ZW5jb2RlOmZ1bmN0aW9uIG0oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBsP25ldyBsKGcudHlwZSxtKGcuY29udGVudCksZy5hbGlhcyk6QXJyYXkuaXNBcnJheShnKT9nLm1hcChtKTpnLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC9cdTAwYTAvZywiICIpfSx0eXBlOmZ1bmN0aW9uKG0pe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobSkuc2xpY2UoOCwtMSl9LG9iaklkOmZ1bmN0aW9uKG0pe3JldHVybiBtLl9faWR8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLCJfX2lkIix7dmFsdWU6KytpfSksbS5fX2lkfSxjbG9uZTpmdW5jdGlvbiBtKGcsRSl7RT1FfHx7fTt2YXIgVCx2O3N3aXRjaChzLnV0aWwudHlwZShnKSl7Y2FzZSJPYmplY3QiOmlmKHY9cy51dGlsLm9iaklkKGcpLEVbdl0pcmV0dXJuIEVbdl07VD17fSxFW3ZdPVQ7Zm9yKHZhciBSIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShSKSYmKFRbUl09bShnW1JdLEUpKTtyZXR1cm4gVDtjYXNlIkFycmF5IjpyZXR1cm4gdj1zLnV0aWwub2JqSWQoZyksRVt2XT9FW3ZdOihUPVtdLEVbdl09VCxnLmZvckVhY2goZnVuY3Rpb24oXyxJKXtUW0ldPW0oXyxFKX0pLFQpO2RlZmF1bHQ6cmV0dXJuIGd9fSxnZXRMYW5ndWFnZTpmdW5jdGlvbihtKXtmb3IoO207KXt2YXIgZz1hLmV4ZWMobS5jbGFzc05hbWUpO2lmKGcpcmV0dXJuIGdbMV0udG9Mb3dlckNhc2UoKTttPW0ucGFyZW50RWxlbWVudH1yZXR1cm4ibm9uZSJ9LHNldExhbmd1YWdlOmZ1bmN0aW9uKG0sZyl7bS5jbGFzc05hbWU9bS5jbGFzc05hbWUucmVwbGFjZShSZWdFeHAoYSwiZ2kiKSwiIiksbS5jbGFzc0xpc3QuYWRkKCJsYW5ndWFnZS0iK2cpfSxjdXJyZW50U2NyaXB0OmZ1bmN0aW9uKCl7aWYodHlwZW9mIGRvY3VtZW50PiJ1IilyZXR1cm4gbnVsbDtpZigiY3VycmVudFNjcmlwdCJpbiBkb2N1bWVudClyZXR1cm4gZG9jdW1lbnQuY3VycmVudFNjcmlwdDt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKFQpe3ZhciBtPSgvYXQgW14oXHJcbl0qXCgoLiopOlteOl0rOlteOl0rXCkkL2kuZXhlYyhULnN0YWNrKXx8W10pWzFdO2lmKG0pe3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTtmb3IodmFyIEUgaW4gZylpZihnW0VdLnNyYz09bSlyZXR1cm4gZ1tFXX1yZXR1cm4gbnVsbH19LGlzQWN0aXZlOmZ1bmN0aW9uKG0sZyxFKXtmb3IodmFyIFQ9Im5vLSIrZzttOyl7dmFyIHY9bS5jbGFzc0xpc3Q7aWYodi5jb250YWlucyhnKSlyZXR1cm4hMDtpZih2LmNvbnRhaW5zKFQpKXJldHVybiExO209bS5wYXJlbnRFbGVtZW50fXJldHVybiEhRX19LGxhbmd1YWdlczp7cGxhaW46byxwbGFpbnRleHQ6byx0ZXh0Om8sdHh0Om8sZXh0ZW5kOmZ1bmN0aW9uKG0sZyl7dmFyIEU9cy51dGlsLmNsb25lKHMubGFuZ3VhZ2VzW21dKTtmb3IodmFyIFQgaW4gZylFW1RdPWdbVF07cmV0dXJuIEV9LGluc2VydEJlZm9yZTpmdW5jdGlvbihtLGcsRSxUKXtUPVR8fHMubGFuZ3VhZ2VzO3ZhciB2PVRbbV0sUj17fTtmb3IodmFyIF8gaW4gdilpZih2Lmhhc093blByb3BlcnR5KF8pKXtpZihfPT1nKWZvcih2YXIgSSBpbiBFKUUuaGFzT3duUHJvcGVydHkoSSkmJihSW0ldPUVbSV0pO0UuaGFzT3duUHJvcGVydHkoXyl8fChSW19dPXZbX10pfXZhciBDPVRbbV07cmV0dXJuIFRbbV09UixzLmxhbmd1YWdlcy5ERlMocy5sYW5ndWFnZXMsZnVuY3Rpb24oTCxGKXtGPT09QyYmTCE9bSYmKHRoaXNbTF09Uil9KSxSfSxERlM6ZnVuY3Rpb24gbShnLEUsVCx2KXt2PXZ8fHt9O3ZhciBSPXMudXRpbC5vYmpJZDtmb3IodmFyIF8gaW4gZylpZihnLmhhc093blByb3BlcnR5KF8pKXtFLmNhbGwoZyxfLGdbX10sVHx8Xyk7dmFyIEk9Z1tfXSxDPXMudXRpbC50eXBlKEkpO0M9PT0iT2JqZWN0IiYmIXZbUihJKV0/KHZbUihJKV09ITAsbShJLEUsbnVsbCx2KSk6Qz09PSJBcnJheSImJiF2W1IoSSldJiYodltSKEkpXT0hMCxtKEksRSxfLHYpKX19fSxwbHVnaW5zOnt9LGhpZ2hsaWdodEFsbDpmdW5jdGlvbihtLGcpe3MuaGlnaGxpZ2h0QWxsVW5kZXIoZG9jdW1lbnQsbSxnKX0saGlnaGxpZ2h0QWxsVW5kZXI6ZnVuY3Rpb24obSxnLEUpe3ZhciBUPXtjYWxsYmFjazpFLGNvbnRhaW5lcjptLHNlbGVjdG9yOidjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0sIFtjbGFzcyo9Imxhbmd1YWdlLSJdIGNvZGUsIGNvZGVbY2xhc3MqPSJsYW5nLSJdLCBbY2xhc3MqPSJsYW5nLSJdIGNvZGUnfTtzLmhvb2tzLnJ1bigiYmVmb3JlLWhpZ2hsaWdodGFsbCIsVCksVC5lbGVtZW50cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoVC5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbChULnNlbGVjdG9yKSkscy5ob29rcy5ydW4oImJlZm9yZS1hbGwtZWxlbWVudHMtaGlnaGxpZ2h0IixUKTtmb3IodmFyIHY9MCxSO1I9VC5lbGVtZW50c1t2KytdOylzLmhpZ2hsaWdodEVsZW1lbnQoUixnPT09ITAsVC5jYWxsYmFjayl9LGhpZ2hsaWdodEVsZW1lbnQ6ZnVuY3Rpb24obSxnLEUpe3ZhciBUPXMudXRpbC5nZXRMYW5ndWFnZShtKSx2PXMubGFuZ3VhZ2VzW1RdO3MudXRpbC5zZXRMYW5ndWFnZShtLFQpO3ZhciBSPW0ucGFyZW50RWxlbWVudDtSJiZSLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0icHJlIiYmcy51dGlsLnNldExhbmd1YWdlKFIsVCk7dmFyIF89bS50ZXh0Q29udGVudCxJPXtlbGVtZW50Om0sbGFuZ3VhZ2U6VCxncmFtbWFyOnYsY29kZTpffTtmdW5jdGlvbiBDKEYpe0kuaGlnaGxpZ2h0ZWRDb2RlPUYscy5ob29rcy5ydW4oImJlZm9yZS1pbnNlcnQiLEkpLEkuZWxlbWVudC5pbm5lckhUTUw9SS5oaWdobGlnaHRlZENvZGUscy5ob29rcy5ydW4oImFmdGVyLWhpZ2hsaWdodCIsSSkscy5ob29rcy5ydW4oImNvbXBsZXRlIixJKSxFJiZFLmNhbGwoSS5lbGVtZW50KX1pZihzLmhvb2tzLnJ1bigiYmVmb3JlLXNhbml0eS1jaGVjayIsSSksUj1JLmVsZW1lbnQucGFyZW50RWxlbWVudCxSJiZSLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0icHJlIiYmIVIuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpJiZSLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksIUkuY29kZSl7cy5ob29rcy5ydW4oImNvbXBsZXRlIixJKSxFJiZFLmNhbGwoSS5lbGVtZW50KTtyZXR1cm59aWYocy5ob29rcy5ydW4oImJlZm9yZS1oaWdobGlnaHQiLEkpLCFJLmdyYW1tYXIpe0Mocy51dGlsLmVuY29kZShJLmNvZGUpKTtyZXR1cm59aWYoZyYmci5Xb3JrZXIpe3ZhciBMPW5ldyBXb3JrZXIocy5maWxlbmFtZSk7TC5vbm1lc3NhZ2U9ZnVuY3Rpb24oRil7QyhGLmRhdGEpfSxMLnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtsYW5ndWFnZTpJLmxhbmd1YWdlLGNvZGU6SS5jb2RlLGltbWVkaWF0ZUNsb3NlOiEwfSkpfWVsc2UgQyhzLmhpZ2hsaWdodChJLmNvZGUsSS5ncmFtbWFyLEkubGFuZ3VhZ2UpKX0saGlnaGxpZ2h0OmZ1bmN0aW9uKG0sZyxFKXt2YXIgVD17Y29kZTptLGdyYW1tYXI6ZyxsYW5ndWFnZTpFfTtpZihzLmhvb2tzLnJ1bigiYmVmb3JlLXRva2VuaXplIixUKSwhVC5ncmFtbWFyKXRocm93IG5ldyBFcnJvcignVGhlIGxhbmd1YWdlICInK1QubGFuZ3VhZ2UrJyIgaGFzIG5vIGdyYW1tYXIuJyk7cmV0dXJuIFQudG9rZW5zPXMudG9rZW5pemUoVC5jb2RlLFQuZ3JhbW1hcikscy5ob29rcy5ydW4oImFmdGVyLXRva2VuaXplIixUKSxsLnN0cmluZ2lmeShzLnV0aWwuZW5jb2RlKFQudG9rZW5zKSxULmxhbmd1YWdlKX0sdG9rZW5pemU6ZnVuY3Rpb24obSxnKXt2YXIgRT1nLnJlc3Q7aWYoRSl7Zm9yKHZhciBUIGluIEUpZ1tUXT1FW1RdO2RlbGV0ZSBnLnJlc3R9dmFyIHY9bmV3IGQ7cmV0dXJuIHAodix2LmhlYWQsbSksYyhtLHYsZyx2LmhlYWQsMCkseSh2KX0saG9va3M6e2FsbDp7fSxhZGQ6ZnVuY3Rpb24obSxnKXt2YXIgRT1zLmhvb2tzLmFsbDtFW21dPUVbbV18fFtdLEVbbV0ucHVzaChnKX0scnVuOmZ1bmN0aW9uKG0sZyl7dmFyIEU9cy5ob29rcy5hbGxbbV07aWYoISghRXx8IUUubGVuZ3RoKSlmb3IodmFyIFQ9MCx2O3Y9RVtUKytdOyl2KGcpfX0sVG9rZW46bH07ci5QcmlzbT1zO2Z1bmN0aW9uIGwobSxnLEUsVCl7dGhpcy50eXBlPW0sdGhpcy5jb250ZW50PWcsdGhpcy5hbGlhcz1FLHRoaXMubGVuZ3RoPShUfHwiIikubGVuZ3RofDB9bC5zdHJpbmdpZnk9ZnVuY3Rpb24gbShnLEUpe2lmKHR5cGVvZiBnPT0ic3RyaW5nIilyZXR1cm4gZztpZihBcnJheS5pc0FycmF5KGcpKXt2YXIgVD0iIjtyZXR1cm4gZy5mb3JFYWNoKGZ1bmN0aW9uKEMpe1QrPW0oQyxFKX0pLFR9dmFyIHY9e3R5cGU6Zy50eXBlLGNvbnRlbnQ6bShnLmNvbnRlbnQsRSksdGFnOiJzcGFuIixjbGFzc2VzOlsidG9rZW4iLGcudHlwZV0sYXR0cmlidXRlczp7fSxsYW5ndWFnZTpFfSxSPWcuYWxpYXM7UiYmKEFycmF5LmlzQXJyYXkoUik/QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodi5jbGFzc2VzLFIpOnYuY2xhc3Nlcy5wdXNoKFIpKSxzLmhvb2tzLnJ1bigid3JhcCIsdik7dmFyIF89IiI7Zm9yKHZhciBJIGluIHYuYXR0cmlidXRlcylfKz0iICIrSSsnPSInKyh2LmF0dHJpYnV0ZXNbSV18fCIiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpKyciJztyZXR1cm4iPCIrdi50YWcrJyBjbGFzcz0iJyt2LmNsYXNzZXMuam9pbigiICIpKyciJytfKyI+Iit2LmNvbnRlbnQrIjwvIit2LnRhZysiPiJ9O2Z1bmN0aW9uIHUobSxnLEUsVCl7bS5sYXN0SW5kZXg9Zzt2YXIgdj1tLmV4ZWMoRSk7aWYodiYmVCYmdlsxXSl7dmFyIFI9dlsxXS5sZW5ndGg7di5pbmRleCs9Uix2WzBdPXZbMF0uc2xpY2UoUil9cmV0dXJuIHZ9ZnVuY3Rpb24gYyhtLGcsRSxULHYsUil7Zm9yKHZhciBfIGluIEUpaWYoISghRS5oYXNPd25Qcm9wZXJ0eShfKXx8IUVbX10pKXt2YXIgST1FW19dO0k9QXJyYXkuaXNBcnJheShJKT9JOltJXTtmb3IodmFyIEM9MDtDPEkubGVuZ3RoOysrQyl7aWYoUiYmUi5jYXVzZT09XysiLCIrQylyZXR1cm47dmFyIEw9SVtDXSxGPUwuaW5zaWRlLHE9ISFMLmxvb2tiZWhpbmQsVz0hIUwuZ3JlZWR5LEc9TC5hbGlhcztpZihXJiYhTC5wYXR0ZXJuLmdsb2JhbCl7dmFyIEs9TC5wYXR0ZXJuLnRvU3RyaW5nKCkubWF0Y2goL1tpbXN1eV0qJC8pWzBdO0wucGF0dGVybj1SZWdFeHAoTC5wYXR0ZXJuLnNvdXJjZSxLKyJnIil9Zm9yKHZhciBWPUwucGF0dGVybnx8TCxOPVQubmV4dCxVPXY7TiE9PWcudGFpbCYmIShSJiZVPj1SLnJlYWNoKTtVKz1OLnZhbHVlLmxlbmd0aCxOPU4ubmV4dCl7dmFyIFM9Ti52YWx1ZTtpZihnLmxlbmd0aD5tLmxlbmd0aClyZXR1cm47aWYoIShTIGluc3RhbmNlb2YgbCkpe3ZhciAkPTEsajtpZihXKXtpZihqPXUoVixVLG0scSksIWp8fGouaW5kZXg+PW0ubGVuZ3RoKWJyZWFrO3ZhciBlZT1qLmluZGV4LHg9ai5pbmRleCtqWzBdLmxlbmd0aCx0ZT1VO2Zvcih0ZSs9Ti52YWx1ZS5sZW5ndGg7ZWU+PXRlOylOPU4ubmV4dCx0ZSs9Ti52YWx1ZS5sZW5ndGg7aWYodGUtPU4udmFsdWUubGVuZ3RoLFU9dGUsTi52YWx1ZSBpbnN0YW5jZW9mIGwpY29udGludWU7Zm9yKHZhciBoZT1OO2hlIT09Zy50YWlsJiYodGU8eHx8dHlwZW9mIGhlLnZhbHVlPT0ic3RyaW5nIik7aGU9aGUubmV4dCkkKyssdGUrPWhlLnZhbHVlLmxlbmd0aDskLS0sUz1tLnNsaWNlKFUsdGUpLGouaW5kZXgtPVV9ZWxzZSBpZihqPXUoViwwLFMscSksIWopY29udGludWU7dmFyIGVlPWouaW5kZXgsU2U9alswXSxVZT1TLnNsaWNlKDAsZWUpLER0PVMuc2xpY2UoZWUrU2UubGVuZ3RoKSxFdD1VK1MubGVuZ3RoO1ImJkV0PlIucmVhY2gmJihSLnJlYWNoPUV0KTt2YXIgTXQ9Ti5wcmV2O1VlJiYoTXQ9cChnLE10LFVlKSxVKz1VZS5sZW5ndGgpLGYoZyxNdCwkKTt2YXIgWnM9bmV3IGwoXyxGP3MudG9rZW5pemUoU2UsRik6U2UsRyxTZSk7aWYoTj1wKGcsTXQsWnMpLER0JiZwKGcsTixEdCksJD4xKXt2YXIgYmE9e2NhdXNlOl8rIiwiK0MscmVhY2g6RXR9O2MobSxnLEUsTi5wcmV2LFUsYmEpLFImJmJhLnJlYWNoPlIucmVhY2gmJihSLnJlYWNoPWJhLnJlYWNoKX19fX19fWZ1bmN0aW9uIGQoKXt2YXIgbT17dmFsdWU6bnVsbCxwcmV2Om51bGwsbmV4dDpudWxsfSxnPXt2YWx1ZTpudWxsLHByZXY6bSxuZXh0Om51bGx9O20ubmV4dD1nLHRoaXMuaGVhZD1tLHRoaXMudGFpbD1nLHRoaXMubGVuZ3RoPTB9ZnVuY3Rpb24gcChtLGcsRSl7dmFyIFQ9Zy5uZXh0LHY9e3ZhbHVlOkUscHJldjpnLG5leHQ6VH07cmV0dXJuIGcubmV4dD12LFQucHJldj12LG0ubGVuZ3RoKyssdn1mdW5jdGlvbiBmKG0sZyxFKXtmb3IodmFyIFQ9Zy5uZXh0LHY9MDt2PEUmJlQhPT1tLnRhaWw7disrKVQ9VC5uZXh0O2cubmV4dD1ULFQucHJldj1nLG0ubGVuZ3RoLT12fWZ1bmN0aW9uIHkobSl7Zm9yKHZhciBnPVtdLEU9bS5oZWFkLm5leHQ7RSE9PW0udGFpbDspZy5wdXNoKEUudmFsdWUpLEU9RS5uZXh0O3JldHVybiBnfWlmKCFyLmRvY3VtZW50KXJldHVybiByLmFkZEV2ZW50TGlzdGVuZXImJihzLmRpc2FibGVXb3JrZXJNZXNzYWdlSGFuZGxlcnx8ci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihtKXt2YXIgZz1KU09OLnBhcnNlKG0uZGF0YSksRT1nLmxhbmd1YWdlLFQ9Zy5jb2RlLHY9Zy5pbW1lZGlhdGVDbG9zZTtyLnBvc3RNZXNzYWdlKHMuaGlnaGxpZ2h0KFQscy5sYW5ndWFnZXNbRV0sRSkpLHYmJnIuY2xvc2UoKX0sITEpKSxzO3ZhciBiPXMudXRpbC5jdXJyZW50U2NyaXB0KCk7YiYmKHMuZmlsZW5hbWU9Yi5zcmMsYi5oYXNBdHRyaWJ1dGUoImRhdGEtbWFudWFsIikmJihzLm1hbnVhbD0hMCkpO2Z1bmN0aW9uIEEoKXtzLm1hbnVhbHx8cy5oaWdobGlnaHRBbGwoKX1pZighcy5tYW51YWwpe3ZhciBoPWRvY3VtZW50LnJlYWR5U3RhdGU7aD09PSJsb2FkaW5nInx8aD09PSJpbnRlcmFjdGl2ZSImJmImJmIuZGVmZXI/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQSk6d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKEEpOndpbmRvdy5zZXRUaW1lb3V0KEEsMTYpfXJldHVybiBzfSh0KTtlLmV4cG9ydHMmJihlLmV4cG9ydHM9biksdHlwZW9mIEZuPCJ1IiYmKEZuLlByaXNtPW4pfSkoQkMpO3ZhciBZMz1CQy5leHBvcnRzLEszPVJiO1JiLmRpc3BsYXlOYW1lPSJtYXJrdXAiO1JiLmFsaWFzZXM9WyJodG1sIiwibWF0aG1sIiwic3ZnIiwieG1sIiwic3NtbCIsImF0b20iLCJyc3MiXTtmdW5jdGlvbiBSYihlKXtlLmxhbmd1YWdlcy5tYXJrdXA9e2NvbW1lbnQ6e3BhdHRlcm46LzwhLS0oPzooPyE8IS0tKVtcc1xTXSkqPy0tPi8sZ3JlZWR5OiEwfSxwcm9sb2c6e3BhdHRlcm46LzxcP1tcc1xTXSs/XD8+LyxncmVlZHk6ITB9LGRvY3R5cGU6e3BhdHRlcm46LzwhRE9DVFlQRSg/OltePiInW1xdXXwiW14iXSoifCdbXiddKicpKyg/OlxbKD86W148IidcXV18IlteIl0qInwnW14nXSonfDwoPyEhLS0pfDwhLS0oPzpbXi1dfC0oPyEtPikpKi0tPikqXF1ccyopPz4vaSxncmVlZHk6ITAsaW5zaWRlOnsiaW50ZXJuYWwtc3Vic2V0Ijp7cGF0dGVybjovKF5bXlxbXSpcWylbXHNcU10rKD89XF0+JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpudWxsfSxzdHJpbmc6e3BhdHRlcm46LyJbXiJdKiJ8J1teJ10qJy8sZ3JlZWR5OiEwfSxwdW5jdHVhdGlvbjovXjwhfD4kfFtbXF1dLywiZG9jdHlwZS10YWciOi9eRE9DVFlQRS9pLG5hbWU6L1teXHM8PiciXSsvfX0sY2RhdGE6e3BhdHRlcm46LzwhXFtDREFUQVxbW1xzXFNdKj9cXVxdPi9pLGdyZWVkeTohMH0sdGFnOntwYXR0ZXJuOi88XC8/KD8hXGQpW15ccz5cLz0kPCVdKyg/OlxzKD86XHMqW15ccz5cLz1dKyg/OlxzKj1ccyooPzoiW14iXSoifCdbXiddKid8W15ccyciPj1dKyg/PVtccz5dKSl8KD89W1xzLz5dKSkpKyk/XHMqXC8/Pi8sZ3JlZWR5OiEwLGluc2lkZTp7dGFnOntwYXR0ZXJuOi9ePFwvP1teXHM+XC9dKy8saW5zaWRlOntwdW5jdHVhdGlvbjovXjxcLz8vLG5hbWVzcGFjZTovXlteXHM+XC86XSs6L319LCJzcGVjaWFsLWF0dHIiOltdLCJhdHRyLXZhbHVlIjp7cGF0dGVybjovPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXlxzJyI+PV0rKS8saW5zaWRlOntwdW5jdHVhdGlvbjpbe3BhdHRlcm46L149LyxhbGlhczoiYXR0ci1lcXVhbHMifSwvInwnL119fSxwdW5jdHVhdGlvbjovXC8/Pi8sImF0dHItbmFtZSI6e3BhdHRlcm46L1teXHM+XC9dKy8saW5zaWRlOntuYW1lc3BhY2U6L15bXlxzPlwvOl0rOi99fX19LGVudGl0eTpbe3BhdHRlcm46LyZbXGRhLXpdezEsOH07L2ksYWxpYXM6Im5hbWVkLWVudGl0eSJ9LC8mI3g/W1xkYS1mXXsxLDh9Oy9pXX0sZS5sYW5ndWFnZXMubWFya3VwLnRhZy5pbnNpZGVbImF0dHItdmFsdWUiXS5pbnNpZGUuZW50aXR5PWUubGFuZ3VhZ2VzLm1hcmt1cC5lbnRpdHksZS5sYW5ndWFnZXMubWFya3VwLmRvY3R5cGUuaW5zaWRlWyJpbnRlcm5hbC1zdWJzZXQiXS5pbnNpZGU9ZS5sYW5ndWFnZXMubWFya3VwLGUuaG9va3MuYWRkKCJ3cmFwIixmdW5jdGlvbih0KXt0LnR5cGU9PT0iZW50aXR5IiYmKHQuYXR0cmlidXRlcy50aXRsZT10LmNvbnRlbnQudmFsdWUucmVwbGFjZSgvJmFtcDsvLCImIikpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUubGFuZ3VhZ2VzLm1hcmt1cC50YWcsImFkZElubGluZWQiLHt2YWx1ZTpmdW5jdGlvbihuLHIpe3ZhciBhPXt9O2FbImxhbmd1YWdlLSIrcl09e3BhdHRlcm46LyhePCFcW0NEQVRBXFspW1xzXFNdKz8oPz1cXVxdPiQpL2ksbG9va2JlaGluZDohMCxpbnNpZGU6ZS5sYW5ndWFnZXNbcl19LGEuY2RhdGE9L148IVxbQ0RBVEFcW3xcXVxdPiQvaTt2YXIgaT17ImluY2x1ZGVkLWNkYXRhIjp7cGF0dGVybjovPCFcW0NEQVRBXFtbXHNcU10qP1xdXF0+L2ksaW5zaWRlOmF9fTtpWyJsYW5ndWFnZS0iK3JdPXtwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6ZS5sYW5ndWFnZXNbcl19O3ZhciBvPXt9O29bbl09e3BhdHRlcm46UmVnRXhwKC8oPF9fW14+XSo+KSg/OjwhXFtDREFUQVxbKD86W15cXV18XF0oPyFcXT4pKSpcXVxdPnwoPyE8IVxbQ0RBVEFcWylbXHNcU10pKj8oPz08XC9fXz4pLy5zb3VyY2UucmVwbGFjZSgvX18vZyxmdW5jdGlvbigpe3JldHVybiBufSksImkiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6aX0sZS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJtYXJrdXAiLCJjZGF0YSIsbyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUubGFuZ3VhZ2VzLm1hcmt1cC50YWcsImFkZEF0dHJpYnV0ZSIse3ZhbHVlOmZ1bmN0aW9uKHQsbil7ZS5sYW5ndWFnZXMubWFya3VwLnRhZy5pbnNpZGVbInNwZWNpYWwtYXR0ciJdLnB1c2goe3BhdHRlcm46UmVnRXhwKC8oXnxbIidcc10pLy5zb3VyY2UrIig/OiIrdCsiKSIrL1xzKj1ccyooPzoiW14iXSoifCdbXiddKid8W15ccyciPj1dKyg/PVtccz5dKSkvLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiYXR0ci1uYW1lIjovXlteXHM9XSsvLCJhdHRyLXZhbHVlIjp7cGF0dGVybjovPVtcc1xTXSsvLGluc2lkZTp7dmFsdWU6e3BhdHRlcm46LyhePVxzKihbIiddfCg/IVsiJ10pKSlcU1tcc1xTXSooPz1cMiQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOltuLCJsYW5ndWFnZS0iK25dLGluc2lkZTplLmxhbmd1YWdlc1tuXX0scHVuY3R1YXRpb246W3twYXR0ZXJuOi9ePS8sYWxpYXM6ImF0dHItZXF1YWxzIn0sLyJ8Jy9dfX19fSl9fSksZS5sYW5ndWFnZXMuaHRtbD1lLmxhbmd1YWdlcy5tYXJrdXAsZS5sYW5ndWFnZXMubWF0aG1sPWUubGFuZ3VhZ2VzLm1hcmt1cCxlLmxhbmd1YWdlcy5zdmc9ZS5sYW5ndWFnZXMubWFya3VwLGUubGFuZ3VhZ2VzLnhtbD1lLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIse30pLGUubGFuZ3VhZ2VzLnNzbWw9ZS5sYW5ndWFnZXMueG1sLGUubGFuZ3VhZ2VzLmF0b209ZS5sYW5ndWFnZXMueG1sLGUubGFuZ3VhZ2VzLnJzcz1lLmxhbmd1YWdlcy54bWx9dmFyIFgzPV9iO19iLmRpc3BsYXlOYW1lPSJjc3MiO19iLmFsaWFzZXM9W107ZnVuY3Rpb24gX2IoZSl7KGZ1bmN0aW9uKHQpe3ZhciBuPS8oPzoiKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqInwnKD86XFwoPzpcclxufFtcc1xTXSl8W14nXFxcclxuXSkqJykvO3QubGFuZ3VhZ2VzLmNzcz17Y29tbWVudDovXC9cKltcc1xTXSo/XCpcLy8sYXRydWxlOntwYXR0ZXJuOi9AW1x3LV0oPzpbXjt7XHNdfFxzKyg/IVtcc3tdKSkqKD86O3woPz1ccypceykpLyxpbnNpZGU6e3J1bGU6L15AW1x3LV0rLywic2VsZWN0b3ItZnVuY3Rpb24tYXJndW1lbnQiOntwYXR0ZXJuOi8oXGJzZWxlY3RvclxzKlwoXHMqKD8hW1xzKV0pKSg/OlteKClcc118XHMrKD8hW1xzKV0pfFwoKD86W14oKV18XChbXigpXSpcKSkqXCkpKyg/PVxzKlwpKS8sbG9va2JlaGluZDohMCxhbGlhczoic2VsZWN0b3IifSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxbXlx3LV0pKD86YW5kfG5vdHxvbmx5fG9yKSg/IVtcdy1dKS8sbG9va2JlaGluZDohMH19fSx1cmw6e3BhdHRlcm46UmVnRXhwKCJcXGJ1cmxcXCgoPzoiK24uc291cmNlKyJ8IisvKD86W15cXFxyXG4oKSInXXxcXFtcc1xTXSkqLy5zb3VyY2UrIilcXCkiLCJpIiksZ3JlZWR5OiEwLGluc2lkZTp7ZnVuY3Rpb246L151cmwvaSxwdW5jdHVhdGlvbjovXlwofFwpJC8sc3RyaW5nOntwYXR0ZXJuOlJlZ0V4cCgiXiIrbi5zb3VyY2UrIiQiKSxhbGlhczoidXJsIn19fSxzZWxlY3Rvcjp7cGF0dGVybjpSZWdFeHAoYChefFt7fVxcc10pW157fVxcc10oPzpbXnt9OyInXFxzXXxcXHMrKD8hW1xcc3tdKXxgK24uc291cmNlKyIpKig/PVxccypcXHspIiksbG9va2JlaGluZDohMH0sc3RyaW5nOntwYXR0ZXJuOm4sZ3JlZWR5OiEwfSxwcm9wZXJ0eTp7cGF0dGVybjovKF58W14tXHdceEEwLVx1RkZGRl0pKD8hXHMpWy1fYS16XHhBMC1cdUZGRkZdKD86KD8hXHMpWy1cd1x4QTAtXHVGRkZGXSkqKD89XHMqOikvaSxsb29rYmVoaW5kOiEwfSxpbXBvcnRhbnQ6LyFpbXBvcnRhbnRcYi9pLGZ1bmN0aW9uOntwYXR0ZXJuOi8oXnxbXi1hLXowLTldKVstYS16MC05XSsoPz1cKCkvaSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWygpe307OixdL30sdC5sYW5ndWFnZXMuY3NzLmF0cnVsZS5pbnNpZGUucmVzdD10Lmxhbmd1YWdlcy5jc3M7dmFyIHI9dC5sYW5ndWFnZXMubWFya3VwO3ImJihyLnRhZy5hZGRJbmxpbmVkKCJzdHlsZSIsImNzcyIpLHIudGFnLmFkZEF0dHJpYnV0ZSgic3R5bGUiLCJjc3MiKSl9KShlKX12YXIgWjM9SWI7SWIuZGlzcGxheU5hbWU9ImNsaWtlIjtJYi5hbGlhc2VzPVtdO2Z1bmN0aW9uIEliKGUpe2UubGFuZ3VhZ2VzLmNsaWtlPXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/KD86XCpcL3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcOl0pXC9cLy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfGludGVyZmFjZXxuZXd8dHJhaXQpXHMrfFxiY2F0Y2hccytcKClbXHcuXFxdKy9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovWy5cXF0vfX0sa2V5d29yZDovXGIoPzpicmVha3xjYXRjaHxjb250aW51ZXxkb3xlbHNlfGZpbmFsbHl8Zm9yfGZ1bmN0aW9ufGlmfGlufGluc3RhbmNlb2Z8bmV3fG51bGx8cmV0dXJufHRocm93fHRyeXx3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxmdW5jdGlvbjovXGJcdysoPz1cKCkvLG51bWJlcjovXGIweFtcZGEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8vaSxvcGVyYXRvcjovWzw+XT0/fFshPV09Pz0/fC0tP3xcK1wrP3wmJj98XHxcfD98Wz8qL35eJV0vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL319dmFyIFEzPU5iO05iLmRpc3BsYXlOYW1lPSJqYXZhc2NyaXB0IjtOYi5hbGlhc2VzPVsianMiXTtmdW5jdGlvbiBOYihlKXtlLmxhbmd1YWdlcy5qYXZhc2NyaXB0PWUubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHsiY2xhc3MtbmFtZSI6W2UubGFuZ3VhZ2VzLmNsaWtlWyJjbGFzcy1uYW1lIl0se3BhdHRlcm46LyhefFteJFx3XHhBMC1cdUZGRkZdKSg/IVxzKVtfJEEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKig/PVwuKD86Y29uc3RydWN0b3J8cHJvdG90eXBlKSkvLGxvb2tiZWhpbmQ6ITB9XSxrZXl3b3JkOlt7cGF0dGVybjovKCg/Ol58XH0pXHMqKWNhdGNoXGIvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxbXi5dfFwuXC5cLlxzKilcYig/OmFzfGFzc2VydCg/PVxzKlx7KXxhc3luYyg/PVxzKig/OmZ1bmN0aW9uXGJ8XCh8WyRcd1x4QTAtXHVGRkZGXXwkKSl8YXdhaXR8YnJlYWt8Y2FzZXxjbGFzc3xjb25zdHxjb250aW51ZXxkZWJ1Z2dlcnxkZWZhdWx0fGRlbGV0ZXxkb3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZmluYWxseSg/PVxzKig/Olx7fCQpKXxmb3J8ZnJvbSg/PVxzKig/OlsnIl18JCkpfGZ1bmN0aW9ufCg/OmdldHxzZXQpKD89XHMqKD86WyNcWyRcd1x4QTAtXHVGRkZGXXwkKSl8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5zdGFuY2VvZnxpbnRlcmZhY2V8bGV0fG5ld3xudWxsfG9mfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJldHVybnxzdGF0aWN8c3VwZXJ8c3dpdGNofHRoaXN8dGhyb3d8dHJ5fHR5cGVvZnx1bmRlZmluZWR8dmFyfHZvaWR8d2hpbGV8d2l0aHx5aWVsZClcYi8sbG9va2JlaGluZDohMH1dLGZ1bmN0aW9uOi8jPyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKig/PVxzKig/OlwuXHMqKD86YXBwbHl8YmluZHxjYWxsKVxzKik/XCgpLyxudW1iZXI6e3BhdHRlcm46UmVnRXhwKC8oXnxbXlx3JF0pLy5zb3VyY2UrIig/OiIrKC9OYU58SW5maW5pdHkvLnNvdXJjZSsifCIrLzBbYkJdWzAxXSsoPzpfWzAxXSspKm4/Ly5zb3VyY2UrInwiKy8wW29PXVswLTddKyg/Ol9bMC03XSspKm4/Ly5zb3VyY2UrInwiKy8wW3hYXVtcZEEtRmEtZl0rKD86X1tcZEEtRmEtZl0rKSpuPy8uc291cmNlKyJ8IisvXGQrKD86X1xkKykqbi8uc291cmNlKyJ8IisvKD86XGQrKD86X1xkKykqKD86XC4oPzpcZCsoPzpfXGQrKSopPyk/fFwuXGQrKD86X1xkKykqKSg/OltFZV1bKy1dP1xkKyg/Ol9cZCspKik/Ly5zb3VyY2UpKyIpIisvKD8hW1x3JF0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOi8tLXxcK1wrfFwqXCo9P3w9PnwmJj0/fFx8XHw9P3xbIT1dPT18PDw9P3w+Pj4/PT98Wy0rKi8lJnxeIT08Pl09P3xcLnszfXxcP1w/PT98XD9cLj98W346XS99KSxlLmxhbmd1YWdlcy5qYXZhc2NyaXB0WyJjbGFzcy1uYW1lIl1bMF0ucGF0dGVybj0vKFxiKD86Y2xhc3N8ZXh0ZW5kc3xpbXBsZW1lbnRzfGluc3RhbmNlb2Z8aW50ZXJmYWNlfG5ldylccyspW1x3LlxcXSsvLGUubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiamF2YXNjcmlwdCIsImtleXdvcmQiLHtyZWdleDp7cGF0dGVybjovKCg/Ol58W14kXHdceEEwLVx1RkZGRi4iJ1xdKVxzXXxcYig/OnJldHVybnx5aWVsZCkpXHMqKVwvKD86XFsoPzpbXlxdXFxcclxuXXxcXC4pKlxdfFxcLnxbXi9cXFxbXHJcbl0pK1wvW2RnaW15dXNdezAsN30oPz0oPzpcc3xcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcLykqKD86JHxbXHJcbiwuOzp9KVxdXXxcL1wvKSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7InJlZ2V4LXNvdXJjZSI6e3BhdHRlcm46L14oXC8pW1xzXFNdKyg/PVwvW2Etel0qJCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Imxhbmd1YWdlLXJlZ2V4IixpbnNpZGU6ZS5sYW5ndWFnZXMucmVnZXh9LCJyZWdleC1kZWxpbWl0ZXIiOi9eXC98XC8kLywicmVnZXgtZmxhZ3MiOi9eW2Etel0rJC99fSwiZnVuY3Rpb24tdmFyaWFibGUiOntwYXR0ZXJuOi8jPyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKig/PVxzKls9Ol1ccyooPzphc3luY1xzKik/KD86XGJmdW5jdGlvblxifCg/OlwoKD86W14oKV18XChbXigpXSpcKSkqXCl8KD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKVxzKj0+KSkvLGFsaWFzOiJmdW5jdGlvbiJ9LHBhcmFtZXRlcjpbe3BhdHRlcm46LyhmdW5jdGlvbig/OlxzKyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKik/XHMqXChccyopKD8hXHMpKD86W14oKVxzXXxccysoPyFbXHMpXSl8XChbXigpXSpcKSkrKD89XHMqXCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTplLmxhbmd1YWdlcy5qYXZhc2NyaXB0fSx7cGF0dGVybjovKF58W14kXHdceEEwLVx1RkZGRl0pKD8hXHMpW18kYS16XHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqPT4pL2ksbG9va2JlaGluZDohMCxpbnNpZGU6ZS5sYW5ndWFnZXMuamF2YXNjcmlwdH0se3BhdHRlcm46LyhcKFxzKikoPyFccykoPzpbXigpXHNdfFxzKyg/IVtccyldKXxcKFteKCldKlwpKSsoPz1ccypcKVxzKj0+KS8sbG9va2JlaGluZDohMCxpbnNpZGU6ZS5sYW5ndWFnZXMuamF2YXNjcmlwdH0se3BhdHRlcm46LygoPzpcYnxcc3xeKSg/ISg/OmFzfGFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVidWdnZXJ8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2V0fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxuZXd8bnVsbHxvZnxwYWNrYWdlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZXR1cm58c2V0fHN0YXRpY3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZW9mfHVuZGVmaW5lZHx2YXJ8dm9pZHx3aGlsZXx3aXRofHlpZWxkKSg/IVskXHdceEEwLVx1RkZGRl0pKSg/Oig/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKlxzKilcKFxzKnxcXVxzKlwoXHMqKSg/IVxzKSg/OlteKClcc118XHMrKD8hW1xzKV0pfFwoW14oKV0qXCkpKyg/PVxzKlwpXHMqXHspLyxsb29rYmVoaW5kOiEwLGluc2lkZTplLmxhbmd1YWdlcy5qYXZhc2NyaXB0fV0sY29uc3RhbnQ6L1xiW0EtWl0oPzpbQS1aX118XGR4PykqXGIvfSksZS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0Iiwic3RyaW5nIix7aGFzaGJhbmc6e3BhdHRlcm46L14jIS4qLyxncmVlZHk6ITAsYWxpYXM6ImNvbW1lbnQifSwidGVtcGxhdGUtc3RyaW5nIjp7cGF0dGVybjovYCg/OlxcW1xzXFNdfFwkXHsoPzpbXnt9XXxceyg/Oltee31dfFx7W159XSpcfSkqXH0pK1x9fCg/IVwkXHspW15cXGBdKSpgLyxncmVlZHk6ITAsaW5zaWRlOnsidGVtcGxhdGUtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eYHxgJC8sYWxpYXM6InN0cmluZyJ9LGludGVycG9sYXRpb246e3BhdHRlcm46LygoPzpefFteXFxdKSg/OlxcezJ9KSopXCRceyg/Oltee31dfFx7KD86W157fV18XHtbXn1dKlx9KSpcfSkrXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15cJFx7fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scmVzdDplLmxhbmd1YWdlcy5qYXZhc2NyaXB0fX0sc3RyaW5nOi9bXHNcU10rL319LCJzdHJpbmctcHJvcGVydHkiOntwYXR0ZXJuOi8oKD86XnxbLHtdKVsgXHRdKikoWyInXSkoPzpcXCg/OlxyXG58W1xzXFNdKXwoPyFcMilbXlxcXHJcbl0pKlwyKD89XHMqOikvbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoicHJvcGVydHkifX0pLGUubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiamF2YXNjcmlwdCIsIm9wZXJhdG9yIix7ImxpdGVyYWwtcHJvcGVydHkiOntwYXR0ZXJuOi8oKD86XnxbLHtdKVsgXHRdKikoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSooPz1ccyo6KS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InByb3BlcnR5In19KSxlLmxhbmd1YWdlcy5tYXJrdXAmJihlLmxhbmd1YWdlcy5tYXJrdXAudGFnLmFkZElubGluZWQoInNjcmlwdCIsImphdmFzY3JpcHQiKSxlLmxhbmd1YWdlcy5tYXJrdXAudGFnLmFkZEF0dHJpYnV0ZSgvb24oPzphYm9ydHxibHVyfGNoYW5nZXxjbGlja3xjb21wb3NpdGlvbig/OmVuZHxzdGFydHx1cGRhdGUpfGRibGNsaWNrfGVycm9yfGZvY3VzKD86aW58b3V0KT98a2V5KD86ZG93bnx1cCl8bG9hZHxtb3VzZSg/OmRvd258ZW50ZXJ8bGVhdmV8bW92ZXxvdXR8b3Zlcnx1cCl8cmVzZXR8cmVzaXplfHNjcm9sbHxzZWxlY3R8c2xvdGNoYW5nZXxzdWJtaXR8dW5sb2FkfHdoZWVsKS8uc291cmNlLCJqYXZhc2NyaXB0IikpLGUubGFuZ3VhZ2VzLmpzPWUubGFuZ3VhZ2VzLmphdmFzY3JpcHR9dmFyIGphPXR5cGVvZiBnbG9iYWxUaGlzPT0ib2JqZWN0Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPT0ib2JqZWN0Ij9zZWxmOnR5cGVvZiB3aW5kb3c9PSJvYmplY3QiP3dpbmRvdzp0eXBlb2YgRm49PSJvYmplY3QiP0ZuOnt9LEozPWc0KCk7amEuUHJpc209e21hbnVhbDohMCxkaXNhYmxlV29ya2VyTWVzc2FnZUhhbmRsZXI6ITB9O3ZhciBlND1ncSx0ND1DMywkQz1ZMyxuND1LMyxyND1YMyxhND1aMyxpND1RMztKMygpO3ZhciBDYj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB6Qygpe316Qy5wcm90b3R5cGU9JEM7dmFyIF9lPW5ldyB6QyxvND1fZTtfZS5oaWdobGlnaHQ9bDQ7X2UucmVnaXN0ZXI9cWk7X2UuYWxpYXM9czQ7X2UucmVnaXN0ZXJlZD11NDtfZS5saXN0TGFuZ3VhZ2VzPWM0O3FpKG40KTtxaShyNCk7cWkoYTQpO3FpKGk0KTtfZS51dGlsLmVuY29kZT1mNDtfZS5Ub2tlbi5zdHJpbmdpZnk9ZDQ7ZnVuY3Rpb24gcWkoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiJ8fCFlLmRpc3BsYXlOYW1lKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYGZ1bmN0aW9uYCBmb3IgYGdyYW1tYXJgLCBnb3QgYCIrZSsiYCIpO19lLmxhbmd1YWdlc1tlLmRpc3BsYXlOYW1lXT09PXZvaWQgMCYmZShfZSl9ZnVuY3Rpb24gczQoZSx0KXt2YXIgbj1fZS5sYW5ndWFnZXMscj1lLGEsaSxvLHM7dCYmKHI9e30scltlXT10KTtmb3IoYSBpbiByKWZvcihpPXJbYV0saT10eXBlb2YgaT09InN0cmluZyI/W2ldOmksbz1pLmxlbmd0aCxzPS0xOysrczxvOyluW2lbc11dPW5bYV19ZnVuY3Rpb24gbDQoZSx0KXt2YXIgbj0kQy5oaWdobGlnaHQscjtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgc3RyaW5nYCBmb3IgYHZhbHVlYCwgZ290IGAiK2UrImAiKTtpZihfZS51dGlsLnR5cGUodCk9PT0iT2JqZWN0IilyPXQsdD1udWxsO2Vsc2V7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIGBuYW1lYCwgZ290IGAiK3QrImAiKTtpZihDYi5jYWxsKF9lLmxhbmd1YWdlcyx0KSlyPV9lLmxhbmd1YWdlc1t0XTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBsYW5ndWFnZTogYCIrdCsiYCBpcyBub3QgcmVnaXN0ZXJlZCIpfXJldHVybiBuLmNhbGwodGhpcyxlLHIsdCl9ZnVuY3Rpb24gdTQoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIGBsYW5ndWFnZWAsIGdvdCBgIitlKyJgIik7cmV0dXJuIENiLmNhbGwoX2UubGFuZ3VhZ2VzLGUpfWZ1bmN0aW9uIGM0KCl7dmFyIGU9X2UubGFuZ3VhZ2VzLHQ9W10sbjtmb3IobiBpbiBlKUNiLmNhbGwoZSxuKSYmdHlwZW9mIGVbbl09PSJvYmplY3QiJiZ0LnB1c2gobik7cmV0dXJuIHR9ZnVuY3Rpb24gZDQoZSx0LG4pe3ZhciByO3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/e3R5cGU6InRleHQiLHZhbHVlOmV9Ol9lLnV0aWwudHlwZShlKT09PSJBcnJheSI/cDQoZSx0KToocj17dHlwZTplLnR5cGUsY29udGVudDpfZS5Ub2tlbi5zdHJpbmdpZnkoZS5jb250ZW50LHQsbiksdGFnOiJzcGFuIixjbGFzc2VzOlsidG9rZW4iLGUudHlwZV0sYXR0cmlidXRlczp7fSxsYW5ndWFnZTp0LHBhcmVudDpufSxlLmFsaWFzJiYoci5jbGFzc2VzPXIuY2xhc3Nlcy5jb25jYXQoZS5hbGlhcykpLF9lLmhvb2tzLnJ1bigid3JhcCIsciksZTQoci50YWcrIi4iK3IuY2xhc3Nlcy5qb2luKCIuIiksbTQoci5hdHRyaWJ1dGVzKSxyLmNvbnRlbnQpKX1mdW5jdGlvbiBwNChlLHQpe2Zvcih2YXIgbj1bXSxyPWUubGVuZ3RoLGE9LTEsaTsrK2E8cjspaT1lW2FdLGkhPT0iIiYmaSE9PW51bGwmJmkhPT12b2lkIDAmJm4ucHVzaChpKTtmb3IoYT0tMSxyPW4ubGVuZ3RoOysrYTxyOylpPW5bYV0sblthXT1fZS5Ub2tlbi5zdHJpbmdpZnkoaSx0LG4pO3JldHVybiBufWZ1bmN0aW9uIGY0KGUpe3JldHVybiBlfWZ1bmN0aW9uIG00KGUpe3ZhciB0O2Zvcih0IGluIGUpZVt0XT10NChlW3RdKTtyZXR1cm4gZX1mdW5jdGlvbiBnNCgpe3ZhciBlPSJQcmlzbSJpbiBqYSx0PWU/amEuUHJpc206dm9pZCAwO3JldHVybiBuO2Z1bmN0aW9uIG4oKXtlP2phLlByaXNtPXQ6ZGVsZXRlIGphLlByaXNtLGU9dm9pZCAwLHQ9dm9pZCAwfX1jb25zdCBoND17J2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSc6e2NvbG9yOiJibGFjayIsYmFja2dyb3VuZDoibm9uZSIsdGV4dFNoYWRvdzoiMCAxcHggd2hpdGUiLGZvbnRGYW1pbHk6IkNvbnNvbGFzLCBNb25hY28sICdBbmRhbGUgTW9ubycsICdVYnVudHUgTW9ubycsIG1vbm9zcGFjZSIsZm9udFNpemU6IjFlbSIsdGV4dEFsaWduOiJsZWZ0Iix3aGl0ZVNwYWNlOiJwcmUiLHdvcmRTcGFjaW5nOiJub3JtYWwiLHdvcmRCcmVhazoibm9ybWFsIix3b3JkV3JhcDoibm9ybWFsIixsaW5lSGVpZ2h0OiIxLjUiLE1velRhYlNpemU6IjQiLE9UYWJTaXplOiI0Iix0YWJTaXplOiI0IixXZWJraXRIeXBoZW5zOiJub25lIixNb3pIeXBoZW5zOiJub25lIixtc0h5cGhlbnM6Im5vbmUiLGh5cGhlbnM6Im5vbmUifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0nOntjb2xvcjoiYmxhY2siLGJhY2tncm91bmQ6IiNmNWYyZjAiLHRleHRTaGFkb3c6IjAgMXB4IHdoaXRlIixmb250RmFtaWx5OiJDb25zb2xhcywgTW9uYWNvLCAnQW5kYWxlIE1vbm8nLCAnVWJ1bnR1IE1vbm8nLCBtb25vc3BhY2UiLGZvbnRTaXplOiIxZW0iLHRleHRBbGlnbjoibGVmdCIsd2hpdGVTcGFjZToicHJlIix3b3JkU3BhY2luZzoibm9ybWFsIix3b3JkQnJlYWs6Im5vcm1hbCIsd29yZFdyYXA6Im5vcm1hbCIsbGluZUhlaWdodDoiMS41IixNb3pUYWJTaXplOiI0IixPVGFiU2l6ZToiNCIsdGFiU2l6ZToiNCIsV2Via2l0SHlwaGVuczoibm9uZSIsTW96SHlwaGVuczoibm9uZSIsbXNIeXBoZW5zOiJub25lIixoeXBoZW5zOiJub25lIixwYWRkaW5nOiIxZW0iLG1hcmdpbjoiLjVlbSAwIixvdmVyZmxvdzoiYXV0byJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6LW1vei1zZWxlY3Rpb24nOnt0ZXh0U2hhZG93OiJub25lIixiYWNrZ3JvdW5kOiIjYjNkNGZjIn0sJ3ByZVtjbGFzcyo9Imxhbmd1YWdlLSJdIDo6LW1vei1zZWxlY3Rpb24nOnt0ZXh0U2hhZG93OiJub25lIixiYWNrZ3JvdW5kOiIjYjNkNGZjIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6LW1vei1zZWxlY3Rpb24nOnt0ZXh0U2hhZG93OiJub25lIixiYWNrZ3JvdW5kOiIjYjNkNGZjIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSA6Oi1tb3otc2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiI2IzZDRmYyJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6c2VsZWN0aW9uJzp7dGV4dFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZDoiI2IzZDRmYyJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSA6OnNlbGVjdGlvbic6e3RleHRTaGFkb3c6Im5vbmUiLGJhY2tncm91bmQ6IiNiM2Q0ZmMifSwnY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdOjpzZWxlY3Rpb24nOnt0ZXh0U2hhZG93OiJub25lIixiYWNrZ3JvdW5kOiIjYjNkNGZjIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSA6OnNlbGVjdGlvbic6e3RleHRTaGFkb3c6Im5vbmUiLGJhY2tncm91bmQ6IiNiM2Q0ZmMifSwnOm5vdChwcmUpID4gY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdJzp7YmFja2dyb3VuZDoiI2Y1ZjJmMCIscGFkZGluZzoiLjFlbSIsYm9yZGVyUmFkaXVzOiIuM2VtIix3aGl0ZVNwYWNlOiJub3JtYWwifSxjb21tZW50Ontjb2xvcjoic2xhdGVncmF5In0scHJvbG9nOntjb2xvcjoic2xhdGVncmF5In0sZG9jdHlwZTp7Y29sb3I6InNsYXRlZ3JheSJ9LGNkYXRhOntjb2xvcjoic2xhdGVncmF5In0scHVuY3R1YXRpb246e2NvbG9yOiIjOTk5In0sbmFtZXNwYWNlOntPcGFjaXR5OiIuNyJ9LHByb3BlcnR5Ontjb2xvcjoiIzkwNSJ9LHRhZzp7Y29sb3I6IiM5MDUifSxib29sZWFuOntjb2xvcjoiIzkwNSJ9LG51bWJlcjp7Y29sb3I6IiM5MDUifSxjb25zdGFudDp7Y29sb3I6IiM5MDUifSxzeW1ib2w6e2NvbG9yOiIjOTA1In0sZGVsZXRlZDp7Y29sb3I6IiM5MDUifSxzZWxlY3Rvcjp7Y29sb3I6IiM2OTAifSwiYXR0ci1uYW1lIjp7Y29sb3I6IiM2OTAifSxzdHJpbmc6e2NvbG9yOiIjNjkwIn0sY2hhcjp7Y29sb3I6IiM2OTAifSxidWlsdGluOntjb2xvcjoiIzY5MCJ9LGluc2VydGVkOntjb2xvcjoiIzY5MCJ9LG9wZXJhdG9yOntjb2xvcjoiIzlhNmUzYSIsYmFja2dyb3VuZDoiaHNsYSgwLCAwJSwgMTAwJSwgLjUpIn0sZW50aXR5Ontjb2xvcjoiIzlhNmUzYSIsYmFja2dyb3VuZDoiaHNsYSgwLCAwJSwgMTAwJSwgLjUpIixjdXJzb3I6ImhlbHAifSx1cmw6e2NvbG9yOiIjOWE2ZTNhIixiYWNrZ3JvdW5kOiJoc2xhKDAsIDAlLCAxMDAlLCAuNSkifSwiLmxhbmd1YWdlLWNzcyAudG9rZW4uc3RyaW5nIjp7Y29sb3I6IiM5YTZlM2EiLGJhY2tncm91bmQ6ImhzbGEoMCwgMCUsIDEwMCUsIC41KSJ9LCIuc3R5bGUgLnRva2VuLnN0cmluZyI6e2NvbG9yOiIjOWE2ZTNhIixiYWNrZ3JvdW5kOiJoc2xhKDAsIDAlLCAxMDAlLCAuNSkifSxhdHJ1bGU6e2NvbG9yOiIjMDdhIn0sImF0dHItdmFsdWUiOntjb2xvcjoiIzA3YSJ9LGtleXdvcmQ6e2NvbG9yOiIjMDdhIn0sZnVuY3Rpb246e2NvbG9yOiIjREQ0QTY4In0sImNsYXNzLW5hbWUiOntjb2xvcjoiI0RENEE2OCJ9LHJlZ2V4Ontjb2xvcjoiI2U5MCJ9LGltcG9ydGFudDp7Y29sb3I6IiNlOTAiLGZvbnRXZWlnaHQ6ImJvbGQifSx2YXJpYWJsZTp7Y29sb3I6IiNlOTAifSxib2xkOntmb250V2VpZ2h0OiJib2xkIn0saXRhbGljOntmb250U3R5bGU6Iml0YWxpYyJ9fTt2YXIgWmwsQ1M7ZnVuY3Rpb24gYjQoKXtpZihDUylyZXR1cm4gWmw7Q1M9MSxabD1lLGUuZGlzcGxheU5hbWU9ImFiYXAiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmFiYXA9e2NvbW1lbnQ6L15cKi4qL20sc3RyaW5nOi8oYHwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLywic3RyaW5nLXRlbXBsYXRlIjp7cGF0dGVybjovKFt8fV0pKD86XFwufFteXFx8e1xyXG5dKSooPz1bfHtdKS8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0sImVvbC1jb21tZW50Ijp7cGF0dGVybjovKF58XHMpIi4qL20sbG9va2JlaGluZDohMCxhbGlhczoiY29tbWVudCJ9LGtleXdvcmQ6e3BhdHRlcm46Lyhcc3xcLnxeKSg/OlNDSUVOVElGSUNfV0lUSF9MRUFESU5HX1pFUk98U0NBTEVfUFJFU0VSVklOR19TQ0lFTlRJRklDfFJNQ19DT01NVU5JQ0FUSU9OX0ZBSUxVUkV8RU5ELUVOSEFOQ0VNRU5ULVNFQ1RJT058TVVMVElQTFktQ09SUkVTUE9ORElOR3xTVUJUUkFDVC1DT1JSRVNQT05ESU5HfFZFUklGSUNBVElPTi1NRVNTQUdFfERJVklERS1DT1JSRVNQT05ESU5HfEVOSEFOQ0VNRU5ULVNFQ1RJT058Q1VSUkVOQ1lfQ09OVkVSU0lPTnxSTUNfU1lTVEVNX0ZBSUxVUkV8U1RBUlQtT0YtU0VMRUNUSU9OfE1PVkUtQ09SUkVTUE9ORElOR3xSTUNfSU5WQUxJRF9TVEFUVVN8Q1VTVE9NRVItRlVOQ1RJT058RU5ELU9GLURFRklOSVRJT058RU5IQU5DRU1FTlQtUE9JTlR8U1lTVEVNLUVYQ0VQVElPTlN8QURELUNPUlJFU1BPTkRJTkd8U0NBTEVfUFJFU0VSVklOR3xTRUxFQ1RJT04tU0NSRUVOfENVUlNPUi1TRUxFQ1RJT058RU5ELU9GLVNFTEVDVElPTnxMT0FELU9GLVBST0dSQU18U0NST0xMLUJPVU5EQVJZfFNFTEVDVElPTi1UQUJMRXxFWENFUFRJT04tVEFCTEV8SU1QTEVNRU5UQVRJT05TfFBBUkFNRVRFUi1UQUJMRXxSSUdIVC1KVVNUSUZJRUR8VU5JVF9DT05WRVJTSU9OfEFVVEhPUklUWS1DSEVDS3xMSVNULVBST0NFU1NJTkd8U0lHTl9BU19QT1NURklYfENPTF9CQUNLR1JPVU5EfElNUExFTUVOVEFUSU9OfElOVEVSRkFDRS1QT09MfFRSQU5TRk9STUFUSU9OfElERU5USUZJQ0FUSU9OfEVOREVOSEFOQ0VNRU5UfExJTkUtU0VMRUNUSU9OfElOSVRJQUxJWkFUSU9OfExFRlQtSlVTVElGSUVEfFNFTEVDVC1PUFRJT05TfFNFTEVDVElPTi1TRVRTfENPTU1VTklDQVRJT058Q09SUkVTUE9ORElOR3xERUNJTUFMX1NISUZUfFBSSU5ULUNPTlRST0x8VkFMVUUtUkVRVUVTVHxDSEFJTi1SRVFVRVNUfEZVTkNUSU9OLVBPT0x8RklFTEQtU1lNQk9MU3xGVU5DVElPTkFMSVRZfElOVkVSVEVELURBVEV8U0VMRUNUSU9OLVNFVHxDTEFTUy1NRVRIT0RTfE9VVFBVVC1MRU5HVEh8Q0xBU1MtQ09ESU5HfENPTF9ORUdBVElWRXxFUlJPUk1FU1NBR0V8RklFTEQtR1JPVVBTfEhFTFAtUkVRVUVTVHxOTy1FWFRFTlNJT058Tk8tVE9QT0ZQQUdFfFJFREVGSU5JVElPTnxESVNQTEFZLU1PREV8RU5ESU5URVJGQUNFfEVYSVQtQ09NTUFORHxGSUVMRC1TWU1CT0x8Tk8tU0NST0xMSU5HfFNIT1JURFVNUC1JRHxBQ0NFU1NQT0xJQ1l8Q0xBU1MtRVZFTlRTfENPTF9QT1NJVElWRXxERUNMQVJBVElPTlN8RU5IQU5DRU1FTlRTfEZJTFRFUi1UQUJMRXxTV0lUQ0hTVEFURVN8U1lOVEFYLUNIRUNLfFRSQU5TUE9SVElOR3xBU1lOQ0hST05PVVN8U1lOVEFYLVRSQUNFfFRPS0VOSVpBVElPTnxVU0VSLUNPTU1BTkR8V0lUSC1IRUFESU5HfEFCQVAtU09VUkNFfEJSRUFLLVBPSU5UfENIQUlOLUlOUFVUfENPTVBSRVNTSU9OfEZJWEVELVBPSU5UfE5FVy1TRUNUSU9OfE5PTi1VTklDT0RFfE9DQ1VSUkVOQ0VTfFJFU1BPTlNJQkxFfFNZU1RFTS1DQUxMfFRSQUNFLVRBQkxFfEFCQlJFVklBVEVEfENIQVItVE8tSEVYfEVORC1PRi1GSUxFfEVOREZVTkNUSU9OfEVOVklST05NRU5UfEFTU09DSUFUSU9OfENPTF9IRUFESU5HfEVESVRPUi1DQUxMfEVORC1PRi1QQUdFfEVOR0lORUVSSU5HfElNUExFTUVOVEVEfElOVEVOU0lGSUVEfFJBRElPQlVUVE9OfFNZU1RFTS1FWElUfFRPUC1PRi1QQUdFfFRSQU5TQUNUSU9OfEFQUExJQ0FUSU9OfENPTkNBVEVOQVRFfERFU1RJTkFUSU9OfEVOSEFOQ0VNRU5UfElNTUVESUFURUxZfE5PLUdST1VQSU5HfFBSRUNPTVBJTEVEfFJFUExBQ0VNRU5UfFRJVExFLUxJTkVTfEFDVElWQVRJT058QllURS1PUkRFUnxDTEFTUy1QT09MfENPTk5FQ1RJT058Q09OVkVSU0lPTnxERUZJTklUSU9OfERFUEFSVE1FTlR8RVhQSVJBVElPTnxJTkhFUklUSU5HfE1FU1NBR0UtSUR8Tk8tSEVBRElOR3xQRVJGT1JNSU5HfFFVRVVFLU9OTFl8UklHSFRTUEFDRXxTQ0lFTlRJRklDfFNUQVRVU0lORk98U1RSVUNUVVJFU3xTWU5DUE9JTlRTfFdJVEgtVElUTEV8QVRUUklCVVRFU3xCT1VOREFSSUVTfENMQVNTLURBVEF8Q09MX05PUk1BTHxERFwvTU1cL1lZWVl8REVTQ0VORElOR3xJTlRFUkZBQ0VTfExJTkUtQ09VTlR8TU1cL0REXC9ZWVlZfE5PTi1VTklRVUV8UFJFU0VSVklOR3xTRUxFQ1RJT05TfFNUQVRFTUVOVFN8U1VCUk9VVElORXxUUlVOQ0FUSU9OfFRZUEUtUE9PTFN8QVJJVEhNRVRJQ3xCQUNLR1JPVU5EfEVORFBST1ZJREV8RVhDRVBUSU9OU3xJREVOVElGSUVSfElOREVYLUxJTkV8T0JMSUdBVE9SWXxQQVJBTUVURVJTfFBFUkNFTlRBR0V8UFVTSEJVVFRPTnxSRVNPTFVUSU9OfENPTVBPTkVOVFN8REVBTExPQ0FURXxESVNDT05ORUNUfERVUExJQ0FURVN8RklSU1QtTElORXxIRUFELUxJTkVTfE5PLURJU1BMQVl8T0NDVVJSRU5DRXxSRVNQRUNUSU5HfFJFVFVSTkNPREV8U1VCTUFUQ0hFU3xUUkFDRS1GSUxFfEFTQ0VORElOR3xCWVBBU1NJTkd8RU5ETU9EVUxFfEVYQ0VQVElPTnxFWENMVURJTkd8RVhQT1JUSU5HfElOQ1JFTUVOVHxNQVRDSENPREV8UEFSQU1FVEVSfFBBUlRJQUxMWXxQUkVGRVJSRUR8UkVGRVJFTkNFfFJFUExBQ0lOR3xSRVRVUk5JTkd8U0VMRUNUSU9OfFNFUEFSQVRFRHxTUEVDSUZJRUR8U1RBVEVNRU5UfFRJTUVTVEFNUHxUWVBFLVBPT0x8QUNDRVBUSU5HfEFQUEVOREFHRXxBU1NJR05JTkd8Q09MX0dST1VQfENPTVBBUklOR3xDT05TVEFOVFN8REFOR0VST1VTfElNUE9SVElOR3xJTlNUQU5DRVN8TEVGVFNQQUNFfExPRy1QT0lOVHxRVUlDS0lORk98UkVBRC1PTkxZfFNDUk9MTElOR3xTUUxTQ1JJUFR8U1RFUC1MT09QfFRPUC1MSU5FU3xUUkFOU0xBVEV8QVBQRU5ESU5HfEFVVEhPUklUWXxDSEFSQUNURVJ8Q09NUE9ORU5UfENPTkRJVElPTnxESVJFQ1RPUll8RFVQTElDQVRFfE1FU1NBR0lOR3xSRUNFSVZJTkd8U1VCU0NSRUVOfEFDQ09SRElOR3xDT0xfVE9UQUx8RU5ELUxJTkVTfEVORE1FVEhPRHxFTkRTRUxFQ1R8RVhQQU5ESU5HfEVYVEVOU0lPTnxJTkNMVURJTkd8SU5GT1RZUEVTfElOVEVSRkFDRXxJTlRFUlZBTFN8TElORS1TSVpFfFBGLVNUQVRVU3xQUk9DRURVUkV8UFJPVEVDVEVEfFJFUVVFU1RFRHxSRVNVTUFCTEV8UklHSFRQTFVTfFNBUC1TUE9PTHxTRUNPTkRBUll8U1RSVUNUVVJFfFNVQlNUUklOR3xUQUJMRVZJRVd8TlVNT0ZDSEFSfEFESkFDRU5UfEFOQUxZU0lTfEFTU0lHTkVEfEJBQ0tXQVJEfENIQU5ORUxTfENIRUNLQk9YfENPTlRJTlVFfENSSVRJQ0FMfERBVEFJTkZPfEREXC9NTVwvWVl8RFVSQVRJT058RU5DT0RJTkd8RU5EQ0xBU1N8RlVOQ1RJT058TEVGVFBMVVN8TElORUZFRUR8TU1cL0REXC9ZWXxPVkVSRkxPV3xSRUNFSVZFRHxTS0lQUElOR3xTT1JUQUJMRXxTVEFOREFSRHxTVUJUUkFDVHxTVVBQUkVTU3xUQUJTVFJJUHxUSVRMRUJBUnxUUlVOQ0FURXxVTkFTU0lHTnxXSEVORVZFUnxBTkFMWVpFUnxDT0FMRVNDRXxDT01NRU5UU3xDT05ERU5TRXxERUNJTUFMU3xERUZFUlJFRHxFTkRXSElMRXxFWFBMSUNJVHxLRVlXT1JEU3xNRVNTQUdFU3xQT1NJVElPTnxQUklPUklUWXxSRUNFSVZFUnxSRU5BTUlOR3xUSU1FWk9ORXxUUkFJTElOR3xBTExPQ0FURXxDRU5URVJFRHxDSVJDVUxBUnxDT05UUk9MU3xDVVJSRU5DWXxERUxFVElOR3xERVNDUklCRXxESVNUQU5DRXxFTkRDQVRDSHxFWFBPTkVOVHxFWFRFTkRFRHxHRU5FUkFURXxJR05PUklOR3xJTkNMVURFU3xJTlRFUk5BTHxNQUpPUi1JRHxNT0RJRklFUnxORVctTElORXxPUFRJT05BTHxQUk9QRVJUWXxST0xMQkFDS3xTVEFSVElOR3xTVVBQTElFRHxBQlNUUkFDVHxDSEFOR0lOR3xDT05URVhUU3xDUkVBVElOR3xDVVNUT01FUnxEQVRBQkFTRXxEQVlMSUdIVHxERUZJTklOR3xESVNUSU5DVHxESVZJU0lPTnxFTkFCTElOR3xFTkRDSEFJTnxFU0NBUElOR3xIQVJNTEVTU3xJTVBMSUNJVHxJTkFDVElWRXxMQU5HVUFHRXxNSU5PUi1JRHxNVUxUSVBMWXxORVctUEFHRXxOTy1USVRMRXxQT1NfSElHSHxTRVBBUkFURXxURVhUUE9PTHxUUkFOU0ZFUnxTRUxFQ1RPUnxEQk1BWExFTnxJVEVSQVRPUnxBUkNISVZFfEJJVC1YT1J8QllURS1DT3xDT0xMRUNUfENPTU1FTlR8Q1VSUkVOVHxERUZBVUxUfERJU1BMQVl8RU5ERk9STXxFWFRSQUNUfExFQURJTkd8TElTVEJPWHxMT0NBVE9SfE1FTUJFUlN8TUVUSE9EU3xORVNUSU5HfFBPU19MT1d8UFJPQ0VTU3xQUk9WSURFfFJBSVNJTkd8UkVTRVJWRXxTRUNPTkRTfFNVTU1BUll8VklTSUJMRXxCRVRXRUVOfEJJVC1BTkR8QllURS1DU3xDTEVBTlVQfENPTVBVVEV8Q09OVFJPTHxDT05WRVJUfERBVEFTRVR8RU5EQ0FTRXxGT1JXQVJEfEhFQURFUlN8SE9UU1BPVHxJTkNMVURFfElOVkVSU0V8S0VFUElOR3xOTy1aRVJPfE9CSkVDVFN8T1ZFUkxBWXxQQURESU5HfFBBVFRFUk58UFJPR1JBTXxSRUZSRVNIfFNFQ1RJT058U1VNTUlOR3xURVNUSU5HfFZFUlNJT058V0lORE9XU3xXSVRIT1VUfEJJVC1OT1R8QllURS1DQXxCWVRFLU5BfENBU1RJTkd8Q09OVEVYVHxDT1VOVFJZfERZTkFNSUN8RU5BQkxFRHxFTkRMT09QfEVYRUNVVEV8RlJJRU5EU3xIQU5ETEVSfEhFQURJTkd8SU5JVElBTHxcKi1JTlBVVHxMT0dGSUxFfE1BWElNVU18TUlOSU1VTXxOTy1HQVBTfE5PLVNJR058UFJBR01BU3xQUklNQVJZfFBSSVZBVEV8UkVEVUNFRHxSRVBMQUNFfFJFUVVFU1R8UkVTVUxUU3xVTklDT0RFfFdBUk5JTkd8QUxJQVNFU3xCWVRFLUNOfEJZVEUtTlN8Q0FMTElOR3xDT0xfS0VZfENPTFVNTlN8Q09OTkVDVHxFTkRFWEVDfEVOVFJJRVN8RVhDTFVERXxGSUxURVJTfEZVUlRIRVJ8SEVMUC1JRHxMT0dJQ0FMfE1BUFBJTkd8TUVTU0FHRXxOQU1FVEFCfE9QVElPTlN8UEFDS0FHRXxQRVJGT1JNfFJFQ0VJVkV8U1RBVElDU3xWQVJZSU5HfEJJTkRJTkd8Q0hBUkxFTnxHUkVBVEVSfFhTVFJMRU58QUNDRVBUfEFQUEVORHxERVRBSUx8RUxTRUlGfEVORElOR3xFTkRUUll8Rk9STUFUfEZSQU1FU3xHSVZJTkd8SEFTSEVEfEhFQURFUnxJTVBPUlR8SU5TRVJUfE1BUkdJTnxNT0RVTEV8TkFUSVZFfE9CSkVDVHxPRkZTRVR8UkVNT1RFfFJFU1VNRXxTQVZJTkd8U0lNUExFfFNVQk1JVHxUQUJCRUR8VE9LRU5TfFVOSVFVRXxVTlBBQ0t8VVBEQVRFfFdJTkRPV3xZRUxMT1d8QUNUVUFMfEFTUEVDVHxDRU5URVJ8Q1VSU09SfERFTEVURXxESUFMT0d8RElWSURFfERVUklOR3xFUlJPUlN8RVZFTlRTfEVYVEVORHxGSUxURVJ8SEFORExFfEhBVklOR3xJR05PUkV8TElUVExFfE1FTU9SWXxOTy1HQVB8T0NDVVJTfE9QVElPTnxQRVJTT058UExBQ0VTfFBVQkxJQ3xSRURVQ0V8UkVQT1JUfFJFU1VMVHxTSU5HTEV8U09SVEVEfFNXSVRDSHxTWU5UQVh8VEFSR0VUfFZBTFVFU3xXUklURVJ8QVNTRVJUfEJMT0NLU3xCT1VORFN8QlVGRkVSfENIQU5HRXxDT0xVTU58Q09NTUlUfENPTkNBVHxDT1BJRVN8Q1JFQVRFfERETU1ZWXxERUZJTkV8RU5ESUFOfEVTQ0FQRXxFWFBBTkR8S0VSTkVMfExBWU9VVHxMRUdBQ1l8TEVWRUxTfE1NRERZWXxOVU1CRVJ8T1VUUFVUfFJBTkdFU3xSRUFERVJ8UkVUVVJOfFNDUkVFTnxTRUFSQ0h8U0VMRUNUfFNIQVJFRHxTT1VSQ0V8U1RBQkxFfFNUQVRJQ3xTVUJLRVl8U1VGRklYfFRBQkxFU3xVTldJTkR8WVlNTUREfEFTU0lHTnxCQUNLVVB8QkVGT1JFfEJJTkFSWXxCSVQtT1J8QkxBTktTfENMSUVOVHxDT0RJTkd8Q09NTU9OfERFTUFORHxEWU5QUk98RVhDRVBUfEVYSVNUU3xFWFBPUlR8RklFTERTfEdMT0JBTHxHUk9VUFN8TEVOR1RIfExPQ0FMRXxNRURJVU18TUVUSE9EfE1PRElGWXxORVNURUR8T1RIRVJTfFJFSkVDVHxTQ1JPTEx8U1VQUExZfFNZTUJPTHxFTkRGT1J8U1RSTEVOfEFMSUdOfEJFR0lOfEJPVU5EfEVOREFUfEVOVFJZfEVWRU5UfEZJTkFMfEZMVVNIfEdSQU5UfElOTkVSfFNIT1JUfFVTSU5HfFdSSVRFfEFGVEVSfEJMQUNLfEJMT0NLfENMT0NLfENPTE9SfENPVU5UfERVTU1ZfEVNUFRZfEVORERPfEVORE9OfEdSRUVOfElOREVYfElOT1VUfExFQVZFfExFVkVMfExJTkVTfE1PRElGfE9SREVSfE9VVEVSfFJBTkdFfFJFU0VUfFJFVFJZfFJJR0hUfFNNQVJUfFNQTElUfFNUWUxFfFRBQkxFfFRIUk9XfFVOREVSfFVOVElMfFVQUEVSfFVURi04fFdIRVJFfEFMSUFTfEJMQU5LfENMRUFSfENMT1NFfEVYQUNUfEZFVENIfEZJUlNUfEZPVU5EfEdST1VQfExMQU5HfExPQ0FMfE9USEVSfFJFR0VYfFNQT09MfFRJVExFfFRZUEVTfFZBTElEfFdISUxFfEFMUEhBfEJPWEVEfENBVENIfENIQUlOfENIRUNLfENMQVNTfENPVkVSfEVORElGfEVRVUlWfEZJRUxEfEZMT09SfEZSQU1FfElOUFVUfExPV0VSfE1BVENIfE5PREVTfFBBR0VTfFBSSU5UfFJBSVNFfFJPVU5EfFNISUZUfFNQQUNFfFNQT1RTfFNUQU1QfFNUQVRFfFRBU0tTfFRJTUVTfFRSTUFDfFVMSU5FfFVOSU9OfFZBTFVFfFdJRFRIfEVRVUFMfExPRzEwfFRSVU5DfEJMT0J8Q0FTRXxDRUlMfENMT0J8Q09ORHxFWElUfEZJTEV8R0FQU3xIT0xEfElOQ0x8SU5UT3xLRUVQfEtFWVN8TEFTVHxMSU5FfExPTkd8TFBBRHxNQUlMfE1PREV8T1BFTnxQSU5LfFJFQUR8Uk9XU3xURVNUfFRIRU58WkVST3xBUkVBfEJBQ0t8QkFESXxCWVRFfENBU1R8RURJVHxFWEVDfEZBSUx8RklORHxGS0VRfEZPTlR8RlJFRXxHS0VRfEhJREV8SU5JVHxJVE5PfExBVEV8TE9PUHxNQUlOfE1BUkt8TU9WRXxORVhUfE5VTEx8UklTS3xST0xFfFVOSVR8V0FJVHxaT05FfEJBU0V8Q0FMTHxDT0RFfERBVEF8REFURXxGS0dFfEdLR0V8SElHSHxLSU5EfExFRlR8TElTVHxNQVNLfE1FU0h8TkFNRXxOT0RFfFBBQ0t8UEFHRXxQT09MfFNFTkR8U0lHTnxTSVpFfFNPTUV8U1RPUHxUQVNLfFRFWFR8VElNRXxVU0VSfFZBUll8V0lUSHxXT1JEfEJMVUV8Q09OVnxDT1BZfERFRVB8RUxTRXxGT1JNfEZST018SElOVHxJQ09OfEpPSU58TElLRXxMT0FEfE9OTFl8UEFSVHxTQ0FOfFNLSVB8U09SVHxUWVBFfFVOSVh8VklFV3xXSEVOfFdPUkt8QUNPU3xBU0lOfEFUQU58Q09TSHxFQUNIfEZSQUN8TEVTU3xSVFRJfFNJTkh8U1FSVHxUQU5IfEFWR3xCSVR8RElWfElTT3xMRVR8T1VUfFBBRHxTUUx8QUxMfENJX3xDUEl8RU5EfExPQnxMUEl8TUFYfE1JTnxORVd8T0xFfFJVTnxTRVR8XD9UT3xZRVN8QUJTfEFERHxBTkR8QklHfEZPUnxIREJ8Sk9CfExPV3xOT1R8U0FQfFRSWXxWSUF8WE1MfEFOWXxHRVR8SURTfEtFWXxNT0R8T0ZGfFBVVHxSQVd8UkVEfFJFRnxTVU18VEFCfFhTRHxDTlR8Q09TfEVYUHxMT0d8U0lOfFRBTnxYT1J8QVR8Q098Q1B8RE98R1R8SUR8SUZ8TlN8T1J8QlR8Q0F8Q1N8R0V8TkF8TkJ8RVF8SU58TFR8TkV8Tk98T0Z8T058UEZ8VE98QVN8Qll8Q058SVN8TEV8TlB8VVB8RXxJfE18T3xafEN8WClcYi9pLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjovXGJcZCtcYi8sb3BlcmF0b3I6e3BhdHRlcm46LyhccykoPzpcKlwqP3w8Wz0+XT98Pj0/fFw/PXxbLStcLz1dKSg/PVxzKS8sbG9va2JlaGluZDohMH0sInN0cmluZy1vcGVyYXRvciI6e3BhdHRlcm46LyhccykmJj8oPz1ccykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSwidG9rZW4tb3BlcmF0b3IiOlt7cGF0dGVybjovKFx3KSg/Oi0+P3w9Pnxbfnx7fV0pKD89XHcpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHtwYXR0ZXJuOi9bfHt9XS8sYWxpYXM6InB1bmN0dWF0aW9uIn1dLHB1bmN0dWF0aW9uOi9bLC46KCldL319cmV0dXJuIFpsfXZhciBRbCxPUztmdW5jdGlvbiB5NCgpe2lmKE9TKXJldHVybiBRbDtPUz0xLFFsPWUsZS5kaXNwbGF5TmFtZT0iYWJuZiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPSIoPzpBTFBIQXxCSVR8Q0hBUnxDUnxDUkxGfENUTHxESUdJVHxEUVVPVEV8SEVYRElHfEhUQUJ8TEZ8TFdTUHxPQ1RFVHxTUHxWQ0hBUnxXU1ApIjtuLmxhbmd1YWdlcy5hYm5mPXtjb21tZW50Oi87LiovLHN0cmluZzp7cGF0dGVybjovKD86JVtpc10pPyJbXiJcblxyXSoiLyxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXiVbaXNdL319LHJhbmdlOntwYXR0ZXJuOi8lKD86YlswMV0rLVswMV0rfGRcZCstXGQrfHhbQS1GXGRdKy1bQS1GXGRdKykvaSxhbGlhczoibnVtYmVyIn0sdGVybWluYWw6e3BhdHRlcm46LyUoPzpiWzAxXSsoPzpcLlswMV0rKSp8ZFxkKyg/OlwuXGQrKSp8eFtBLUZcZF0rKD86XC5bQS1GXGRdKykqKS9pLGFsaWFzOiJudW1iZXIifSxyZXBldGl0aW9uOntwYXR0ZXJuOi8oXnxbXlx3LV0pKD86XGQqXCpcZCp8XGQrKS8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxkZWZpbml0aW9uOntwYXR0ZXJuOi8oXlsgXHRdKikoPzpbYS16XVtcdy1dKnw8W148PlxyXG5dKj4pKD89XHMqPSkvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIixpbnNpZGU6e3B1bmN0dWF0aW9uOi88fD4vfX0sImNvcmUtcnVsZSI6e3BhdHRlcm46UmVnRXhwKCIoPzooXnxbXjxcXHctXSkiK3IrInw8IityKyI+KSg/IVtcXHctXSkiLCJpIiksbG9va2JlaGluZDohMCxhbGlhczpbInJ1bGUiLCJjb25zdGFudCJdLGluc2lkZTp7cHVuY3R1YXRpb246Lzx8Pi99fSxydWxlOntwYXR0ZXJuOi8oXnxbXjxcdy1dKVthLXpdW1x3LV0qfDxbXjw+XHJcbl0qPi9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovPHw+L319LG9wZXJhdG9yOi89XC8/fFwvLyxwdW5jdHVhdGlvbjovWygpXFtcXV0vfX0pKHQpfXJldHVybiBRbH12YXIgSmwsTFM7ZnVuY3Rpb24gdjQoKXtpZihMUylyZXR1cm4gSmw7TFM9MSxKbD1lLGUuZGlzcGxheU5hbWU9ImFjdGlvbnNjcmlwdCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuYWN0aW9uc2NyaXB0PXQubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YXNjcmlwdCIse2tleXdvcmQ6L1xiKD86YXN8YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxkZWZhdWx0fGRlbGV0ZXxkb3xkeW5hbWljfGVhY2h8ZWxzZXxleHRlbmRzfGZpbmFsfGZpbmFsbHl8Zm9yfGZ1bmN0aW9ufGdldHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbmNsdWRlfGluc3RhbmNlb2Z8aW50ZXJmYWNlfGludGVybmFsfGlzfG5hbWVzcGFjZXxuYXRpdmV8bmV3fG51bGx8b3ZlcnJpZGV8cGFja2FnZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmV0dXJufHNldHxzdGF0aWN8c3VwZXJ8c3dpdGNofHRoaXN8dGhyb3d8dHJ5fHR5cGVvZnx1c2V8dmFyfHZvaWR8d2hpbGV8d2l0aClcYi8sb3BlcmF0b3I6L1wrXCt8LS18KD86WytcLSpcLyVeXXwmJj98XHxcfD98PDw/fD4+Pz4/fFshPV09Pyk9P3xbfj9AXS99KSx0Lmxhbmd1YWdlcy5hY3Rpb25zY3JpcHRbImNsYXNzLW5hbWUiXS5hbGlhcz0iZnVuY3Rpb24iLGRlbGV0ZSB0Lmxhbmd1YWdlcy5hY3Rpb25zY3JpcHQucGFyYW1ldGVyLGRlbGV0ZSB0Lmxhbmd1YWdlcy5hY3Rpb25zY3JpcHRbImxpdGVyYWwtcHJvcGVydHkiXSx0Lmxhbmd1YWdlcy5tYXJrdXAmJnQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiYWN0aW9uc2NyaXB0Iiwic3RyaW5nIix7eG1sOntwYXR0ZXJuOi8oXnxbXi5dKTxcLz9cdysoPzpccytbXlxzPlwvPV0rPSgifCcpKD86XFxbXHNcU118KD8hXDIpW15cXF0pKlwyKSpccypcLz8+Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp0Lmxhbmd1YWdlcy5tYXJrdXB9fSl9cmV0dXJuIEpsfXZhciBldSxEUztmdW5jdGlvbiBFNCgpe2lmKERTKXJldHVybiBldTtEUz0xLGV1PWUsZS5kaXNwbGF5TmFtZT0iYWRhIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5hZGE9e2NvbW1lbnQ6Ly0tLiovLHN0cmluZzovIig/OiIifFteIlxyXGZcbl0pKiIvLG51bWJlcjpbe3BhdHRlcm46L1xiXGQoPzpfP1xkKSojW1xkQS1GXSg/Ol8/W1xkQS1GXSkqKD86XC5bXGRBLUZdKD86Xz9bXGRBLUZdKSopPyMoPzpFWystXT9cZCg/Ol8/XGQpKik/L2l9LHtwYXR0ZXJuOi9cYlxkKD86Xz9cZCkqKD86XC5cZCg/Ol8/XGQpKik/KD86RVsrLV0/XGQoPzpfP1xkKSopP1xiL2l9XSwiYXR0ci1uYW1lIjovXGInXHcrLyxrZXl3b3JkOi9cYig/OmFib3J0fGFic3xhYnN0cmFjdHxhY2NlcHR8YWNjZXNzfGFsaWFzZWR8YWxsfGFuZHxhcnJheXxhdHxiZWdpbnxib2R5fGNhc2V8Y29uc3RhbnR8ZGVjbGFyZXxkZWxheXxkZWx0YXxkaWdpdHN8ZG98ZWxzZXxlbHNpZnxlbmR8ZW50cnl8ZXhjZXB0aW9ufGV4aXR8Zm9yfGZ1bmN0aW9ufGdlbmVyaWN8Z290b3xpZnxpbnxpbnRlcmZhY2V8aXN8bGltaXRlZHxsb29wfG1vZHxuZXd8bm90fG51bGx8b2Z8b3RoZXJzfG91dHxvdmVycmlkaW5nfHBhY2thZ2V8cHJhZ21hfHByaXZhdGV8cHJvY2VkdXJlfHByb3RlY3RlZHxyYWlzZXxyYW5nZXxyZWNvcmR8cmVtfHJlbmFtZXN8cmVxdWV1ZXxyZXR1cm58cmV2ZXJzZXxzZWxlY3R8c2VwYXJhdGV8c29tZXxzdWJ0eXBlfHN5bmNocm9uaXplZHx0YWdnZWR8dGFza3x0ZXJtaW5hdGV8dGhlbnx0eXBlfHVudGlsfHVzZXx3aGVufHdoaWxlfHdpdGh8eG9yKVxiL2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL2ksb3BlcmF0b3I6LzxbPT5dP3w+PT98PT4/fDo9fFwvPT98XCpcKj98WyYrLV0vLHB1bmN0dWF0aW9uOi9cLlwuP3xbLDsoKTpdLyxjaGFyOi8nLicvLHZhcmlhYmxlOi9cYlthLXpdKD86XHcpKlxiL2l9fXJldHVybiBldX12YXIgdHUsTVM7ZnVuY3Rpb24gUzQoKXtpZihNUylyZXR1cm4gdHU7TVM9MSx0dT1lLGUuZGlzcGxheU5hbWU9ImFnZGEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5hZ2RhPXtjb21tZW50Oi9cey1bXHNcU10qPyg/Oi1cfXwkKXwtLS4qLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXCg/OlxyXG58W1xzXFNdKXxbXlxcXHJcbiJdKSoiLyxncmVlZHk6ITB9LHB1bmN0dWF0aW9uOi9bKCl7feKmg+KmhC47QF0vLCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKCg/OmRhdGF8cmVjb3JkKSArKVxTKy8sbG9va2JlaGluZDohMH0sZnVuY3Rpb246e3BhdHRlcm46LyheWyBcdF0qKSg/IVxzKVteOlxyXG5dKyg/PTopL20sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6e3BhdHRlcm46LyheXHMqfFxzKSg/Ols9fDriiIDihpLOu1xcP19dfC0+KSg/PVxzKS8sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzpTZXR8YWJzdHJhY3R8Y29uc3RydWN0b3J8ZGF0YXxldGEtZXF1YWxpdHl8ZmllbGR8Zm9yYWxsfGhpZGluZ3xpbXBvcnR8aW58aW5kdWN0aXZlfGluZml4fGluZml4bHxpbmZpeHJ8aW5zdGFuY2V8bGV0fG1hY3JvfG1vZHVsZXxtdXR1YWx8bm8tZXRhLWVxdWFsaXR5fG9wZW58b3ZlcmxhcHxwYXR0ZXJufHBvc3R1bGF0ZXxwcmltaXRpdmV8cHJpdmF0ZXxwdWJsaWN8cXVvdGV8cXVvdGVDb250ZXh0fHF1b3RlR29hbHxxdW90ZVRlcm18cmVjb3JkfHJlbmFtaW5nfHJld3JpdGV8c3ludGF4fHRhY3RpY3x1bnF1b3RlfHVucXVvdGVEZWNsfHVucXVvdGVEZWZ8dXNpbmd8dmFyaWFibGV8d2hlcmV8d2l0aClcYi99fSkodCl9cmV0dXJuIHR1fXZhciBudSxQUztmdW5jdGlvbiB3NCgpe2lmKFBTKXJldHVybiBudTtQUz0xLG51PWUsZS5kaXNwbGF5TmFtZT0iYWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmFsPXtjb21tZW50Oi9cL1wvLip8XC9cKltcc1xTXSo/XCpcLy8sc3RyaW5nOntwYXR0ZXJuOi8nKD86Jyd8W14nXHJcbl0pKicoPyEnKXwiKD86IiJ8W14iXHJcbl0pKiIoPyEiKS8sZ3JlZWR5OiEwfSxmdW5jdGlvbjp7cGF0dGVybjovKFxiKD86ZXZlbnR8cHJvY2VkdXJlfHRyaWdnZXIpXHMrfCg/Ol58W14uXSlcLlxzKilbYS16X11cdyooPz1ccypcKCkvaSxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOlsvXGIoPzphcnJheXxhc3NlcnRlcnJvcnxiZWdpbnxicmVha3xjYXNlfGRvfGRvd250b3xlbHNlfGVuZHxldmVudHxleGl0fGZvcnxmb3JlYWNofGZ1bmN0aW9ufGlmfGltcGxlbWVudHN8aW58aW5kYXRhc2V0fGludGVyZmFjZXxpbnRlcm5hbHxsb2NhbHxvZnxwcm9jZWR1cmV8cHJvZ3JhbXxwcm90ZWN0ZWR8cmVwZWF0fHJ1bm9uY2xpZW50fHNlY3VyaXR5ZmlsdGVyaW5nfHN1cHByZXNzZGlzcG9zZXx0ZW1wb3Jhcnl8dGhlbnx0b3x0cmlnZ2VyfHVudGlsfHZhcnx3aGlsZXx3aXRofHdpdGhldmVudHMpXGIvaSwvXGIoPzphY3Rpb258YWN0aW9uc3xhZGRhZnRlcnxhZGRiZWZvcmV8YWRkZmlyc3R8YWRkbGFzdHxhcmVhfGFzc2VtYmx5fGNoYXJ0cGFydHxjb2RldW5pdHxjb2x1bW58Y29udHJvbGFkZGlufGN1ZWdyb3VwfGN1c3RvbWl6ZXN8ZGF0YWl0ZW18ZGF0YXNldHxkb3RuZXR8ZWxlbWVudHN8ZW51bXxlbnVtZXh0ZW5zaW9ufGV4dGVuZHN8ZmllbGR8ZmllbGRhdHRyaWJ1dGV8ZmllbGRlbGVtZW50fGZpZWxkZ3JvdXB8ZmllbGRncm91cHN8ZmllbGRzfGZpbHRlcnxmaXhlZHxncmlkfGdyb3VwfGtleXxrZXlzfGxhYmVsfGxhYmVsc3xsYXlvdXR8bW9kaWZ5fG1vdmVhZnRlcnxtb3ZlYmVmb3JlfG1vdmVmaXJzdHxtb3ZlbGFzdHxwYWdlfHBhZ2VjdXN0b21pemF0aW9ufHBhZ2VleHRlbnNpb258cGFydHxwcm9maWxlfHF1ZXJ5fHJlcGVhdGVyfHJlcG9ydHxyZXF1ZXN0cGFnZXxzY2hlbWF8c2VwYXJhdG9yfHN5c3RlbXBhcnR8dGFibGV8dGFibGVlbGVtZW50fHRhYmxlZXh0ZW5zaW9ufHRleHRhdHRyaWJ1dGV8dGV4dGVsZW1lbnR8dHlwZXx1c2VyY29udHJvbHx2YWx1ZXx4bWxwb3J0KVxiL2ldLG51bWJlcjovXGIoPzoweFtcZGEtZl0rfCg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86ZVsrLV0/XGQrKT8pKD86RnxMTD98VSg/OkxMPyk/KT9cYi9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLHZhcmlhYmxlOi9cYig/OkN1cnIoPzpGaWVsZE5vfFBhZ2V8UmVwb3J0KXx4P1JlY3xSZXF1ZXN0T3B0aW9uc1BhZ2UpXGIvLCJjbGFzcy1uYW1lIjovXGIoPzphdXRvbWF0aW9ufGJpZ2ludGVnZXJ8YmlndGV4dHxibG9ifGJvb2xlYW58Ynl0ZXxjaGFyfGNsaWVudHR5cGV8Y29kZXxjb21wbGV0aW9udHJpZ2dlcmVycm9ybGV2ZWx8Y29ubmVjdGlvbnR5cGV8ZGF0YWJhc2V8ZGF0YWNsYXNzaWZpY2F0aW9ufGRhdGFzY29wZXxkYXRlfGRhdGVmb3JtdWxhfGRhdGV0aW1lfGRlY2ltYWx8ZGVmYXVsdGxheW91dHxkaWFsb2d8ZGljdGlvbmFyeXxkb3RuZXRhc3NlbWJseXxkb3RuZXR0eXBlZGVjbGFyYXRpb258ZHVyYXRpb258ZXJyb3JpbmZvfGVycm9ydHlwZXxleGVjdXRpb25jb250ZXh0fGV4ZWN1dGlvbm1vZGV8ZmllbGRjbGFzc3xmaWVsZHJlZnxmaWVsZHR5cGV8ZmlsZXxmaWx0ZXJwYWdlYnVpbGRlcnxndWlkfGh0dHBjbGllbnR8aHR0cGNvbnRlbnR8aHR0cGhlYWRlcnN8aHR0cHJlcXVlc3RtZXNzYWdlfGh0dHByZXNwb25zZW1lc3NhZ2V8aW5zdHJlYW18aW50ZWdlcnxqb2tlcnxqc29uYXJyYXl8anNvbm9iamVjdHxqc29udG9rZW58anNvbnZhbHVlfGtleXJlZnxsaXN0fG1vZHVsZWRlcGVuZGVuY3lpbmZvfG1vZHVsZWluZm98bm9uZXxub3RpZmljYXRpb258bm90aWZpY2F0aW9uc2NvcGV8b2JqZWN0dHlwZXxvcHRpb258b3V0c3RyZWFtfHBhZ2VyZXN1bHR8cmVjb3JkfHJlY29yZGlkfHJlY29yZHJlZnxyZXBvcnRmb3JtYXR8c2VjdXJpdHlmaWx0ZXJ8c2Vzc2lvbnNldHRpbmdzfHRhYmxlY29ubmVjdGlvbnR5cGV8dGFibGVmaWx0ZXJ8dGVzdGFjdGlvbnx0ZXN0ZmllbGR8dGVzdGZpbHRlcmZpZWxkfHRlc3RwYWdlfHRlc3RwZXJtaXNzaW9uc3x0ZXN0cmVxdWVzdHBhZ2V8dGV4dHx0ZXh0YnVpbGRlcnx0ZXh0Y29uc3R8dGV4dGVuY29kaW5nfHRpbWV8dHJhbnNhY3Rpb25tb2RlbHx0cmFuc2FjdGlvbnR5cGV8dmFyaWFudHx2ZXJib3NpdHl8dmVyc2lvbnx2aWV3fHZpZXdzfHdlYnNlcnZpY2VhY3Rpb25jb250ZXh0fHdlYnNlcnZpY2VhY3Rpb25yZXN1bHRjb2RlfHhtbGF0dHJpYnV0ZXx4bWxhdHRyaWJ1dGVjb2xsZWN0aW9ufHhtbGNkYXRhfHhtbGNvbW1lbnR8eG1sZGVjbGFyYXRpb258eG1sZG9jdW1lbnR8eG1sZG9jdW1lbnR0eXBlfHhtbGVsZW1lbnR8eG1sbmFtZXNwYWNlbWFuYWdlcnx4bWxuYW1ldGFibGV8eG1sbm9kZXx4bWxub2RlbGlzdHx4bWxwcm9jZXNzaW5naW5zdHJ1Y3Rpb258eG1scmVhZG9wdGlvbnN8eG1sdGV4dHx4bWx3cml0ZW9wdGlvbnMpXGIvaSxvcGVyYXRvcjovXC5cLnw6Wz06XXxbLSsqL109P3w8PnxbPD5dPT98PXxcYig/OmFuZHxkaXZ8bW9kfG5vdHxvcnx4b3IpXGIvaSxwdW5jdHVhdGlvbjovWygpXFtcXXt9Oi47LF0vfX1yZXR1cm4gbnV9dmFyIHJ1LEZTO2Z1bmN0aW9uIFQ0KCl7aWYoRlMpcmV0dXJuIHJ1O0ZTPTEscnU9ZSxlLmRpc3BsYXlOYW1lPSJhbnRscjQiLGUuYWxpYXNlcz1bImc0Il07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5hbnRscjQ9e2NvbW1lbnQ6L1wvXC8uKnxcL1wqW1xzXFNdKj8oPzpcKlwvfCQpLyxzdHJpbmc6e3BhdHRlcm46LycoPzpcXC58W15cXCdcclxuXSkqJy8sZ3JlZWR5OiEwfSwiY2hhcmFjdGVyLWNsYXNzIjp7cGF0dGVybjovXFsoPzpcXC58W15cXFxdXHJcbl0pKlxdLyxncmVlZHk6ITAsYWxpYXM6InJlZ2V4IixpbnNpZGU6e3JhbmdlOntwYXR0ZXJuOi8oW15bXXwoPzpefFteXFxdKSg/OlxcXFwpKlxcXFspLSg/IVxdKS8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifSxlc2NhcGU6L1xcKD86dSg/OlthLWZBLUZcZF17NH18XHtbYS1mQS1GXGRdK1x9KXxbcFBdXHtbPVx3LV0rXH18W15cclxudXBQXSkvLHB1bmN0dWF0aW9uOi9bXFtcXV0vfX0sYWN0aW9uOntwYXR0ZXJuOi9ceyg/Oltee31dfFx7KD86W157fV18XHsoPzpbXnt9XXxce1tee31dKlx9KSpcfSkqXH0pKlx9LyxncmVlZHk6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi8oXHspW1xzXFNdKyg/PVx9KS8sbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1t7fV0vfX0sY29tbWFuZDp7cGF0dGVybjovKC0+XHMqKD8hXHMpKSg/OlxzKig/OixccyopP1xiW2Etel1cdyooPzpccypcKFteKClcclxuXSpcKSk/KSsoPz1ccyo7KS9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntmdW5jdGlvbjovXGJcdysoPz1ccyooPzpbLChdfCQpKS8scHVuY3R1YXRpb246L1ssKCldL319LGFubm90YXRpb246e3BhdHRlcm46L0BcdysoPzo6Olx3KykqLyxhbGlhczoia2V5d29yZCJ9LGxhYmVsOntwYXR0ZXJuOi8jWyBcdF0qXHcrLyxhbGlhczoicHVuY3R1YXRpb24ifSxrZXl3b3JkOi9cYig/OmNhdGNofGNoYW5uZWxzfGZpbmFsbHl8ZnJhZ21lbnR8Z3JhbW1hcnxpbXBvcnR8bGV4ZXJ8bG9jYWxzfG1vZGV8b3B0aW9uc3xwYXJzZXJ8cmV0dXJuc3x0aHJvd3N8dG9rZW5zKVxiLyxkZWZpbml0aW9uOlt7cGF0dGVybjovXGJbYS16XVx3Kig/PVxzKjopLyxhbGlhczpbInJ1bGUiLCJjbGFzcy1uYW1lIl19LHtwYXR0ZXJuOi9cYltBLVpdXHcqKD89XHMqOikvLGFsaWFzOlsidG9rZW4iLCJjb25zdGFudCJdfV0sY29uc3RhbnQ6L1xiW0EtWl1bQS1aX10qXGIvLG9wZXJhdG9yOi9cLlwufC0+fFt8fl18WyorP11cPz8vLHB1bmN0dWF0aW9uOi9bOzooKT1dL30sdC5sYW5ndWFnZXMuZzQ9dC5sYW5ndWFnZXMuYW50bHI0fXJldHVybiBydX12YXIgYXUsVVM7ZnVuY3Rpb24gazQoKXtpZihVUylyZXR1cm4gYXU7VVM9MSxhdT1lLGUuZGlzcGxheU5hbWU9ImFwYWNoZWNvbmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmFwYWNoZWNvbmY9e2NvbW1lbnQ6LyMuKi8sImRpcmVjdGl2ZS1pbmxpbmUiOntwYXR0ZXJuOi8oXltcdCBdKilcYig/OkFjY2VwdEZpbHRlcnxBY2NlcHRQYXRoSW5mb3xBY2Nlc3NGaWxlTmFtZXxBY3Rpb258QWRkKD86QWx0fEFsdEJ5RW5jb2Rpbmd8QWx0QnlUeXBlfENoYXJzZXR8RGVmYXVsdENoYXJzZXR8RGVzY3JpcHRpb258RW5jb2Rpbmd8SGFuZGxlcnxJY29ufEljb25CeUVuY29kaW5nfEljb25CeVR5cGV8SW5wdXRGaWx0ZXJ8TGFuZ3VhZ2V8TW9kdWxlSW5mb3xPdXRwdXRGaWx0ZXJ8T3V0cHV0RmlsdGVyQnlUeXBlfFR5cGUpfEFsaWFzfEFsaWFzTWF0Y2h8QWxsb3coPzpDT05ORUNUfEVuY29kZWRTbGFzaGVzfE1ldGhvZHN8T3ZlcnJpZGV8T3ZlcnJpZGVMaXN0KT98QW5vbnltb3VzKD86X0xvZ0VtYWlsfF9NdXN0R2l2ZUVtYWlsfF9Ob1VzZXJJRHxfVmVyaWZ5RW1haWwpP3xBc3luY1JlcXVlc3RXb3JrZXJGYWN0b3J8QXV0aCg/OkJhc2ljQXV0aG9yaXRhdGl2ZXxCYXNpY0Zha2V8QmFzaWNQcm92aWRlcnxCYXNpY1VzZURpZ2VzdEFsZ29yaXRobXxEQkRVc2VyUFdRdWVyeXxEQkRVc2VyUmVhbG1RdWVyeXxEQk1Hcm91cEZpbGV8REJNVHlwZXxEQk1Vc2VyRmlsZXxEaWdlc3QoPzpBbGdvcml0aG18RG9tYWlufE5vbmNlTGlmZXRpbWV8UHJvdmlkZXJ8UW9wfFNobWVtU2l6ZSl8Rm9ybSg/OkF1dGhvcml0YXRpdmV8Qm9keXxEaXNhYmxlTm9TdG9yZXxGYWtlQmFzaWNBdXRofExvY2F0aW9ufExvZ2luUmVxdWlyZWRMb2NhdGlvbnxMb2dpblN1Y2Nlc3NMb2NhdGlvbnxMb2dvdXRMb2NhdGlvbnxNZXRob2R8TWltZXR5cGV8UGFzc3dvcmR8UHJvdmlkZXJ8U2l0ZVBhc3NwaHJhc2V8U2l6ZXxVc2VybmFtZSl8R3JvdXBGaWxlfExEQVAoPzpBdXRob3JpemVQcmVmaXh8QmluZEF1dGhvcml0YXRpdmV8QmluZEROfEJpbmRQYXNzd29yZHxDaGFyc2V0Q29uZmlnfENvbXBhcmVBc1VzZXJ8Q29tcGFyZUROT25TZXJ2ZXJ8RGVyZWZlcmVuY2VBbGlhc2VzfEdyb3VwQXR0cmlidXRlfEdyb3VwQXR0cmlidXRlSXNETnxJbml0aWFsQmluZEFzVXNlcnxJbml0aWFsQmluZFBhdHRlcm58TWF4U3ViR3JvdXBEZXB0aHxSZW1vdGVVc2VyQXR0cmlidXRlfFJlbW90ZVVzZXJJc0ROfFNlYXJjaEFzVXNlcnxTdWJHcm91cEF0dHJpYnV0ZXxTdWJHcm91cENsYXNzfFVybCl8TWVyZ2luZ3xOYW1lfG5DYWNoZSg/OkNvbnRleHR8RW5hYmxlfFByb3ZpZGVGb3J8U09DYWNoZXxUaW1lb3V0KXxuekZjZ2lDaGVja0F1dGhuUHJvdmlkZXJ8bnpGY2dpRGVmaW5lUHJvdmlkZXJ8VHlwZXxVc2VyRmlsZXx6REJETG9naW5Ub1JlZmVyZXJ8ekRCRFF1ZXJ5fHpEQkRSZWRpcmVjdFF1ZXJ5fHpEQk1UeXBlfHpTZW5kRm9yYmlkZGVuT25GYWlsdXJlKXxCYWxhbmNlckdyb3d0aHxCYWxhbmNlckluaGVyaXR8QmFsYW5jZXJNZW1iZXJ8QmFsYW5jZXJQZXJzaXN0fEJyb3dzZXJNYXRjaHxCcm93c2VyTWF0Y2hOb0Nhc2V8QnVmZmVyZWRMb2dzfEJ1ZmZlclNpemV8Q2FjaGUoPzpEZWZhdWx0RXhwaXJlfERldGFpbEhlYWRlcnxEaXJMZW5ndGh8RGlyTGV2ZWxzfERpc2FibGV8RW5hYmxlfEZpbGV8SGVhZGVyfElnbm9yZUNhY2hlQ29udHJvbHxJZ25vcmVIZWFkZXJzfElnbm9yZU5vTGFzdE1vZHxJZ25vcmVRdWVyeVN0cmluZ3xJZ25vcmVVUkxTZXNzaW9uSWRlbnRpZmllcnN8S2V5QmFzZVVSTHxMYXN0TW9kaWZpZWRGYWN0b3J8TG9ja3xMb2NrTWF4QWdlfExvY2tQYXRofE1heEV4cGlyZXxNYXhGaWxlU2l6ZXxNaW5FeHBpcmV8TWluRmlsZVNpemV8TmVnb3RpYXRlZERvY3N8UXVpY2tIYW5kbGVyfFJlYWRTaXplfFJlYWRUaW1lfFJvb3R8U29jYWNoZSg/Ok1heFNpemV8TWF4VGltZXxNaW5UaW1lfFJlYWRTaXplfFJlYWRUaW1lKT98U3RhbGVPbkVycm9yfFN0b3JlRXhwaXJlZHxTdG9yZU5vU3RvcmV8U3RvcmVQcml2YXRlKXxDR0lEU2NyaXB0VGltZW91dHxDR0lNYXBFeHRlbnNpb258Q2hhcnNldERlZmF1bHR8Q2hhcnNldE9wdGlvbnN8Q2hhcnNldFNvdXJjZUVuY3xDaGVja0Nhc2VPbmx5fENoZWNrU3BlbGxpbmd8Q2hyb290RGlyfENvbnRlbnREaWdlc3R8Q29va2llRG9tYWlufENvb2tpZUV4cGlyZXN8Q29va2llTmFtZXxDb29raWVTdHlsZXxDb29raWVUcmFja2luZ3xDb3JlRHVtcERpcmVjdG9yeXxDdXN0b21Mb2d8RGF2fERhdkRlcHRoSW5maW5pdHl8RGF2R2VuZXJpY0xvY2tEQnxEYXZMb2NrREJ8RGF2TWluVGltZW91dHxEQkRFeHB0aW1lfERCREluaXRTUUx8REJES2VlcHxEQkRNYXh8REJETWlufERCRFBhcmFtc3xEQkRQZXJzaXN0fERCRFByZXBhcmVTUUx8REJEcml2ZXJ8RGVmYXVsdEljb258RGVmYXVsdExhbmd1YWdlfERlZmF1bHRSdW50aW1lRGlyfERlZmF1bHRUeXBlfERlZmluZXxEZWZsYXRlKD86QnVmZmVyU2l6ZXxDb21wcmVzc2lvbkxldmVsfEZpbHRlck5vdGV8SW5mbGF0ZUxpbWl0UmVxdWVzdEJvZHl8SW5mbGF0ZVJhdGlvKD86QnVyc3R8TGltaXQpfE1lbUxldmVsfFdpbmRvd1NpemUpfERlbnl8RGlyZWN0b3J5Q2hlY2tIYW5kbGVyfERpcmVjdG9yeUluZGV4fERpcmVjdG9yeUluZGV4UmVkaXJlY3R8RGlyZWN0b3J5U2xhc2h8RG9jdW1lbnRSb290fERUcmFjZVByaXZpbGVnZXN8RHVtcElPSW5wdXR8RHVtcElPT3V0cHV0fEVuYWJsZUV4Y2VwdGlvbkhvb2t8RW5hYmxlTU1BUHxFbmFibGVTZW5kZmlsZXxFcnJvcnxFcnJvckRvY3VtZW50fEVycm9yTG9nfEVycm9yTG9nRm9ybWF0fEV4YW1wbGV8RXhwaXJlc0FjdGl2ZXxFeHBpcmVzQnlUeXBlfEV4cGlyZXNEZWZhdWx0fEV4dGVuZGVkU3RhdHVzfEV4dEZpbHRlckRlZmluZXxFeHRGaWx0ZXJPcHRpb25zfEZhbGxiYWNrUmVzb3VyY2V8RmlsZUVUYWd8RmlsdGVyQ2hhaW58RmlsdGVyRGVjbGFyZXxGaWx0ZXJQcm90b2NvbHxGaWx0ZXJQcm92aWRlcnxGaWx0ZXJUcmFjZXxGb3JjZUxhbmd1YWdlUHJpb3JpdHl8Rm9yY2VUeXBlfEZvcmVuc2ljTG9nfEdwcm9mRGlyfEdyYWNlZnVsU2h1dGRvd25UaW1lb3V0fEdyb3VwfEhlYWRlcnxIZWFkZXJOYW1lfEhlYXJ0YmVhdCg/OkFkZHJlc3N8TGlzdGVufE1heFNlcnZlcnN8U3RvcmFnZSl8SG9zdG5hbWVMb29rdXBzfElkZW50aXR5Q2hlY2t8SWRlbnRpdHlDaGVja1RpbWVvdXR8SW1hcEJhc2V8SW1hcERlZmF1bHR8SW1hcE1lbnV8SW5jbHVkZXxJbmNsdWRlT3B0aW9uYWx8SW5kZXgoPzpIZWFkSW5zZXJ0fElnbm9yZXxJZ25vcmVSZXNldHxPcHRpb25zfE9yZGVyRGVmYXVsdHxTdHlsZVNoZWV0KXxJbnB1dFNlZHxJU0FQSSg/OkFwcGVuZExvZ1RvRXJyb3JzfEFwcGVuZExvZ1RvUXVlcnl8Q2FjaGVGaWxlfEZha2VBc3luY3xMb2dOb3RTdXBwb3J0ZWR8UmVhZEFoZWFkQnVmZmVyKXxLZWVwQWxpdmV8S2VlcEFsaXZlVGltZW91dHxLZXB0Qm9keVNpemV8TGFuZ3VhZ2VQcmlvcml0eXxMREFQKD86Q2FjaGVFbnRyaWVzfENhY2hlVFRMfENvbm5lY3Rpb25Qb29sVFRMfENvbm5lY3Rpb25UaW1lb3V0fExpYnJhcnlEZWJ1Z3xPcENhY2hlRW50cmllc3xPcENhY2hlVFRMfFJlZmVycmFsSG9wTGltaXR8UmVmZXJyYWxzfFJldHJpZXN8UmV0cnlEZWxheXxTaGFyZWRDYWNoZUZpbGV8U2hhcmVkQ2FjaGVTaXplfFRpbWVvdXR8VHJ1c3RlZENsaWVudENlcnR8VHJ1c3RlZEdsb2JhbENlcnR8VHJ1c3RlZE1vZGV8VmVyaWZ5U2VydmVyQ2VydCl8TGltaXQoPzpJbnRlcm5hbFJlY3Vyc2lvbnxSZXF1ZXN0KD86Qm9keXxGaWVsZHN8RmllbGRTaXplfExpbmUpfFhNTFJlcXVlc3RCb2R5KXxMaXN0ZW58TGlzdGVuQmFja0xvZ3xMb2FkRmlsZXxMb2FkTW9kdWxlfExvZ0Zvcm1hdHxMb2dMZXZlbHxMb2dNZXNzYWdlfEx1YUF1dGh6UHJvdmlkZXJ8THVhQ29kZUNhY2hlfEx1YSg/Okhvb2soPzpBY2Nlc3NDaGVja2VyfEF1dGhDaGVja2VyfENoZWNrVXNlcklEfEZpeHVwc3xJbnNlcnRGaWx0ZXJ8TG9nfE1hcFRvU3RvcmFnZXxUcmFuc2xhdGVOYW1lfFR5cGVDaGVja2VyKXxJbmhlcml0fElucHV0RmlsdGVyfE1hcEhhbmRsZXJ8T3V0cHV0RmlsdGVyfFBhY2thZ2VDUGF0aHxQYWNrYWdlUGF0aHxRdWlja0hhbmRsZXJ8Um9vdHxTY29wZSl8TWF4KD86Q29ubmVjdGlvbnNQZXJDaGlsZHxLZWVwQWxpdmVSZXF1ZXN0c3xNZW1GcmVlfFJhbmdlT3ZlcmxhcHN8UmFuZ2VSZXZlcnNhbHN8UmFuZ2VzfFJlcXVlc3RXb3JrZXJzfFNwYXJlU2VydmVyc3xTcGFyZVRocmVhZHN8VGhyZWFkcyl8TWVyZ2VUcmFpbGVyc3xNZXRhRGlyfE1ldGFGaWxlc3xNZXRhU3VmZml4fE1pbWVNYWdpY0ZpbGV8TWluU3BhcmVTZXJ2ZXJzfE1pblNwYXJlVGhyZWFkc3xNTWFwRmlsZXxNb2RlbVN0YW5kYXJkfE1vZE1pbWVVc2VQYXRoSW5mb3xNdWx0aXZpZXdzTWF0Y2h8TXV0ZXh8TmFtZVZpcnR1YWxIb3N0fE5vUHJveHl8TldTU0xUcnVzdGVkQ2VydHN8TldTU0xVcGdyYWRlYWJsZXxPcHRpb25zfE9yZGVyfE91dHB1dFNlZHxQYXNzRW52fFBpZEZpbGV8UHJpdmlsZWdlc01vZGV8UHJvdG9jb2x8UHJvdG9jb2xFY2hvfFByb3h5KD86QWRkSGVhZGVyc3xCYWRIZWFkZXJ8QmxvY2t8RG9tYWlufEVycm9yT3ZlcnJpZGV8RXhwcmVzc0RCTUZpbGV8RXhwcmVzc0RCTVR5cGV8RXhwcmVzc0VuYWJsZXxGdHBEaXJDaGFyc2V0fEZ0cEVzY2FwZVdpbGRjYXJkc3xGdHBMaXN0T25XaWxkY2FyZHxIVE1MKD86QnVmU2l6ZXxDaGFyc2V0T3V0fERvY1R5cGV8RW5hYmxlfEV2ZW50c3xFeHRlbmRlZHxGaXh1cHN8SW50ZXJwfExpbmtzfE1ldGF8U3RyaXBDb21tZW50c3xVUkxNYXApfElPQnVmZmVyU2l6ZXxNYXhGb3J3YXJkc3xQYXNzKD86SW5oZXJpdHxJbnRlcnBvbGF0ZUVudnxNYXRjaHxSZXZlcnNlfFJldmVyc2VDb29raWVEb21haW58UmV2ZXJzZUNvb2tpZVBhdGgpP3xQcmVzZXJ2ZUhvc3R8UmVjZWl2ZUJ1ZmZlclNpemV8UmVtb3RlfFJlbW90ZU1hdGNofFJlcXVlc3RzfFNDR0lJbnRlcm5hbFJlZGlyZWN0fFNDR0lTZW5kZmlsZXxTZXR8U291cmNlQWRkcmVzc3xTdGF0dXN8VGltZW91dHxWaWEpfFJlYWRtZU5hbWV8UmVjZWl2ZUJ1ZmZlclNpemV8UmVkaXJlY3R8UmVkaXJlY3RNYXRjaHxSZWRpcmVjdFBlcm1hbmVudHxSZWRpcmVjdFRlbXB8UmVmbGVjdG9ySGVhZGVyfFJlbW90ZUlQKD86SGVhZGVyfEludGVybmFsUHJveHl8SW50ZXJuYWxQcm94eUxpc3R8UHJveGllc0hlYWRlcnxUcnVzdGVkUHJveHl8VHJ1c3RlZFByb3h5TGlzdCl8UmVtb3ZlQ2hhcnNldHxSZW1vdmVFbmNvZGluZ3xSZW1vdmVIYW5kbGVyfFJlbW92ZUlucHV0RmlsdGVyfFJlbW92ZUxhbmd1YWdlfFJlbW92ZU91dHB1dEZpbHRlcnxSZW1vdmVUeXBlfFJlcXVlc3RIZWFkZXJ8UmVxdWVzdFJlYWRUaW1lb3V0fFJlcXVpcmV8UmV3cml0ZSg/OkJhc2V8Q29uZHxFbmdpbmV8TWFwfE9wdGlvbnN8UnVsZSl8UkxpbWl0Q1BVfFJMaW1pdE1FTXxSTGltaXROUFJPQ3xTYXRpc2Z5fFNjb3JlQm9hcmRGaWxlfFNjcmlwdCg/OkFsaWFzfEFsaWFzTWF0Y2h8SW50ZXJwcmV0ZXJTb3VyY2V8TG9nfExvZ0J1ZmZlcnxMb2dMZW5ndGh8U29jayk/fFNlY3VyZUxpc3RlbnxTZWVSZXF1ZXN0VGFpbHxTZW5kQnVmZmVyU2l6ZXxTZXJ2ZXIoPzpBZG1pbnxBbGlhc3xMaW1pdHxOYW1lfFBhdGh8Um9vdHxTaWduYXR1cmV8VG9rZW5zKXxTZXNzaW9uKD86Q29va2llKD86TmFtZXxOYW1lMnxSZW1vdmUpfENyeXB0byg/OkNpcGhlcnxEcml2ZXJ8UGFzc3BocmFzZXxQYXNzcGhyYXNlRmlsZSl8REJEKD86Q29va2llTmFtZXxDb29raWVOYW1lMnxDb29raWVSZW1vdmV8RGVsZXRlTGFiZWx8SW5zZXJ0TGFiZWx8UGVyVXNlcnxTZWxlY3RMYWJlbHxVcGRhdGVMYWJlbCl8RW52fEV4Y2x1ZGV8SGVhZGVyfEluY2x1ZGV8TWF4QWdlKT98U2V0RW52fFNldEVudklmfFNldEVudklmRXhwcnxTZXRFbnZJZk5vQ2FzZXxTZXRIYW5kbGVyfFNldElucHV0RmlsdGVyfFNldE91dHB1dEZpbHRlcnxTU0lFbmRUYWd8U1NJRXJyb3JNc2d8U1NJRVRhZ3xTU0lMYXN0TW9kaWZpZWR8U1NJTGVnYWN5RXhwclBhcnNlcnxTU0lTdGFydFRhZ3xTU0lUaW1lRm9ybWF0fFNTSVVuZGVmaW5lZEVjaG98U1NMKD86Q0FDZXJ0aWZpY2F0ZUZpbGV8Q0FDZXJ0aWZpY2F0ZVBhdGh8Q0FETlJlcXVlc3RGaWxlfENBRE5SZXF1ZXN0UGF0aHxDQVJldm9jYXRpb25DaGVja3xDQVJldm9jYXRpb25GaWxlfENBUmV2b2NhdGlvblBhdGh8Q2VydGlmaWNhdGVDaGFpbkZpbGV8Q2VydGlmaWNhdGVGaWxlfENlcnRpZmljYXRlS2V5RmlsZXxDaXBoZXJTdWl0ZXxDb21wcmVzc2lvbnxDcnlwdG9EZXZpY2V8RW5naW5lfEZJUFN8SG9ub3JDaXBoZXJPcmRlcnxJbnNlY3VyZVJlbmVnb3RpYXRpb258T0NTUCg/OkRlZmF1bHRSZXNwb25kZXJ8RW5hYmxlfE92ZXJyaWRlUmVzcG9uZGVyfFJlc3BvbmRlclRpbWVvdXR8UmVzcG9uc2VNYXhBZ2V8UmVzcG9uc2VUaW1lU2tld3xVc2VSZXF1ZXN0Tm9uY2UpfE9wZW5TU0xDb25mQ21kfE9wdGlvbnN8UGFzc1BocmFzZURpYWxvZ3xQcm90b2NvbHxQcm94eSg/OkNBQ2VydGlmaWNhdGVGaWxlfENBQ2VydGlmaWNhdGVQYXRofENBUmV2b2NhdGlvbig/OkNoZWNrfEZpbGV8UGF0aCl8Q2hlY2tQZWVyKD86Q058RXhwaXJlfE5hbWUpfENpcGhlclN1aXRlfEVuZ2luZXxNYWNoaW5lQ2VydGlmaWNhdGUoPzpDaGFpbkZpbGV8RmlsZXxQYXRoKXxQcm90b2NvbHxWZXJpZnl8VmVyaWZ5RGVwdGgpfFJhbmRvbVNlZWR8UmVuZWdCdWZmZXJTaXplfFJlcXVpcmV8UmVxdWlyZVNTTHxTZXNzaW9uKD86Q2FjaGV8Q2FjaGVUaW1lb3V0fFRpY2tldEtleUZpbGV8VGlja2V0cyl8U1JQVW5rbm93blVzZXJTZWVkfFNSUFZlcmlmaWVyRmlsZXxTdGFwbGluZyg/OkNhY2hlfEVycm9yQ2FjaGVUaW1lb3V0fEZha2VUcnlMYXRlcnxGb3JjZVVSTHxSZXNwb25kZXJUaW1lb3V0fFJlc3BvbnNlTWF4QWdlfFJlc3BvbnNlVGltZVNrZXd8UmV0dXJuUmVzcG9uZGVyRXJyb3JzfFN0YW5kYXJkQ2FjaGVUaW1lb3V0KXxTdHJpY3RTTklWSG9zdENoZWNrfFVzZXJOYW1lfFVzZVN0YXBsaW5nfFZlcmlmeUNsaWVudHxWZXJpZnlEZXB0aCl8U3RhcnRTZXJ2ZXJzfFN0YXJ0VGhyZWFkc3xTdWJzdGl0dXRlfFN1ZXhlY3xTdWV4ZWNVc2VyR3JvdXB8VGhyZWFkTGltaXR8VGhyZWFkc1BlckNoaWxkfFRocmVhZFN0YWNrU2l6ZXxUaW1lT3V0fFRyYWNlRW5hYmxlfFRyYW5zZmVyTG9nfFR5cGVzQ29uZmlnfFVuRGVmaW5lfFVuZGVmTWFjcm98VW5zZXRFbnZ8VXNlfFVzZUNhbm9uaWNhbE5hbWV8VXNlQ2Fub25pY2FsUGh5c2ljYWxQb3J0fFVzZXJ8VXNlckRpcnxWSG9zdENHSU1vZGV8Vkhvc3RDR0lQcml2c3xWSG9zdEdyb3VwfFZIb3N0UHJpdnN8Vkhvc3RTZWN1cmV8Vkhvc3RVc2VyfFZpcnR1YWwoPzpEb2N1bWVudFJvb3R8U2NyaXB0QWxpYXMpKD86SVApP3xXYXRjaGRvZ0ludGVydmFsfFhCaXRIYWNrfHhtbDJFbmNBbGlhc3x4bWwyRW5jRGVmYXVsdHx4bWwyU3RhcnRQYXJzZSlcYi9pbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LCJkaXJlY3RpdmUtYmxvY2siOntwYXR0ZXJuOi88XC8/XGIoPzpBdXRoW256XVByb3ZpZGVyQWxpYXN8RGlyZWN0b3J5fERpcmVjdG9yeU1hdGNofEVsc2V8RWxzZUlmfEZpbGVzfEZpbGVzTWF0Y2h8SWZ8SWZEZWZpbmV8SWZNb2R1bGV8SWZWZXJzaW9ufExpbWl0fExpbWl0RXhjZXB0fExvY2F0aW9ufExvY2F0aW9uTWF0Y2h8TWFjcm98UHJveHl8UmVxdWlyZSg/OkFsbHxBbnl8Tm9uZSl8VmlydHVhbEhvc3QpXGIuKj4vaSxpbnNpZGU6eyJkaXJlY3RpdmUtYmxvY2siOntwYXR0ZXJuOi9ePFwvP1x3Ky8saW5zaWRlOntwdW5jdHVhdGlvbjovXjxcLz8vfSxhbGlhczoidGFnIn0sImRpcmVjdGl2ZS1ibG9jay1wYXJhbWV0ZXIiOntwYXR0ZXJuOi8uKltePl0vLGluc2lkZTp7cHVuY3R1YXRpb246LzovLHN0cmluZzp7cGF0dGVybjovKCJ8JykuKlwxLyxpbnNpZGU6e3ZhcmlhYmxlOi9bJCVdXHs/KD86XHdcLj9bLSs6XT8pK1x9Py99fX0sYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovPi99LGFsaWFzOiJ0YWcifSwiZGlyZWN0aXZlLWZsYWdzIjp7cGF0dGVybjovXFsoPzpbXHc9XSw/KStcXS8sYWxpYXM6ImtleXdvcmQifSxzdHJpbmc6e3BhdHRlcm46LygifCcpLipcMS8saW5zaWRlOnt2YXJpYWJsZTovWyQlXVx7Pyg/Olx3XC4/Wy0rOl0/KStcfT8vfX0sdmFyaWFibGU6L1skJV1cez8oPzpcd1wuP1stKzpdPykrXH0/LyxyZWdleDovXF4/LipcJHxcXi4qXCQ/L319cmV0dXJuIGF1fXZhciBpdSxCUztmdW5jdGlvbiBPYigpe2lmKEJTKXJldHVybiBpdTtCUz0xLGl1PWUsZS5kaXNwbGF5TmFtZT0ic3FsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5zcWw9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qP1wqXC98KD86LS18XC9cL3wjKS4qKS8sbG9va2JlaGluZDohMH0sdmFyaWFibGU6W3twYXR0ZXJuOi9AKFsiJ2BdKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKStcMS8sZ3JlZWR5OiEwfSwvQFtcdy4kXSsvXSxzdHJpbmc6e3BhdHRlcm46LyhefFteQFxcXSkoInwnKSg/OlxcW1xzXFNdfCg/IVwyKVteXFxdfFwyXDIpKlwyLyxncmVlZHk6ITAsbG9va2JlaGluZDohMH0saWRlbnRpZmllcjp7cGF0dGVybjovKF58W15AXFxdKWAoPzpcXFtcc1xTXXxbXmBcXF18YGApKmAvLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L15gfGAkL319LGZ1bmN0aW9uOi9cYig/OkFWR3xDT1VOVHxGSVJTVHxGT1JNQVR8TEFTVHxMQ0FTRXxMRU58TUFYfE1JRHxNSU58TU9EfE5PV3xST1VORHxTVU18VUNBU0UpKD89XHMqXCgpL2ksa2V5d29yZDovXGIoPzpBQ1RJT058QUREfEFGVEVSfEFMR09SSVRITXxBTEx8QUxURVJ8QU5BTFlaRXxBTll8QVBQTFl8QVN8QVNDfEFVVEhPUklaQVRJT058QVVUT19JTkNSRU1FTlR8QkFDS1VQfEJEQnxCRUdJTnxCRVJLRUxFWURCfEJJR0lOVHxCSU5BUll8QklUfEJMT0J8Qk9PTHxCT09MRUFOfEJSRUFLfEJST1dTRXxCVFJFRXxCVUxLfEJZfENBTEx8Q0FTQ0FERUQ/fENBU0V8Q0hBSU58Q0hBUig/OkFDVEVSfFNFVCk/fENIRUNLKD86UE9JTlQpP3xDTE9TRXxDTFVTVEVSRUR8Q09BTEVTQ0V8Q09MTEFURXxDT0xVTU5TP3xDT01NRU5UfENPTU1JVCg/OlRFRCk/fENPTVBVVEV8Q09OTkVDVHxDT05TSVNURU5UfENPTlNUUkFJTlR8Q09OVEFJTlMoPzpUQUJMRSk/fENPTlRJTlVFfENPTlZFUlR8Q1JFQVRFfENST1NTfENVUlJFTlQoPzpfREFURXxfVElNRXxfVElNRVNUQU1QfF9VU0VSKT98Q1VSU09SfENZQ0xFfERBVEEoPzpCQVNFUz8pP3xEQVRFKD86VElNRSk/fERBWXxEQkNDfERFQUxMT0NBVEV8REVDfERFQ0lNQUx8REVDTEFSRXxERUZBVUxUfERFRklORVJ8REVMQVlFRHxERUxFVEV8REVMSU1JVEVSUz98REVOWXxERVNDfERFU0NSSUJFfERFVEVSTUlOSVNUSUN8RElTQUJMRXxESVNDQVJEfERJU0t8RElTVElOQ1R8RElTVElOQ1RST1d8RElTVFJJQlVURUR8RE98RE9VQkxFfERST1B8RFVNTVl8RFVNUCg/OkZJTEUpP3xEVVBMSUNBVEV8RUxTRSg/OklGKT98RU5BQkxFfEVOQ0xPU0VEfEVORHxFTkdJTkV8RU5VTXxFUlJMVkx8RVJST1JTfEVTQ0FQRUQ/fEVYQ0VQVHxFWEVDKD86VVRFKT98RVhJU1RTfEVYSVR8RVhQTEFJTnxFWFRFTkRFRHxGRVRDSHxGSUVMRFN8RklMRXxGSUxMRkFDVE9SfEZJUlNUfEZJWEVEfEZMT0FUfEZPTExPV0lOR3xGT1IoPzogRUFDSCBST1cpP3xGT1JDRXxGT1JFSUdOfEZSRUVURVhUKD86VEFCTEUpP3xGUk9NfEZVTEx8RlVOQ1RJT058R0VPTUVUUlkoPzpDT0xMRUNUSU9OKT98R0xPQkFMfEdPVE98R1JBTlR8R1JPVVB8SEFORExFUnxIQVNIfEhBVklOR3xIT0xETE9DS3xIT1VSfElERU5USVRZKD86Q09MfF9JTlNFUlQpP3xJRnxJR05PUkV8SU1QT1JUfElOREVYfElORklMRXxJTk5FUnxJTk5PREJ8SU5PVVR8SU5TRVJUfElOVHxJTlRFR0VSfElOVEVSU0VDVHxJTlRFUlZBTHxJTlRPfElOVk9LRVJ8SVNPTEFUSU9OfElURVJBVEV8Sk9JTnxLRVlTP3xLSUxMfExBTkdVQUdFfExBU1R8TEVBVkV8TEVGVHxMRVZFTHxMSU1JVHxMSU5FTk98TElORVN8TElORVNUUklOR3xMT0FEfExPQ0FMfExPQ0t8TE9ORyg/OkJMT0J8VEVYVCl8TE9PUHxNQVRDSCg/OkVEKT98TUVESVVNKD86QkxPQnxJTlR8VEVYVCl8TUVSR0V8TUlERExFSU5UfE1JTlVURXxNT0RFfE1PRElGSUVTfE1PRElGWXxNT05USHxNVUxUSSg/OkxJTkVTVFJJTkd8UE9JTlR8UE9MWUdPTil8TkFUSU9OQUx8TkFUVVJBTHxOQ0hBUnxORVhUfE5PfE5PTkNMVVNURVJFRHxOVUxMSUZ8TlVNRVJJQ3xPRkY/fE9GRlNFVFM/fE9OfE9QRU4oPzpEQVRBU09VUkNFfFFVRVJZfFJPV1NFVCk/fE9QVElNSVpFfE9QVElPTig/OkFMTFkpP3xPUkRFUnxPVVQoPzpFUnxGSUxFKT98T1ZFUnxQQVJUSUFMfFBBUlRJVElPTnxQRVJDRU5UfFBJVk9UfFBMQU58UE9JTlR8UE9MWUdPTnxQUkVDRURJTkd8UFJFQ0lTSU9OfFBSRVBBUkV8UFJFVnxQUklNQVJZfFBSSU5UfFBSSVZJTEVHRVN8UFJPQyg/OkVEVVJFKT98UFVCTElDfFBVUkdFfFFVSUNLfFJBSVNFUlJPUnxSRUFEUz98UkVBTHxSRUNPTkZJR1VSRXxSRUZFUkVOQ0VTfFJFTEVBU0V8UkVOQU1FfFJFUEVBVCg/OkFCTEUpP3xSRVBMQUNFfFJFUExJQ0FUSU9OfFJFUVVJUkV8UkVTSUdOQUx8UkVTVE9SRXxSRVNUUklDVHxSRVRVUk4oPzpJTkd8Uyk/fFJFVk9LRXxSSUdIVHxST0xMQkFDS3xST1VUSU5FfFJPVyg/OkNPVU5UfEdVSURDT0x8Uyk/fFJUUkVFfFJVTEV8U0FWRSg/OlBPSU5UKT98U0NIRU1BfFNFQ09ORHxTRUxFQ1R8U0VSSUFMKD86SVpBQkxFKT98U0VTU0lPTig/Ol9VU0VSKT98U0VUKD86VVNFUik/fFNIQVJFfFNIT1d8U0hVVERPV058U0lNUExFfFNNQUxMSU5UfFNOQVBTSE9UfFNPTUV8U09OQU1FfFNRTHxTVEFSVCg/OklORyk/fFNUQVRJU1RJQ1N8U1RBVFVTfFNUUklQRUR8U1lTVEVNX1VTRVJ8VEFCTEVTP3xUQUJMRVNQQUNFfFRFTVAoPzpPUkFSWXxUQUJMRSk/fFRFUk1JTkFURUR8VEVYVCg/OlNJWkUpP3xUSEVOfFRJTUUoPzpTVEFNUCk/fFRJTlkoPzpCTE9CfElOVHxURVhUKXxUT1A/fFRSQU4oPzpTQUNUSU9OUz8pP3xUUklHR0VSfFRSVU5DQVRFfFRTRVFVQUx8VFlQRVM/fFVOQk9VTkRFRHxVTkNPTU1JVFRFRHxVTkRFRklORUR8VU5JT058VU5JUVVFfFVOTE9DS3xVTlBJVk9UfFVOU0lHTkVEfFVQREFURSg/OlRFWFQpP3xVU0FHRXxVU0V8VVNFUnxVU0lOR3xWQUxVRVM/fFZBUig/OkJJTkFSWXxDSEFSfENIQVJBQ1RFUnxZSU5HKXxWSUVXfFdBSVRGT1J8V0FSTklOR1N8V0hFTnxXSEVSRXxXSElMRXxXSVRIKD86IFJPTExVUHxJTik/fFdPUkt8V1JJVEUoPzpURVhUKT98WUVBUilcYi9pLGJvb2xlYW46L1xiKD86RkFMU0V8TlVMTHxUUlVFKVxiL2ksbnVtYmVyOi9cYjB4W1xkYS1mXStcYnxcYlxkKyg/OlwuXGQqKT98XEJcLlxkK1xiL2ksb3BlcmF0b3I6L1stKypcLz0lXn5dfCYmP3xcfFx8P3whPT98PCg/Oj0+P3w8fD4pP3w+Wz49XT98XGIoPzpBTkR8QkVUV0VFTnxESVZ8SUxJS0V8SU58SVN8TElLRXxOT1R8T1J8UkVHRVhQfFJMSUtFfFNPVU5EUyBMSUtFfFhPUilcYi9pLHB1bmN0dWF0aW9uOi9bO1tcXSgpYCwuXS99fXJldHVybiBpdX12YXIgb3UsJFM7ZnVuY3Rpb24gQTQoKXtpZigkUylyZXR1cm4gb3U7JFM9MTt2YXIgZT1PYigpO291PXQsdC5kaXNwbGF5TmFtZT0iYXBleCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXt2YXIgYT0vXGIoPzooPzphZnRlcnxiZWZvcmUpKD89XHMrW2Etel0pfGFic3RyYWN0fGFjdGl2YXRlfGFuZHxhbnl8YXJyYXl8YXN8YXNjfGF1dG9ub21vdXN8YmVnaW58YmlnZGVjaW1hbHxibG9ifGJvb2xlYW58YnJlYWt8YnVsa3xieXxieXRlfGNhc2V8Y2FzdHxjYXRjaHxjaGFyfGNsYXNzfGNvbGxlY3R8Y29tbWl0fGNvbnN0fGNvbnRpbnVlfGN1cnJlbmN5fGRhdGV8ZGF0ZXRpbWV8ZGVjaW1hbHxkZWZhdWx0fGRlbGV0ZXxkZXNjfGRvfGRvdWJsZXxlbHNlfGVuZHxlbnVtfGV4Y2VwdGlvbnxleGl0fGV4cG9ydHxleHRlbmRzfGZpbmFsfGZpbmFsbHl8ZmxvYXR8Zm9yfGZyb218Z2V0KD89XHMqW3t9O10pfGdsb2JhbHxnb3RvfGdyb3VwfGhhdmluZ3xoaW50fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGlubmVyfGluc2VydHxpbnN0YW5jZW9mfGludHxpbnRlZ2VyfGludGVyZmFjZXxpbnRvfGpvaW58bGlrZXxsaW1pdHxsaXN0fGxvbmd8bG9vcHxtYXB8bWVyZ2V8bmV3fG5vdHxudWxsfG51bGxzfG51bWJlcnxvYmplY3R8b2Z8b258b3J8b3V0ZXJ8b3ZlcnJpZGV8cGFja2FnZXxwYXJhbGxlbHxwcmFnbWF8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJldHJpZXZlfHJldHVybnxyb2xsYmFja3xzZWxlY3R8c2V0fHNob3J0fHNPYmplY3R8c29ydHxzdGF0aWN8c3RyaW5nfHN1cGVyfHN3aXRjaHxzeW5jaHJvbml6ZWR8c3lzdGVtfHRlc3RtZXRob2R8dGhlbnx0aGlzfHRocm93fHRpbWV8dHJhbnNhY3Rpb258dHJhbnNpZW50fHRyaWdnZXJ8dHJ5fHVuZGVsZXRlfHVwZGF0ZXx1cHNlcnR8dXNpbmd8dmlydHVhbHx2b2lkfHdlYnNlcnZpY2V8d2hlbnx3aGVyZXx3aGlsZXwoPzppbmhlcml0ZWR8d2l0aHx3aXRob3V0KVxzK3NoYXJpbmcpXGIvaSxpPS9cYig/Oig/PVthLXpfXVx3KlxzKls8XFtdKXwoPyE8a2V5d29yZD4pKVtBLVpfXVx3Kig/OlxzKlwuXHMqW0EtWl9dXHcqKSpcYig/OlxzKig/OlxbXHMqXF18PCg/OltePD5dfDwoPzpbXjw+XXw8W148Pl0qPikqPikqPikpKi8uc291cmNlLnJlcGxhY2UoLzxrZXl3b3JkPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGEuc291cmNlfSk7ZnVuY3Rpb24gbyhsKXtyZXR1cm4gUmVnRXhwKGwucmVwbGFjZSgvPENMQVNTLU5BTUU+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pLCJpIil9dmFyIHM9e2tleXdvcmQ6YSxwdW5jdHVhdGlvbjovWygpXFtcXXt9Oyw6Ljw+XS99O3IubGFuZ3VhZ2VzLmFwZXg9e2NvbW1lbnQ6ci5sYW5ndWFnZXMuY2xpa2UuY29tbWVudCxzdHJpbmc6ci5sYW5ndWFnZXMuY2xpa2Uuc3RyaW5nLHNxbDp7cGF0dGVybjovKCg/Ols9LCh7Ol18XGJyZXR1cm4pXHMqKVxbW15cW1xdXSpcXS9pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJsYW5ndWFnZS1zcWwiLGluc2lkZTpyLmxhbmd1YWdlcy5zcWx9LGFubm90YXRpb246e3BhdHRlcm46L0BcdytcYi8sYWxpYXM6InB1bmN0dWF0aW9uIn0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjpvKC8oXGIoPzpjbGFzc3xlbnVtfGV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfGludGVyZmFjZXxuZXd8dHJpZ2dlclxzK1x3K1xzK29uKVxzKyk8Q0xBU1MtTkFNRT4vLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6c30se3BhdHRlcm46bygvKFwoXHMqKTxDTEFTUy1OQU1FPig/PVxzKlwpXHMqW1x3KF0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnN9LHtwYXR0ZXJuOm8oLzxDTEFTUy1OQU1FPig/PVxzKlx3K1xzKls7PSwoKXs6XSkvLnNvdXJjZSksaW5zaWRlOnN9XSx0cmlnZ2VyOntwYXR0ZXJuOi8oXGJ0cmlnZ2VyXHMrKVx3K1xiL2ksbG9va2JlaGluZDohMCxhbGlhczoiY2xhc3MtbmFtZSJ9LGtleXdvcmQ6YSxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypcKCkvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxudW1iZXI6Lyg/OlxCXC5cZCt8XGJcZCsoPzpcLlxkK3xMKT8pXGIvaSxvcGVyYXRvcjovWyE9XSg/Oj09Pyk/fFw/XC4/fCYmfFx8XHx8LS18XCtcK3xbLSsqL14mfF09P3w6fDw8Pz0/fD57MSwzfT0/LyxwdW5jdHVhdGlvbjovWygpXFtcXXt9OywuXS99fShuKX1yZXR1cm4gb3V9dmFyIHN1LHpTO2Z1bmN0aW9uIHg0KCl7aWYoelMpcmV0dXJuIHN1O3pTPTEsc3U9ZSxlLmRpc3BsYXlOYW1lPSJhcGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmFwbD17Y29tbWVudDovKD864o2dfCNbISBdKS4qJC9tLHN0cmluZzp7cGF0dGVybjovJyg/OlteJ1xyXG5dfCcnKSonLyxncmVlZHk6ITB9LG51bWJlcjovwq8/KD86XGQqXC4/XGJcZCsoPzplWyvCr10/XGQrKT98wq984oieKSg/OmrCrz8oPzooPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OmVbK8KvXT9cZCspP3zCr3ziiJ4pKT8vaSxzdGF0ZW1lbnQ6LzpbQS1aXVthLXpdW0EtWmEtel0qXGIvLCJzeXN0ZW0tZnVuY3Rpb24iOntwYXR0ZXJuOi/ijpVbQS1aXSsvaSxhbGlhczoiZnVuY3Rpb24ifSxjb25zdGFudDovW+KNrOKMviPijpXijZ5dLyxmdW5jdGlvbjovWy0rw5fDt+KMiOKMiuKIo3zijbPijbg/KuKNn+KXiyHijLk84omkPT7iiaXiiaDiiaHiiaLiiIrijbfiiKriiKl+4oio4oin4o2x4o2y4o20LOKNquKMveKKluKNieKGkeKGk+KKguKKg+KKhuKKh+KMt+KNi+KNkuKKpOKKpeKNleKNjuKKo+KKouKNgeKNguKJiOKNr+KGl8Kk4oaSXS8sIm1vbmFkaWMtb3BlcmF0b3IiOntwYXR0ZXJuOi9bXFxcL+KMv+KNgMKo4o2o4oy2JuKIpV0vLGFsaWFzOiJvcGVyYXRvciJ9LCJkeWFkaWMtb3BlcmF0b3IiOntwYXR0ZXJuOi9bLuKNo+KNoOKNpOKImOKMuEDijLrijaVdLyxhbGlhczoib3BlcmF0b3IifSxhc3NpZ25tZW50OntwYXR0ZXJuOi/ihpAvLGFsaWFzOiJrZXl3b3JkIn0scHVuY3R1YXRpb246L1tcWztcXSgp4peH4ouEXS8sZGZuOntwYXR0ZXJuOi9be33ijbrijbXijbbijbniiIfijas6XS8sYWxpYXM6ImJ1aWx0aW4ifX19cmV0dXJuIHN1fXZhciBsdSxqUztmdW5jdGlvbiBSNCgpe2lmKGpTKXJldHVybiBsdTtqUz0xLGx1PWUsZS5kaXNwbGF5TmFtZT0iYXBwbGVzY3JpcHQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmFwcGxlc2NyaXB0PXtjb21tZW50OlsvXChcKig/OlwoXCooPzpbXipdfFwqKD8hXCkpKSpcKlwpfCg/IVwoXCopW1xzXFNdKSo/XCpcKS8sLy0tLisvLC8jLisvXSxzdHJpbmc6LyIoPzpcXC58W14iXFxcclxuXSkqIi8sbnVtYmVyOi8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplLT9cZCspP1xiL2ksb3BlcmF0b3I6Wy9bJj3iiaDiiaTiiaUqK1wtXC/Dt15dfFs8Pl09Py8sL1xiKD86KD86YmVnaW58ZW5kfHN0YXJ0KXM/IHdpdGh8KD86Y29udGFpbnM/fCg/OmRvZXMgbm90fGRvZXNuJ3QpIGNvbnRhaW4pfCg/OmlzfGlzbid0fGlzIG5vdCkgKD86Y29udGFpbmVkIGJ5fGluKXwoPzooPzppc3xpc24ndHxpcyBub3QpICk/KD86Z3JlYXRlcnxsZXNzKSB0aGFuKD86IG9yIGVxdWFsKT8oPzogdG8pP3woPzpjb21lc3woPzpkb2VzIG5vdHxkb2Vzbid0KSBjb21lKSAoPzphZnRlcnxiZWZvcmUpfCg/OmlzfGlzbid0fGlzIG5vdCkgZXF1YWwoPzogdG8pP3woPzooPzpkb2VzIG5vdHxkb2Vzbid0KSBlcXVhbHxlcXVhbCB0b3xlcXVhbHN8aXMgbm90fGlzbid0KXwoPzphICk/KD86cmVmKD86IHRvKT98cmVmZXJlbmNlIHRvKXwoPzphbmR8YXN8ZGl2fG1vZHxub3R8b3IpKVxiL10sa2V5d29yZDovXGIoPzphYm91dHxhYm92ZXxhZnRlcnxhZ2FpbnN0fGFwYXJ0IGZyb218YXJvdW5kfGFzaWRlIGZyb218YXR8YmFja3xiZWZvcmV8YmVnaW5uaW5nfGJlaGluZHxiZWxvd3xiZW5lYXRofGJlc2lkZXxiZXR3ZWVufGJ1dHxieXxjb25zaWRlcmluZ3xjb250aW51ZXxjb3B5fGRvZXN8ZWlnaHRofGVsc2V8ZW5kfGVxdWFsfGVycm9yfGV2ZXJ5fGV4aXR8ZmFsc2V8ZmlmdGh8Zmlyc3R8Zm9yfGZvdXJ0aHxmcm9tfGZyb250fGdldHxnaXZlbnxnbG9iYWx8aWZ8aWdub3Jpbmd8aW58aW5zdGVhZCBvZnxpbnRvfGlzfGl0fGl0c3xsYXN0fGxvY2FsfG1lfG1pZGRsZXxteXxuaW50aHxvZnxvbnxvbnRvfG91dCBvZnxvdmVyfHByb3B8cHJvcGVydHl8cHV0fHJlcGVhdHxyZXR1cm58cmV0dXJuaW5nfHNlY29uZHxzZXR8c2V2ZW50aHxzaW5jZXxzaXh0aHxzb21lfHRlbGx8dGVudGh8dGhhdHx0aGV8dGhlbnx0aGlyZHx0aHJvdWdofHRocnV8dGltZW91dHx0aW1lc3x0b3x0cmFuc2FjdGlvbnx0cnVlfHRyeXx1bnRpbHx3aGVyZXx3aGlsZXx3aG9zZXx3aXRofHdpdGhvdXQpXGIvLCJjbGFzcy1uYW1lIjovXGIoPzpQT1NJWCBmaWxlfFJHQiBjb2xvcnxhbGlhc3xhcHBsaWNhdGlvbnxib29sZWFufGNlbnRpbWV0ZXJzfGNlbnRpbWV0cmVzfGNsYXNzfGNvbnN0YW50fGN1YmljIGNlbnRpbWV0ZXJzfGN1YmljIGNlbnRpbWV0cmVzfGN1YmljIGZlZXR8Y3ViaWMgaW5jaGVzfGN1YmljIG1ldGVyc3xjdWJpYyBtZXRyZXN8Y3ViaWMgeWFyZHN8ZGF0ZXxkZWdyZWVzIENlbHNpdXN8ZGVncmVlcyBGYWhyZW5oZWl0fGRlZ3JlZXMgS2VsdmlufGZlZXR8ZmlsZXxnYWxsb25zfGdyYW1zfGluY2hlc3xpbnRlZ2VyfGtpbG9ncmFtc3xraWxvbWV0ZXJzfGtpbG9tZXRyZXN8bGlzdHxsaXRlcnN8bGl0cmVzfG1ldGVyc3xtZXRyZXN8bWlsZXN8bnVtYmVyfG91bmNlc3xwb3VuZHN8cXVhcnRzfHJlYWx8cmVjb3JkfHJlZmVyZW5jZXxzY3JpcHR8c3F1YXJlIGZlZXR8c3F1YXJlIGtpbG9tZXRlcnN8c3F1YXJlIGtpbG9tZXRyZXN8c3F1YXJlIG1ldGVyc3xzcXVhcmUgbWV0cmVzfHNxdWFyZSBtaWxlc3xzcXVhcmUgeWFyZHN8dGV4dHx5YXJkcylcYi8scHVuY3R1YXRpb246L1t7fSgpOizCrMKrwrvjgIrjgItdL319cmV0dXJuIGx1fXZhciB1dSxHUztmdW5jdGlvbiBfNCgpe2lmKEdTKXJldHVybiB1dTtHUz0xLHV1PWUsZS5kaXNwbGF5TmFtZT0iYXFsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5hcWw9e2NvbW1lbnQ6L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxwcm9wZXJ0eTp7cGF0dGVybjovKFt7LF1ccyopKD86KD8hXGQpXHcrfChbIifCtGBdKSg/Oig/IVwyKVteXFxcclxuXXxcXC4pKlwyKSg/PVxzKjopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzooPyFcMSlbXlxcXHJcbl18XFwuKSpcMS8sZ3JlZWR5OiEwfSxpZGVudGlmaWVyOntwYXR0ZXJuOi8oW8K0YF0pKD86KD8hXDEpW15cXFxyXG5dfFxcLikqXDEvLGdyZWVkeTohMH0sdmFyaWFibGU6L0BAP1x3Ky8sa2V5d29yZDpbe3BhdHRlcm46LyhcYldJVEhccyspQ09VTlQoPz1ccytJTlRPXGIpL2ksbG9va2JlaGluZDohMH0sL1xiKD86QUdHUkVHQVRFfEFMTHxBTkR8QU5ZfEFTQ3xDT0xMRUNUfERFU0N8RElTVElOQ1R8RklMVEVSfEZPUnxHUkFQSHxJTnxJTkJPVU5EfElOU0VSVHxJTlRPfEtfUEFUSFN8S19TSE9SVEVTVF9QQVRIU3xMRVR8TElLRXxMSU1JVHxOT05FfE5PVHxOVUxMfE9SfE9VVEJPVU5EfFJFTU9WRXxSRVBMQUNFfFJFVFVSTnxTSE9SVEVTVF9QQVRIfFNPUlR8VVBEQVRFfFVQU0VSVHxXSU5ET1d8V0lUSClcYi9pLHtwYXR0ZXJuOi8oXnxbXlx3LltdKSg/OktFRVB8UFJVTkV8U0VBUkNIfFRPKVxiL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteXHcuW10pKD86Q1VSUkVOVHxORVd8T0xEKVxiLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGJPUFRJT05TKD89XHMqXHspL2l9XSxmdW5jdGlvbjovXGIoPyFcZClcdysoPz1ccypcKCkvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLHJhbmdlOntwYXR0ZXJuOi9cLlwuLyxhbGlhczoib3BlcmF0b3IifSxudW1iZXI6Wy9cYjBiWzAxXSsvaSwvXGIweFswLTlhLWZdKy9pLC8oPzpcQlwuXGQrfFxiKD86MHxbMS05XVxkKikoPzpcLlxkKyk/KSg/OmVbKy1dP1xkKyk/L2ldLG9wZXJhdG9yOi9cKnsyLH18Wz0hXX58WyE9PD5dPT98JiZ8XHxcfHxbLSsqLyVdLyxwdW5jdHVhdGlvbjovOjp8Wz8uOiw7KClbXF17fV0vfX1yZXR1cm4gdXV9dmFyIGN1LHFTO2Z1bmN0aW9uIEVyKCl7aWYocVMpcmV0dXJuIGN1O3FTPTEsY3U9ZSxlLmRpc3BsYXlOYW1lPSJjIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5jPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50OntwYXR0ZXJuOi9cL1wvKD86W15cclxuXFxdfFxcKD86XHJcbj98XG58KD8hW1xyXG5dKSkpKnxcL1wqW1xzXFNdKj8oPzpcKlwvfCQpLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlxcKD86XHJcbnxbXHNcU10pfFteIlxcXHJcbl0pKiIvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzplbnVtfHN0cnVjdClccysoPzpfX2F0dHJpYnV0ZV9fXHMqXChcKFtcc1xTXSo/XClcKVxzKik/KVx3K3xcYlthLXpdXHcqX3RcYi8sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzpfQWxpZ25hc3xfQWxpZ25vZnxfQXRvbWljfF9Cb29sfF9Db21wbGV4fF9HZW5lcmljfF9JbWFnaW5hcnl8X05vcmV0dXJufF9TdGF0aWNfYXNzZXJ0fF9UaHJlYWRfbG9jYWx8X19hdHRyaWJ1dGVfX3xhc218YXV0b3xicmVha3xjYXNlfGNoYXJ8Y29uc3R8Y29udGludWV8ZGVmYXVsdHxkb3xkb3VibGV8ZWxzZXxlbnVtfGV4dGVybnxmbG9hdHxmb3J8Z290b3xpZnxpbmxpbmV8aW50fGxvbmd8cmVnaXN0ZXJ8cmV0dXJufHNob3J0fHNpZ25lZHxzaXplb2Z8c3RhdGljfHN0cnVjdHxzd2l0Y2h8dHlwZWRlZnx0eXBlb2Z8dW5pb258dW5zaWduZWR8dm9pZHx2b2xhdGlsZXx3aGlsZSlcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOi8oPzpcYjB4KD86W1xkYS1mXSsoPzpcLltcZGEtZl0qKT98XC5bXGRhLWZdKykoPzpwWystXT9cZCspP3woPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplWystXT9cZCspPylbZnVsXXswLDR9L2ksb3BlcmF0b3I6Lz4+PT98PDw9P3wtPnwoWy0rJnw6XSlcMXxbPzp+XXxbLSsqLyUmfF4hPTw+XT0/L30pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiYyIsInN0cmluZyIse2NoYXI6e3BhdHRlcm46LycoPzpcXCg/OlxyXG58W1xzXFNdKXxbXidcXFxyXG5dKXswLDMyfScvLGdyZWVkeTohMH19KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImMiLCJzdHJpbmciLHttYWNybzp7cGF0dGVybjovKF5bXHQgXSopI1xzKlthLXpdKD86W15cclxuXFwvXXxcLyg/IVwqKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcL3xcXCg/OlxyXG58W1xzXFNdKSkqL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntzdHJpbmc6W3twYXR0ZXJuOi9eKCNccyppbmNsdWRlXHMqKTxbXj5dKz4vLGxvb2tiZWhpbmQ6ITB9LHQubGFuZ3VhZ2VzLmMuc3RyaW5nXSxjaGFyOnQubGFuZ3VhZ2VzLmMuY2hhcixjb21tZW50OnQubGFuZ3VhZ2VzLmMuY29tbWVudCwibWFjcm8tbmFtZSI6W3twYXR0ZXJuOi8oXiNccypkZWZpbmVccyspXHcrXGIoPyFcKCkvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF4jXHMqZGVmaW5lXHMrKVx3K1xiKD89XCgpL2ksbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifV0sZGlyZWN0aXZlOntwYXR0ZXJuOi9eKCNccyopW2Etel0rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sImRpcmVjdGl2ZS1oYXNoIjovXiMvLHB1bmN0dWF0aW9uOi8jI3xcXCg/PVtcclxuXSkvLGV4cHJlc3Npb246e3BhdHRlcm46L1xTW1xzXFNdKi8saW5zaWRlOnQubGFuZ3VhZ2VzLmN9fX19KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImMiLCJmdW5jdGlvbiIse2NvbnN0YW50Oi9cYig/OkVPRnxOVUxMfFNFRUtfQ1VSfFNFRUtfRU5EfFNFRUtfU0VUfF9fREFURV9ffF9fRklMRV9ffF9fTElORV9ffF9fVElNRVNUQU1QX198X19USU1FX198X19mdW5jX198c3RkZXJyfHN0ZGlufHN0ZG91dClcYi99KSxkZWxldGUgdC5sYW5ndWFnZXMuYy5ib29sZWFufXJldHVybiBjdX12YXIgZHUsVlM7ZnVuY3Rpb24gTGIoKXtpZihWUylyZXR1cm4gZHU7VlM9MTt2YXIgZT1FcigpO2R1PXQsdC5kaXNwbGF5TmFtZT0iY3BwIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLGZ1bmN0aW9uKHIpe3ZhciBhPS9cYig/OmFsaWduYXN8YWxpZ25vZnxhc218YXV0b3xib29sfGJyZWFrfGNhc2V8Y2F0Y2h8Y2hhcnxjaGFyMTZfdHxjaGFyMzJfdHxjaGFyOF90fGNsYXNzfGNvX2F3YWl0fGNvX3JldHVybnxjb195aWVsZHxjb21wbHxjb25jZXB0fGNvbnN0fGNvbnN0X2Nhc3R8Y29uc3RldmFsfGNvbnN0ZXhwcnxjb25zdGluaXR8Y29udGludWV8ZGVjbHR5cGV8ZGVmYXVsdHxkZWxldGV8ZG98ZG91YmxlfGR5bmFtaWNfY2FzdHxlbHNlfGVudW18ZXhwbGljaXR8ZXhwb3J0fGV4dGVybnxmaW5hbHxmbG9hdHxmb3J8ZnJpZW5kfGdvdG98aWZ8aW1wb3J0fGlubGluZXxpbnR8aW50MTZfdHxpbnQzMl90fGludDY0X3R8aW50OF90fGxvbmd8bW9kdWxlfG11dGFibGV8bmFtZXNwYWNlfG5ld3xub2V4Y2VwdHxudWxscHRyfG9wZXJhdG9yfG92ZXJyaWRlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZWdpc3RlcnxyZWludGVycHJldF9jYXN0fHJlcXVpcmVzfHJldHVybnxzaG9ydHxzaWduZWR8c2l6ZW9mfHN0YXRpY3xzdGF0aWNfYXNzZXJ0fHN0YXRpY19jYXN0fHN0cnVjdHxzd2l0Y2h8dGVtcGxhdGV8dGhpc3x0aHJlYWRfbG9jYWx8dGhyb3d8dHJ5fHR5cGVkZWZ8dHlwZWlkfHR5cGVuYW1lfHVpbnQxNl90fHVpbnQzMl90fHVpbnQ2NF90fHVpbnQ4X3R8dW5pb258dW5zaWduZWR8dXNpbmd8dmlydHVhbHx2b2lkfHZvbGF0aWxlfHdjaGFyX3R8d2hpbGUpXGIvLGk9L1xiKD8hPGtleXdvcmQ+KVx3Kyg/OlxzKlwuXHMqXHcrKSpcYi8uc291cmNlLnJlcGxhY2UoLzxrZXl3b3JkPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGEuc291cmNlfSk7ci5sYW5ndWFnZXMuY3BwPXIubGFuZ3VhZ2VzLmV4dGVuZCgiYyIseyJjbGFzcy1uYW1lIjpbe3BhdHRlcm46UmVnRXhwKC8oXGIoPzpjbGFzc3xjb25jZXB0fGVudW18c3RydWN0fHR5cGVuYW1lKVxzKykoPyE8a2V5d29yZD4pXHcrLy5zb3VyY2UucmVwbGFjZSgvPGtleXdvcmQ+L2csZnVuY3Rpb24oKXtyZXR1cm4gYS5zb3VyY2V9KSksbG9va2JlaGluZDohMH0sL1xiW0EtWl1cdyooPz1ccyo6OlxzKlx3K1xzKlwoKS8sL1xiW0EtWl9dXHcqKD89XHMqOjpccyp+XHcrXHMqXCgpL2ksL1xiXHcrKD89XHMqPCg/OltePD5dfDwoPzpbXjw+XXw8W148Pl0qPikqPikqPlxzKjo6XHMqXHcrXHMqXCgpL10sa2V5d29yZDphLG51bWJlcjp7cGF0dGVybjovKD86XGIwYlswMSddK3xcYjB4KD86W1xkYS1mJ10rKD86XC5bXGRhLWYnXSopP3xcLltcZGEtZiddKykoPzpwWystXT9bXGQnXSspP3woPzpcYltcZCddKyg/OlwuW1xkJ10qKT98XEJcLltcZCddKykoPzplWystXT9bXGQnXSspPylbZnVsXXswLDR9L2ksZ3JlZWR5OiEwfSxvcGVyYXRvcjovPj49P3w8PD0/fC0+fC0tfFwrXCt8JiZ8XHxcfHxbPzp+XXw8PT58Wy0rKi8lJnxeIT08Pl09P3xcYig/OmFuZHxhbmRfZXF8Yml0YW5kfGJpdG9yfG5vdHxub3RfZXF8b3J8b3JfZXF8eG9yfHhvcl9lcSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL30pLHIubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3BwIiwic3RyaW5nIix7bW9kdWxlOntwYXR0ZXJuOlJlZ0V4cCgvKFxiKD86aW1wb3J0fG1vZHVsZSlccyspLy5zb3VyY2UrIig/OiIrLyIoPzpcXCg/OlxyXG58W1xzXFNdKXxbXiJcXFxyXG5dKSoifDxbXjw+XHJcbl0qPi8uc291cmNlKyJ8IisvPG1vZC1uYW1lPig/OlxzKjpccyo8bW9kLW5hbWU+KT98OlxzKjxtb2QtbmFtZT4vLnNvdXJjZS5yZXBsYWNlKC88bW9kLW5hbWU+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pKyIpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntzdHJpbmc6L15bPCJdW1xzXFNdKy8sb3BlcmF0b3I6LzovLHB1bmN0dWF0aW9uOi9cLi99fSwicmF3LXN0cmluZyI6e3BhdHRlcm46L1IiKFteKClcXCBdezAsMTZ9KVwoW1xzXFNdKj9cKVwxIi8sYWxpYXM6InN0cmluZyIsZ3JlZWR5OiEwfX0pLHIubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3BwIiwia2V5d29yZCIseyJnZW5lcmljLWZ1bmN0aW9uIjp7cGF0dGVybjovXGIoPyFvcGVyYXRvclxiKVthLXpfXVx3KlxzKjwoPzpbXjw+XXw8W148Pl0qPikqPig/PVxzKlwoKS9pLGluc2lkZTp7ZnVuY3Rpb246L15cdysvLGdlbmVyaWM6e3BhdHRlcm46LzxbXHNcU10rLyxhbGlhczoiY2xhc3MtbmFtZSIsaW5zaWRlOnIubGFuZ3VhZ2VzLmNwcH19fX0pLHIubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3BwIiwib3BlcmF0b3IiLHsiZG91YmxlLWNvbG9uIjp7cGF0dGVybjovOjovLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fSksci5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjcHAiLCJjbGFzcy1uYW1lIix7ImJhc2UtY2xhdXNlIjp7cGF0dGVybjovKFxiKD86Y2xhc3N8c3RydWN0KVxzK1x3K1xzKjpccyopW147e30iJ1xzXSsoPzpccytbXjt7fSInXHNdKykqKD89XHMqWzt7XSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpyLmxhbmd1YWdlcy5leHRlbmQoImNwcCIse30pfX0pLHIubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaW5zaWRlIiwiZG91YmxlLWNvbG9uIix7ImNsYXNzLW5hbWUiOi9cYlthLXpfXVx3KlxiKD8hXHMqOjopL2l9LHIubGFuZ3VhZ2VzLmNwcFsiYmFzZS1jbGF1c2UiXSl9KG4pfXJldHVybiBkdX12YXIgcHUsSFM7ZnVuY3Rpb24gSTQoKXtpZihIUylyZXR1cm4gcHU7SFM9MTt2YXIgZT1MYigpO3B1PXQsdC5kaXNwbGF5TmFtZT0iYXJkdWlubyIsdC5hbGlhc2VzPVsiaW5vIl07ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLmFyZHVpbm89bi5sYW5ndWFnZXMuZXh0ZW5kKCJjcHAiLHtrZXl3b3JkOi9cYig/OlN0cmluZ3xhcnJheXxib29sfGJvb2xlYW58YnJlYWt8Ynl0ZXxjYXNlfGNhdGNofGNvbnRpbnVlfGRlZmF1bHR8ZG98ZG91YmxlfGVsc2V8ZmluYWxseXxmb3J8ZnVuY3Rpb258Z290b3xpZnxpbnxpbnN0YW5jZW9mfGludHxpbnRlZ2VyfGxvbmd8bG9vcHxuZXd8bnVsbHxyZXR1cm58c2V0dXB8c3RyaW5nfHN3aXRjaHx0aHJvd3x0cnl8dm9pZHx3aGlsZXx3b3JkKVxiLyxjb25zdGFudDovXGIoPzpBTkFMT0dfTUVTU0FHRXxERUZBVUxUfERJR0lUQUxfTUVTU0FHRXxFWFRFUk5BTHxGSVJNQVRBX1NUUklOR3xISUdIfElOUFVUfElOUFVUX1BVTExVUHxJTlRFUk5BTHxJTlRFUk5BTDFWMXxJTlRFUk5BTDJWNTZ8TEVEX0JVSUxUSU58TE9XfE9VVFBVVHxSRVBPUlRfQU5BTE9HfFJFUE9SVF9ESUdJVEFMfFNFVF9QSU5fTU9ERXxTWVNFWF9TVEFSVHxTWVNURU1fUkVTRVQpXGIvLGJ1aWx0aW46L1xiKD86QXVkaW98QlNTSUR8QnJpZGdlfENsaWVudHxDb25zb2xlfEVFUFJPTXxFc3Bsb3JhfEVzcGxvcmFURlR8RXRoZXJuZXR8RXRoZXJuZXRDbGllbnR8RXRoZXJuZXRTZXJ2ZXJ8RXRoZXJuZXRVRFB8RmlsZXxGaWxlSU98RmlsZVN5c3RlbXxGaXJtYXRhfEdQUlN8R1NNfEdTTUJhbmR8R1NNQ2xpZW50fEdTTU1vZGVtfEdTTVBJTnxHU01TY2FubmVyfEdTTVNlcnZlcnxHU01Wb2ljZUNhbGx8R1NNX1NNU3xIdHRwQ2xpZW50fElQQWRkcmVzc3xJUnJlYWR8S2V5Ym9hcmR8S2V5Ym9hcmRDb250cm9sbGVyfExpcXVpZENyeXN0YWx8TGlxdWlkQ3J5c3RhbF9JMkN8TWFpbGJveHxNb3VzZXxNb3VzZUNvbnRyb2xsZXJ8UEltYWdlfFByb2Nlc3N8UlNTSXxSb2JvdENvbnRyb2x8Um9ib3RNb3RvcnxTRHxTUEl8U1NJRHxTY2hlZHVsZXJ8U2VyaWFsfFNlcnZlcnxTZXJ2b3xTb2Z0d2FyZVNlcmlhbHxTdGVwcGVyfFN0cmVhbXxURlR8VGFza3xVU0JIb3N0fFdpRml8V2lGaUNsaWVudHxXaUZpU2VydmVyfFdpRmlVRFB8V2lyZXxZdW5DbGllbnR8WXVuU2VydmVyfGFic3xhZGRQYXJhbWV0ZXJ8YW5hbG9nUmVhZHxhbmFsb2dSZWFkUmVzb2x1dGlvbnxhbmFsb2dSZWZlcmVuY2V8YW5hbG9nV3JpdGV8YW5hbG9nV3JpdGVSZXNvbHV0aW9ufGFuc3dlckNhbGx8YXR0YWNofGF0dGFjaEdQUlN8YXR0YWNoSW50ZXJydXB0fGF0dGFjaGVkfGF1dG9zY3JvbGx8YXZhaWxhYmxlfGJhY2tncm91bmR8YmVlcHxiZWdpbnxiZWdpblBhY2tldHxiZWdpblNEfGJlZ2luU01TfGJlZ2luU3BlYWtlcnxiZWdpblRGVHxiZWdpblRyYW5zbWlzc2lvbnxiZWdpbldyaXRlfGJpdHxiaXRDbGVhcnxiaXRSZWFkfGJpdFNldHxiaXRXcml0ZXxibGlua3xibGlua1ZlcnNpb258YnVmZmVyfGNoYW5nZVBJTnxjaGVja1BJTnxjaGVja1BVS3xjaGVja1JlZ3xjaXJjbGV8Y2l0eU5hbWVSZWFkfGNpdHlOYW1lV3JpdGV8Y2xlYXJ8Y2xlYXJTY3JlZW58Y2xpY2t8Y2xvc2V8Y29tcGFzc1JlYWR8Y29uZmlnfGNvbm5lY3R8Y29ubmVjdGVkfGNvbnN0cmFpbnxjb3N8Y291bnRyeU5hbWVSZWFkfGNvdW50cnlOYW1lV3JpdGV8Y3JlYXRlQ2hhcnxjdXJzb3J8ZGVidWdQcmludHxkZWxheXxkZWxheU1pY3Jvc2Vjb25kc3xkZXRhY2h8ZGV0YWNoSW50ZXJydXB0fGRpZ2l0YWxSZWFkfGRpZ2l0YWxXcml0ZXxkaXNjb25uZWN0fGRpc3BsYXl8ZGlzcGxheUxvZ29zfGRyYXdCTVB8ZHJhd0NvbXBhc3N8ZW5jcnlwdGlvblR5cGV8ZW5kfGVuZFBhY2tldHxlbmRTTVN8ZW5kVHJhbnNtaXNzaW9ufGVuZFdyaXRlfGV4aXN0c3xleGl0VmFsdWV8ZmlsbHxmaW5kfGZpbmRVbnRpbHxmbHVzaHxnYXRld2F5SVB8Z2V0fGdldEFzeW5jaHJvbm91c2x5fGdldEJhbmR8Z2V0QnV0dG9ufGdldEN1cnJlbnRDYXJyaWVyfGdldElNRUl8Z2V0S2V5fGdldE1vZGlmaWVyc3xnZXRPZW1LZXl8Z2V0UElOVXNlZHxnZXRSZXN1bHR8Z2V0U2lnbmFsU3RyZW5ndGh8Z2V0U29ja2V0fGdldFZvaWNlQ2FsbFN0YXR1c3xnZXRYQ2hhbmdlfGdldFlDaGFuZ2V8aGFuZ0NhbGx8aGVpZ2h0fGhpZ2hCeXRlfGhvbWV8aW1hZ2V8aW50ZXJydXB0c3xpc0FjdGlvbkRvbmV8aXNEaXJlY3Rvcnl8aXNMaXN0ZW5pbmd8aXNQSU58aXNQcmVzc2VkfGlzVmFsaWR8a2V5UHJlc3NlZHxrZXlSZWxlYXNlZHxrZXlib2FyZFJlYWR8a25vYlJlYWR8bGVmdFRvUmlnaHR8bGluZXxsaW5lRm9sbG93Q29uZmlnfGxpc3RlbnxsaXN0ZW5PbkxvY2FsaG9zdHxsb2FkSW1hZ2V8bG9jYWxJUHxsb3dCeXRlfG1hY0FkZHJlc3N8bWFpbnRhaW58bWFwfG1heHxtZXNzYWdlQXZhaWxhYmxlfG1pY3Jvc3xtaWxsaXN8bWlufG1rZGlyfG1vdG9yc1N0b3B8bW90b3JzV3JpdGV8bW91c2VEcmFnZ2VkfG1vdXNlTW92ZWR8bW91c2VQcmVzc2VkfG1vdXNlUmVsZWFzZWR8bW92ZXxub0F1dG9zY3JvbGx8bm9CbGlua3xub0J1ZmZlcnxub0N1cnNvcnxub0Rpc3BsYXl8bm9GaWxsfG5vSW50ZXJydXB0c3xub0xpc3Rlbk9uTG9jYWxob3N0fG5vU3Ryb2tlfG5vVG9uZXxvblJlY2VpdmV8b25SZXF1ZXN0fG9wZW58b3Blbk5leHRGaWxlfG92ZXJmbG93fHBhcnNlQ29tbWFuZHxwYXJzZUZsb2F0fHBhcnNlSW50fHBhcnNlUGFja2V0fHBhdXNlTW9kZXxwZWVrfHBpbk1vZGV8cGxheUZpbGV8cGxheU1lbG9keXxwb2ludHxwb2ludFRvfHBvc2l0aW9ufHBvd3xwcmVwYXJlfHByZXNzfHByaW50fHByaW50RmlybXdhcmVWZXJzaW9ufHByaW50VmVyc2lvbnxwcmludGxufHByb2Nlc3N8cHJvY2Vzc0lucHV0fHB1bHNlSW58cHV0fHJhbmRvbXxyYW5kb21TZWVkfHJlYWR8cmVhZEFjY2VsZXJvbWV0ZXJ8cmVhZEJsdWV8cmVhZEJ1dHRvbnxyZWFkQnl0ZXN8cmVhZEJ5dGVzVW50aWx8cmVhZEdyZWVufHJlYWRKb3lzdGlja0J1dHRvbnxyZWFkSm95c3RpY2tTd2l0Y2h8cmVhZEpveXN0aWNrWHxyZWFkSm95c3RpY2tZfHJlYWRMaWdodFNlbnNvcnxyZWFkTWVzc2FnZXxyZWFkTWljcm9waG9uZXxyZWFkTmV0d29ya3N8cmVhZFJlZHxyZWFkU2xpZGVyfHJlYWRTdHJpbmd8cmVhZFN0cmluZ1VudGlsfHJlYWRUZW1wZXJhdHVyZXxyZWFkeXxyZWN0fHJlbGVhc2V8cmVsZWFzZUFsbHxyZW1vdGVJUHxyZW1vdGVOdW1iZXJ8cmVtb3RlUG9ydHxyZW1vdmV8cmVxdWVzdEZyb218cmV0cmlldmVDYWxsaW5nTnVtYmVyfHJld2luZERpcmVjdG9yeXxyaWdodFRvTGVmdHxybWRpcnxyb2JvdE5hbWVSZWFkfHJvYm90TmFtZVdyaXRlfHJ1bnxydW5Bc3luY2hyb25vdXNseXxydW5TaGVsbENvbW1hbmR8cnVuU2hlbGxDb21tYW5kQXN5bmNocm9ub3VzbHl8cnVubmluZ3xzY2FuTmV0d29ya3N8c2Nyb2xsRGlzcGxheUxlZnR8c2Nyb2xsRGlzcGxheVJpZ2h0fHNlZWt8c2VuZEFuYWxvZ3xzZW5kRGlnaXRhbFBvcnRQYWlyfHNlbmREaWdpdGFsUG9ydHN8c2VuZFN0cmluZ3xzZW5kU3lzZXh8c2VyaWFsRXZlbnR8c2V0QmFuZHxzZXRCaXRPcmRlcnxzZXRDbG9ja0RpdmlkZXJ8c2V0Q3Vyc29yfHNldEROU3xzZXREYXRhTW9kZXxzZXRGaXJtd2FyZVZlcnNpb258c2V0TW9kZXxzZXRQSU5Vc2VkfHNldFNwZWVkfHNldFRleHRTaXplfHNldFRpbWVvdXR8c2hpZnRJbnxzaGlmdE91dHxzaHV0ZG93bnxzaW58c2l6ZXxzcXJ0fHN0YXJ0TG9vcHxzdGVwfHN0b3B8c3Ryb2tlfHN1Ym5ldE1hc2t8c3dpdGNoUElOfHRhbnx0ZW1wb1dyaXRlfHRleHR8dG9uZXx0cmFuc2Zlcnx0dW5lV3JpdGV8dHVybnx1cGRhdGVJUnx1c2VyTmFtZVJlYWR8dXNlck5hbWVXcml0ZXx2b2ljZUNhbGx8d2FpdENvbnRpbnVlfHdpZHRofHdyaXRlfHdyaXRlQmx1ZXx3cml0ZUdyZWVufHdyaXRlSlNPTnx3cml0ZU1lc3NhZ2V8d3JpdGVNaWNyb3NlY29uZHN8d3JpdGVSR0J8d3JpdGVSZWR8eWllbGQpXGIvfSksbi5sYW5ndWFnZXMuaW5vPW4ubGFuZ3VhZ2VzLmFyZHVpbm99cmV0dXJuIHB1fXZhciBmdSxXUztmdW5jdGlvbiBONCgpe2lmKFdTKXJldHVybiBmdTtXUz0xLGZ1PWUsZS5kaXNwbGF5TmFtZT0iYXJmZiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuYXJmZj17Y29tbWVudDovJS4qLyxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LGtleXdvcmQ6L0AoPzphdHRyaWJ1dGV8ZGF0YXxlbmR8cmVsYXRpb24pXGIvaSxudW1iZXI6L1xiXGQrKD86XC5cZCspP1xiLyxwdW5jdHVhdGlvbjovW3t9LF0vfX1yZXR1cm4gZnV9dmFyIG11LFlTO2Z1bmN0aW9uIEM0KCl7aWYoWVMpcmV0dXJuIG11O1lTPTEsbXU9ZSxlLmRpc3BsYXlOYW1lPSJhc2NpaWRvYyIsZS5hbGlhc2VzPVsiYWRvYyJdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPXtwYXR0ZXJuOi8oXlsgXHRdKilcWyg/IVxbKSg/OihbIickYF0pKD86KD8hXDIpW15cXF18XFwuKSpcMnxcWyg/OlteXFtcXVxcXXxcXC4pKlxdfFteXFtcXVxcIickYF18XFwuKSpcXS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntxdW90ZWQ6e3BhdHRlcm46LyhbJGBdKSg/Oig/IVwxKVteXFxdfFxcLikqXDEvLGluc2lkZTp7cHVuY3R1YXRpb246L15bJGBdfFskYF0kL319LGludGVycHJldGVkOntwYXR0ZXJuOi8nKD86W14nXFxdfFxcLikqJy8saW5zaWRlOntwdW5jdHVhdGlvbjovXid8JyQvfX0sc3RyaW5nOi8iKD86W14iXFxdfFxcLikqIi8sdmFyaWFibGU6L1x3Kyg/PT0pLyxwdW5jdHVhdGlvbjovXlxbfFxdJHwsLyxvcGVyYXRvcjovPS8sImF0dHItdmFsdWUiOi8oPyFeXHMrJCkuKy99fSxhPW4ubGFuZ3VhZ2VzLmFzY2lpZG9jPXsiY29tbWVudC1ibG9jayI6e3BhdHRlcm46L14oXC97NCx9KSg/OlxyP1xufFxyKSg/Oltcc1xTXSooPzpccj9cbnxccikpPz9cMS9tLGFsaWFzOiJjb21tZW50In0sdGFibGU6e3BhdHRlcm46L15cfD17Myx9KD86KD86XHI/XG58XHIoPyFcbikpLiopKj8oPzpccj9cbnxccilcfD17Myx9JC9tLGluc2lkZTp7c3BlY2lmaWVyczp7cGF0dGVybjovKD86KD86KD86XGQrKD86XC5cZCspP3xcLlxkKylbKypdKD86WzxePl0oPzpcLls8Xj5dKT98XC5bPF4+XSk/fFs8Xj5dKD86XC5bPF4+XSk/fFwuWzxePl0pW2Etel0qfFthLXpdKykoPz1cfCkvLGFsaWFzOiJhdHRyLXZhbHVlIn0scHVuY3R1YXRpb246e3BhdHRlcm46LyhefFteXFxdKVt8IV09Ki8sbG9va2JlaGluZDohMH19fSwicGFzc3Rocm91Z2gtYmxvY2siOntwYXR0ZXJuOi9eKFwrezQsfSkoPzpccj9cbnxccikoPzpbXHNcU10qKD86XHI/XG58XHIpKT8/XDEkL20saW5zaWRlOntwdW5jdHVhdGlvbjovXlwrK3xcKyskL319LCJsaXRlcmFsLWJsb2NrIjp7cGF0dGVybjovXigtezQsfXxcLns0LH0pKD86XHI/XG58XHIpKD86W1xzXFNdKig/OlxyP1xufFxyKSk/P1wxJC9tLGluc2lkZTp7cHVuY3R1YXRpb246L14oPzotK3xcLispfCg/Oi0rfFwuKykkL319LCJvdGhlci1ibG9jayI6e3BhdHRlcm46L14oLS18XCp7NCx9fF97NCx9fD17NCx9KSg/OlxyP1xufFxyKSg/Oltcc1xTXSooPzpccj9cbnxccikpPz9cMSQvbSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eKD86LSt8XCorfF8rfD0rKXwoPzotK3xcKit8Xyt8PSspJC99fSwibGlzdC1wdW5jdHVhdGlvbiI6e3BhdHRlcm46LyheWyBcdF0qKSg/Oi18XCp7MSw1fXxcLnsxLDV9fCg/OlthLXpdfFxkKylcLnxbeHZpXStcKSkoPz0gKS9pbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LCJsaXN0LWxhYmVsIjp7cGF0dGVybjovKF5bIFx0XSopW2EtelxkXS4rKD86OnsyLDR9fDs7KSg/PVxzKS9pbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJzeW1ib2wifSwiaW5kZW50ZWQtYmxvY2siOntwYXR0ZXJuOi8oKFxyP1xufFxyKVwyKShbIFx0XSspXFMuKig/Oig/OlxyP1xufFxyKVwzLispKig/PVwyezJ9fCQpLyxsb29rYmVoaW5kOiEwfSxjb21tZW50Oi9eXC9cLy4qL20sdGl0bGU6e3BhdHRlcm46L14uKyg/OlxyP1xufFxyKSg/Oj17Myx9fC17Myx9fH57Myx9fFxeezMsfXxcK3szLH0pJHxePXsxLDV9IC4rfF5cLig/IVtccy5dKS4qL20sYWxpYXM6ImltcG9ydGFudCIsaW5zaWRlOntwdW5jdHVhdGlvbjovXig/OlwufD0rKXwoPzo9K3wtK3x+K3xcXit8XCsrKSQvfX0sImF0dHJpYnV0ZS1lbnRyeSI6e3BhdHRlcm46L146W146XHJcbl0rOig/OiAuKj8oPzogXCsoPzpccj9cbnxccikuKj8pKik/JC9tLGFsaWFzOiJ0YWcifSxhdHRyaWJ1dGVzOnIsaHI6e3BhdHRlcm46L14nezMsfSQvbSxhbGlhczoicHVuY3R1YXRpb24ifSwicGFnZS1icmVhayI6e3BhdHRlcm46L148ezMsfSQvbSxhbGlhczoicHVuY3R1YXRpb24ifSxhZG1vbml0aW9uOntwYXR0ZXJuOi9eKD86Q0FVVElPTnxJTVBPUlRBTlR8Tk9URXxUSVB8V0FSTklORyk6L20sYWxpYXM6ImtleXdvcmQifSxjYWxsb3V0Olt7cGF0dGVybjovKF5bIFx0XSopPD9cZCo+L20sbG9va2JlaGluZDohMCxhbGlhczoic3ltYm9sIn0se3BhdHRlcm46LzxcZCs+LyxhbGlhczoic3ltYm9sIn1dLG1hY3JvOntwYXR0ZXJuOi9cYlthLXpcZF1bYS16XGQtXSo6Oj8oPzpbXlxzXFtcXV0qXFsoPzpbXlxdXFwiJ118KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSpcMXxcXC4pKlxdKS8saW5zaWRlOntmdW5jdGlvbjovXlthLXpcZC1dKyg/PTopLyxwdW5jdHVhdGlvbjovXjo6Py8sYXR0cmlidXRlczp7cGF0dGVybjovKD86XFsoPzpbXlxdXFwiJ118KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSpcMXxcXC4pKlxdKS8saW5zaWRlOnIuaW5zaWRlfX19LGlubGluZTp7cGF0dGVybjovKF58W15cXF0pKD86KD86XEJcWyg/OlteXF1cXCInXXwoWyInXSkoPzooPyFcMilbXlxcXXxcXC4pKlwyfFxcLikqXF0pPyg/OlxiXyg/IVxzKSg/OiBffFteX1xcXHJcbl18XFwuKSsoPzooPzpccj9cbnxccikoPzogX3xbXl9cXFxyXG5dfFxcLikrKSpfXGJ8XEJgYCg/IVxzKS4rPyg/Oig/OlxyP1xufFxyKS4rPykqJydcQnxcQmAoPyFccykoPzpbXmAnXHNdfFxzK1xTKStbJ2BdXEJ8XEIoWycqKyNdKSg/IVxzKSg/OiBcM3woPyFcMylbXlxcXHJcbl18XFwuKSsoPzooPzpccj9cbnxccikoPzogXDN8KD8hXDMpW15cXFxyXG5dfFxcLikrKSpcM1xCKXwoPzpcWyg/OlteXF1cXCInXXwoWyInXSkoPzooPyFcNClbXlxcXXxcXC4pKlw0fFxcLikqXF0pPyg/OihfX3xcKlwqfFwrXCtcKz98IyN8XCRcJHxbfl5dKS4rPyg/Oig/OlxyP1xufFxyKS4rPykqXDV8XHtbXn1cclxuXStcfXxcW1xbXFs/Lis/KD86KD86XHI/XG58XHIpLis/KSpcXT9cXVxdfDw8Lis/KD86KD86XHI/XG58XHIpLis/KSo+PnxcKFwoXCg/Lis/KD86KD86XHI/XG58XHIpLis/KSpcKT9cKVwpKSkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7YXR0cmlidXRlczpyLHVybDp7cGF0dGVybjovXig/OlxbXFtcWz8uKz9cXT9cXVxdfDw8Lis/Pj4pJC8saW5zaWRlOntwdW5jdHVhdGlvbjovXig/OlxbXFtcWz98PDwpfCg/OlxdXF1cXT98Pj4pJC99fSwiYXR0cmlidXRlLXJlZiI6e3BhdHRlcm46L15cey4rXH0kLyxpbnNpZGU6e3ZhcmlhYmxlOntwYXR0ZXJuOi8oXlx7KVthLXpcZCwrXy1dKy8sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6L15bPT8hIyVAJF18ISg/PVs6fV0pLyxwdW5jdHVhdGlvbjovXlx7fFx9JHw6Oj8vfX0saXRhbGljOntwYXR0ZXJuOi9eKFsnX10pW1xzXFNdK1wxJC8saW5zaWRlOntwdW5jdHVhdGlvbjovXig/OicnP3xfXz8pfCg/OicnP3xfXz8pJC99fSxib2xkOntwYXR0ZXJuOi9eXCpbXHNcU10rXCokLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXCpcKj98XCpcKj8kL319LHB1bmN0dWF0aW9uOi9eKD86YGA/fFwrezEsM318IyM/fFwkXCR8W35eXXxcKFwoXCg/KXwoPzonJz98XCt7MSwzfXwjIz98XCRcJHxbfl5gXXxcKT9cKVwpKSQvfX0scmVwbGFjZW1lbnQ6e3BhdHRlcm46L1woKD86Q3xSfFRNKVwpLyxhbGlhczoiYnVpbHRpbiJ9LGVudGl0eTovJiM/W1xkYS16XXsxLDh9Oy9pLCJsaW5lLWNvbnRpbnVhdGlvbiI6e3BhdHRlcm46LyhefCApXCskL20sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifX07ZnVuY3Rpb24gaShvKXtvPW8uc3BsaXQoIiAiKTtmb3IodmFyIHM9e30sbD0wLHU9by5sZW5ndGg7bDx1O2wrKylzW29bbF1dPWFbb1tsXV07cmV0dXJuIHN9ci5pbnNpZGUuaW50ZXJwcmV0ZWQuaW5zaWRlLnJlc3Q9aSgibWFjcm8gaW5saW5lIHJlcGxhY2VtZW50IGVudGl0eSIpLGFbInBhc3N0aHJvdWdoLWJsb2NrIl0uaW5zaWRlLnJlc3Q9aSgibWFjcm8iKSxhWyJsaXRlcmFsLWJsb2NrIl0uaW5zaWRlLnJlc3Q9aSgiY2FsbG91dCIpLGEudGFibGUuaW5zaWRlLnJlc3Q9aSgiY29tbWVudC1ibG9jayBwYXNzdGhyb3VnaC1ibG9jayBsaXRlcmFsLWJsb2NrIG90aGVyLWJsb2NrIGxpc3QtcHVuY3R1YXRpb24gaW5kZW50ZWQtYmxvY2sgY29tbWVudCB0aXRsZSBhdHRyaWJ1dGUtZW50cnkgYXR0cmlidXRlcyBociBwYWdlLWJyZWFrIGFkbW9uaXRpb24gbGlzdC1sYWJlbCBjYWxsb3V0IG1hY3JvIGlubGluZSByZXBsYWNlbWVudCBlbnRpdHkgbGluZS1jb250aW51YXRpb24iKSxhWyJvdGhlci1ibG9jayJdLmluc2lkZS5yZXN0PWkoInRhYmxlIGxpc3QtcHVuY3R1YXRpb24gaW5kZW50ZWQtYmxvY2sgY29tbWVudCBhdHRyaWJ1dGUtZW50cnkgYXR0cmlidXRlcyBociBwYWdlLWJyZWFrIGFkbW9uaXRpb24gbGlzdC1sYWJlbCBtYWNybyBpbmxpbmUgcmVwbGFjZW1lbnQgZW50aXR5IGxpbmUtY29udGludWF0aW9uIiksYS50aXRsZS5pbnNpZGUucmVzdD1pKCJtYWNybyBpbmxpbmUgcmVwbGFjZW1lbnQgZW50aXR5Iiksbi5ob29rcy5hZGQoIndyYXAiLGZ1bmN0aW9uKG8pe28udHlwZT09PSJlbnRpdHkiJiYoby5hdHRyaWJ1dGVzLnRpdGxlPW8uY29udGVudC52YWx1ZS5yZXBsYWNlKC8mYW1wOy8sIiYiKSl9KSxuLmxhbmd1YWdlcy5hZG9jPW4ubGFuZ3VhZ2VzLmFzY2lpZG9jfSkodCl9cmV0dXJuIG11fXZhciBndSxLUztmdW5jdGlvbiBPNCgpe2lmKEtTKXJldHVybiBndTtLUz0xLGd1PWUsZS5kaXNwbGF5TmFtZT0iYXNtNjUwMiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuYXNtNjUwMj17Y29tbWVudDovOy4qLyxkaXJlY3RpdmU6e3BhdHRlcm46L1wuXHcrKD89ICkvLGFsaWFzOiJwcm9wZXJ0eSJ9LHN0cmluZzovKFsiJ2BdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLywib3AtY29kZSI6e3BhdHRlcm46L1xiKD86QURDfEFORHxBU0x8QkNDfEJDU3xCRVF8QklUfEJNSXxCTkV8QlBMfEJSS3xCVkN8QlZTfENMQ3xDTER8Q0xJfENMVnxDTVB8Q1BYfENQWXxERUN8REVYfERFWXxFT1J8SU5DfElOWHxJTll8Sk1QfEpTUnxMREF8TERYfExEWXxMU1J8Tk9QfE9SQXxQSEF8UEhQfFBMQXxQTFB8Uk9MfFJPUnxSVEl8UlRTfFNCQ3xTRUN8U0VEfFNFSXxTVEF8U1RYfFNUWXxUQVh8VEFZfFRTWHxUWEF8VFhTfFRZQXxhZGN8YW5kfGFzbHxiY2N8YmNzfGJlcXxiaXR8Ym1pfGJuZXxicGx8YnJrfGJ2Y3xidnN8Y2xjfGNsZHxjbGl8Y2x2fGNtcHxjcHh8Y3B5fGRlY3xkZXh8ZGV5fGVvcnxpbmN8aW54fGlueXxqbXB8anNyfGxkYXxsZHh8bGR5fGxzcnxub3B8b3JhfHBoYXxwaHB8cGxhfHBscHxyb2x8cm9yfHJ0aXxydHN8c2JjfHNlY3xzZWR8c2VpfHN0YXxzdHh8c3R5fHRheHx0YXl8dHN4fHR4YXx0eHN8dHlhKVxiLyxhbGlhczoia2V5d29yZCJ9LCJoZXgtbnVtYmVyIjp7cGF0dGVybjovIz9cJFtcZGEtZl17MSw0fVxiL2ksYWxpYXM6Im51bWJlciJ9LCJiaW5hcnktbnVtYmVyIjp7cGF0dGVybjovIz8lWzAxXStcYi8sYWxpYXM6Im51bWJlciJ9LCJkZWNpbWFsLW51bWJlciI6e3BhdHRlcm46LyM/XGJcZCtcYi8sYWxpYXM6Im51bWJlciJ9LHJlZ2lzdGVyOntwYXR0ZXJuOi9cYlt4eWFdXGIvaSxhbGlhczoidmFyaWFibGUifSxwdW5jdHVhdGlvbjovWygpLDpdL319cmV0dXJuIGd1fXZhciBodSxYUztmdW5jdGlvbiBMNCgpe2lmKFhTKXJldHVybiBodTtYUz0xLGh1PWUsZS5kaXNwbGF5TmFtZT0iYXNtYXRtZWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmFzbWF0bWVsPXtjb21tZW50OntwYXR0ZXJuOi87LiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInYF0pKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sY29uc3RhbnQ6L1xiKD86UE9SVFtBLVpdfEREUltBLVpdfCg/OkREfFApW0EtWl0oPzpcZHxbMC0yXVxkfDNbMDFdKSlcYi8sZGlyZWN0aXZlOntwYXR0ZXJuOi9cLlx3Kyg/PSApLyxhbGlhczoicHJvcGVydHkifSwici1yZWdpc3RlciI6e3BhdHRlcm46L1xicig/OlxkfFsxMl1cZHwzWzAxXSlcYi8sYWxpYXM6InZhcmlhYmxlIn0sIm9wLWNvZGUiOntwYXR0ZXJuOi9cYig/OkFEQ3xBRER8QURJV3xBTkR8QU5ESXxBU1J8QkNMUnxCTER8QlJCQ3xCUkJTfEJSQ0N8QlJDU3xCUkVBS3xCUkVRfEJSR0V8QlJIQ3xCUkhTfEJSSUR8QlJJRXxCUkxPfEJSTFR8QlJNSXxCUk5FfEJSUEx8QlJTSHxCUlRDfEJSVFN8QlJWQ3xCUlZTfEJTRVR8QlNUfENBTEx8Q0JJfENCUnxDTEN8Q0xIfENMSXxDTE58Q0xSfENMU3xDTFR8Q0xWfENMWnxDT018Q1B8Q1BDfENQSXxDUFNFfERFQ3xERVN8RUlDQUxMfEVJSk1QfEVMUE18RU9SfEZNVUx8Rk1VTFN8Rk1VTFNVfElDQUxMfElKTVB8SU58SU5DfEpNUHxMQUN8TEFTfExBVHxMRHxMRFtBLVphLXowLTldfExQTXxMU0x8TFNSfE1PVnxNT1ZXfE1VTHxNVUxTfE1VTFNVfE5FR3xOT1B8T1J8T1JJfE9VVHxQT1B8UFVTSHxSQ0FMTHxSRVR8UkVUSXxSSk1QfFJPTHxST1J8U0JDfFNCQ0l8U0JJfFNCSUN8U0JJU3xTQklXfFNCUnxTQlJDfFNCUlN8U0VDfFNFSHxTRUl8U0VOfFNFUnxTRVN8U0VUfFNFVnxTRVp8U0xFRVB8U1BNfFNUfFNUW0EtWjAtOV18U1VCfFNVQkl8U1dBUHxUU1R8V0RSfFhDSHxhZGN8YWRkfGFkaXd8YW5kfGFuZGl8YXNyfGJjbHJ8YmxkfGJyYmN8YnJic3xicmNjfGJyY3N8YnJlYWt8YnJlcXxicmdlfGJyaGN8YnJoc3xicmlkfGJyaWV8YnJsb3xicmx0fGJybWl8YnJuZXxicnBsfGJyc2h8YnJ0Y3xicnRzfGJydmN8YnJ2c3xic2V0fGJzdHxjYWxsfGNiaXxjYnJ8Y2xjfGNsaHxjbGl8Y2xufGNscnxjbHN8Y2x0fGNsdnxjbHp8Y29tfGNwfGNwY3xjcGl8Y3BzZXxkZWN8ZGVzfGVpY2FsbHxlaWptcHxlbHBtfGVvcnxmbXVsfGZtdWxzfGZtdWxzdXxpY2FsbHxpam1wfGlufGluY3xqbXB8bGFjfGxhc3xsYXR8bGR8bGRbYS16MC05XXxscG18bHNsfGxzcnxtb3Z8bW92d3xtdWx8bXVsc3xtdWxzdXxuZWd8bm9wfG9yfG9yaXxvdXR8cG9wfHB1c2h8cmNhbGx8cmV0fHJldGl8cmptcHxyb2x8cm9yfHNiY3xzYmNpfHNiaXxzYmljfHNiaXN8c2Jpd3xzYnJ8c2JyY3xzYnJzfHNlY3xzZWh8c2VpfHNlbnxzZXJ8c2VzfHNldHxzZXZ8c2V6fHNsZWVwfHNwbXxzdHxzdFthLXpBLVowLTldfHN1YnxzdWJpfHN3YXB8dHN0fHdkcnx4Y2gpXGIvLGFsaWFzOiJrZXl3b3JkIn0sImhleC1udW1iZXIiOntwYXR0ZXJuOi8jP1wkW1xkYS1mXXsyLDR9XGIvaSxhbGlhczoibnVtYmVyIn0sImJpbmFyeS1udW1iZXIiOntwYXR0ZXJuOi8jPyVbMDFdK1xiLyxhbGlhczoibnVtYmVyIn0sImRlY2ltYWwtbnVtYmVyIjp7cGF0dGVybjovIz9cYlxkK1xiLyxhbGlhczoibnVtYmVyIn0scmVnaXN0ZXI6e3BhdHRlcm46L1xiW2Fjem52c2h0aXh5XVxiL2ksYWxpYXM6InZhcmlhYmxlIn0sb3BlcmF0b3I6Lz4+PT98PDw9P3wmJj98XHxcfD98Wy0rKi8lJnxeIT08Pj9dPT8vLHB1bmN0dWF0aW9uOi9bKCksOl0vfX1yZXR1cm4gaHV9dmFyIGJ1LFpTO2Z1bmN0aW9uIFdzKCl7aWYoWlMpcmV0dXJuIGJ1O1pTPTEsYnU9ZSxlLmRpc3BsYXlOYW1lPSJjc2hhcnAiLGUuYWxpYXNlcz1bImRvdG5ldCIsImNzIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7ZnVuY3Rpb24gcigkLGope3JldHVybiAkLnJlcGxhY2UoLzw8KFxkKyk+Pi9nLGZ1bmN0aW9uKHgsdGUpe3JldHVybiIoPzoiK2pbK3RlXSsiKSJ9KX1mdW5jdGlvbiBhKCQsaix4KXtyZXR1cm4gUmVnRXhwKHIoJCxqKSwiIil9ZnVuY3Rpb24gaSgkLGope2Zvcih2YXIgeD0wO3g8ajt4KyspJD0kLnJlcGxhY2UoLzw8c2VsZj4+L2csZnVuY3Rpb24oKXtyZXR1cm4iKD86IiskKyIpIn0pO3JldHVybiAkLnJlcGxhY2UoLzw8c2VsZj4+L2csIlteXFxzXFxTXSIpfXZhciBvPXt0eXBlOiJib29sIGJ5dGUgY2hhciBkZWNpbWFsIGRvdWJsZSBkeW5hbWljIGZsb2F0IGludCBsb25nIG9iamVjdCBzYnl0ZSBzaG9ydCBzdHJpbmcgdWludCB1bG9uZyB1c2hvcnQgdmFyIHZvaWQiLHR5cGVEZWNsYXJhdGlvbjoiY2xhc3MgZW51bSBpbnRlcmZhY2UgcmVjb3JkIHN0cnVjdCIsY29udGV4dHVhbDoiYWRkIGFsaWFzIGFuZCBhc2NlbmRpbmcgYXN5bmMgYXdhaXQgYnkgZGVzY2VuZGluZyBmcm9tKD89XFxzKig/Olxcd3wkKSkgZ2V0IGdsb2JhbCBncm91cCBpbnRvIGluaXQoPz1cXHMqOykgam9pbiBsZXQgbmFtZW9mIG5vdCBub3RudWxsIG9uIG9yIG9yZGVyYnkgcGFydGlhbCByZW1vdmUgc2VsZWN0IHNldCB1bm1hbmFnZWQgdmFsdWUgd2hlbiB3aGVyZSB3aXRoKD89XFxzKnspIixvdGhlcjoiYWJzdHJhY3QgYXMgYmFzZSBicmVhayBjYXNlIGNhdGNoIGNoZWNrZWQgY29uc3QgY29udGludWUgZGVmYXVsdCBkZWxlZ2F0ZSBkbyBlbHNlIGV2ZW50IGV4cGxpY2l0IGV4dGVybiBmaW5hbGx5IGZpeGVkIGZvciBmb3JlYWNoIGdvdG8gaWYgaW1wbGljaXQgaW4gaW50ZXJuYWwgaXMgbG9jayBuYW1lc3BhY2UgbmV3IG51bGwgb3BlcmF0b3Igb3V0IG92ZXJyaWRlIHBhcmFtcyBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgcmVhZG9ubHkgcmVmIHJldHVybiBzZWFsZWQgc2l6ZW9mIHN0YWNrYWxsb2Mgc3RhdGljIHN3aXRjaCB0aGlzIHRocm93IHRyeSB0eXBlb2YgdW5jaGVja2VkIHVuc2FmZSB1c2luZyB2aXJ0dWFsIHZvbGF0aWxlIHdoaWxlIHlpZWxkIn07ZnVuY3Rpb24gcygkKXtyZXR1cm4iXFxiKD86IiskLnRyaW0oKS5yZXBsYWNlKC8gL2csInwiKSsiKVxcYiJ9dmFyIGw9cyhvLnR5cGVEZWNsYXJhdGlvbiksdT1SZWdFeHAocyhvLnR5cGUrIiAiK28udHlwZURlY2xhcmF0aW9uKyIgIitvLmNvbnRleHR1YWwrIiAiK28ub3RoZXIpKSxjPXMoby50eXBlRGVjbGFyYXRpb24rIiAiK28uY29udGV4dHVhbCsiICIrby5vdGhlciksZD1zKG8udHlwZSsiICIrby50eXBlRGVjbGFyYXRpb24rIiAiK28ub3RoZXIpLHA9aSgvPCg/OltePD47PStcLSovJSZ8Xl18PDxzZWxmPj4pKj4vLnNvdXJjZSwyKSxmPWkoL1woKD86W14oKV18PDxzZWxmPj4pKlwpLy5zb3VyY2UsMikseT0vQD9cYltBLVphLXpfXVx3KlxiLy5zb3VyY2UsYj1yKC88PDA+Pig/OlxzKjw8MT4+KT8vLnNvdXJjZSxbeSxwXSksQT1yKC8oPyE8PDA+Pik8PDE+Pig/OlxzKlwuXHMqPDwxPj4pKi8uc291cmNlLFtjLGJdKSxoPS9cW1xzKig/OixccyopKlxdLy5zb3VyY2UsbT1yKC88PDA+Pig/OlxzKig/Olw/XHMqKT88PDE+PikqKD86XHMqXD8pPy8uc291cmNlLFtBLGhdKSxnPXIoL1teLCgpPD5bXF07PStcLSovJSZ8Xl18PDwwPj58PDwxPj58PDwyPj4vLnNvdXJjZSxbcCxmLGhdKSxFPXIoL1woPDwwPj4rKD86LDw8MD4+KykrXCkvLnNvdXJjZSxbZ10pLFQ9cigvKD86PDwwPj58PDwxPj4pKD86XHMqKD86XD9ccyopPzw8Mj4+KSooPzpccypcPyk/Ly5zb3VyY2UsW0UsQSxoXSksdj17a2V5d29yZDp1LHB1bmN0dWF0aW9uOi9bPD4oKT8sLjpbXF1dL30sUj0vJyg/OlteXHJcbidcXF18XFwufFxcW1V1eF1bXGRhLWZBLUZdezEsOH0pJy8uc291cmNlLF89LyIoPzpcXC58W15cXCJcclxuXSkqIi8uc291cmNlLEk9L0AiKD86IiJ8XFxbXHNcU118W15cXCJdKSoiKD8hIikvLnNvdXJjZTtuLmxhbmd1YWdlcy5jc2hhcnA9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzpbe3BhdHRlcm46YSgvKF58W14kXFxdKTw8MD4+Ly5zb3VyY2UsW0ldKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46YSgvKF58W15AJFxcXSk8PDA+Pi8uc291cmNlLFtfXSksbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSwiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOmEoLyhcYnVzaW5nXHMrc3RhdGljXHMrKTw8MD4+KD89XHMqOykvLnNvdXJjZSxbQV0pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnZ9LHtwYXR0ZXJuOmEoLyhcYnVzaW5nXHMrPDwwPj5ccyo9XHMqKTw8MT4+KD89XHMqOykvLnNvdXJjZSxbeSxUXSksbG9va2JlaGluZDohMCxpbnNpZGU6dn0se3BhdHRlcm46YSgvKFxidXNpbmdccyspPDwwPj4oPz1ccyo9KS8uc291cmNlLFt5XSksbG9va2JlaGluZDohMH0se3BhdHRlcm46YSgvKFxiPDwwPj5ccyspPDwxPj4vLnNvdXJjZSxbbCxiXSksbG9va2JlaGluZDohMCxpbnNpZGU6dn0se3BhdHRlcm46YSgvKFxiY2F0Y2hccypcKFxzKik8PDA+Pi8uc291cmNlLFtBXSksbG9va2JlaGluZDohMCxpbnNpZGU6dn0se3BhdHRlcm46YSgvKFxid2hlcmVccyspPDwwPj4vLnNvdXJjZSxbeV0pLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOmEoLyhcYig/OmlzKD86XHMrbm90KT98YXMpXHMrKTw8MD4+Ly5zb3VyY2UsW21dKSxsb29rYmVoaW5kOiEwLGluc2lkZTp2fSx7cGF0dGVybjphKC9cYjw8MD4+KD89XHMrKD8hPDwxPj58d2l0aFxzKlx7KTw8Mj4+KD86XHMqWz0sOzp7KVxdXXxccysoPzppbnx3aGVuKVxiKSkvLnNvdXJjZSxbVCxkLHldKSxpbnNpZGU6dn1dLGtleXdvcmQ6dSxudW1iZXI6Lyg/OlxiMCg/OnhbXGRhLWZfXSpbXGRhLWZdfGJbMDFfXSpbMDFdKXwoPzpcQlwuXGQrKD86XytcZCspKnxcYlxkKyg/Ol8rXGQrKSooPzpcLlxkKyg/Ol8rXGQrKSopPykoPzplWy0rXT9cZCsoPzpfK1xkKykqKT8pKD86W2RmbG11XXxsdXx1bCk/XGIvaSxvcGVyYXRvcjovPj49P3w8PD0/fFstPV0+fChbLSsmfF0pXDF8fnxcP1w/PT98Wy0rKi8lJnxeIT08Pl09Py8scHVuY3R1YXRpb246L1w/XC4/fDo6fFt7fVtcXTsoKSwuOl0vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc2hhcnAiLCJudW1iZXIiLHtyYW5nZTp7cGF0dGVybjovXC5cLi8sYWxpYXM6Im9wZXJhdG9yIn19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNzaGFycCIsInB1bmN0dWF0aW9uIix7Im5hbWVkLXBhcmFtZXRlciI6e3BhdHRlcm46YSgvKFsoLF1ccyopPDwwPj4oPz1ccyo6KS8uc291cmNlLFt5XSksbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3NoYXJwIiwiY2xhc3MtbmFtZSIse25hbWVzcGFjZTp7cGF0dGVybjphKC8oXGIoPzpuYW1lc3BhY2V8dXNpbmcpXHMrKTw8MD4+KD86XHMqXC5ccyo8PDA+PikqKD89XHMqWzt7XSkvLnNvdXJjZSxbeV0pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sInR5cGUtZXhwcmVzc2lvbiI6e3BhdHRlcm46YSgvKFxiKD86ZGVmYXVsdHxzaXplb2Z8dHlwZW9mKVxzKlwoXHMqKD8hXHMpKSg/OlteKClcc118XHMoPyFccyl8PDwwPj4pKig/PVxzKlwpKS8uc291cmNlLFtmXSksbG9va2JlaGluZDohMCxhbGlhczoiY2xhc3MtbmFtZSIsaW5zaWRlOnZ9LCJyZXR1cm4tdHlwZSI6e3BhdHRlcm46YSgvPDwwPj4oPz1ccysoPzo8PDE+PlxzKig/Oj0+fFsoe118XC5ccyp0aGlzXHMqXFspfHRoaXNccypcWykpLy5zb3VyY2UsW1QsQV0pLGluc2lkZTp2LGFsaWFzOiJjbGFzcy1uYW1lIn0sImNvbnN0cnVjdG9yLWludm9jYXRpb24iOntwYXR0ZXJuOmEoLyhcYm5ld1xzKyk8PDA+Pig/PVxzKltbKHtdKS8uc291cmNlLFtUXSksbG9va2JlaGluZDohMCxpbnNpZGU6dixhbGlhczoiY2xhc3MtbmFtZSJ9LCJnZW5lcmljLW1ldGhvZCI6e3BhdHRlcm46YSgvPDwwPj5ccyo8PDE+Pig/PVxzKlwoKS8uc291cmNlLFt5LHBdKSxpbnNpZGU6e2Z1bmN0aW9uOmEoL148PDA+Pi8uc291cmNlLFt5XSksZ2VuZXJpYzp7cGF0dGVybjpSZWdFeHAocCksYWxpYXM6ImNsYXNzLW5hbWUiLGluc2lkZTp2fX19LCJ0eXBlLWxpc3QiOntwYXR0ZXJuOmEoL1xiKCg/Ojw8MD4+XHMrPDwxPj58cmVjb3JkXHMrPDwxPj5ccyo8PDU+Pnx3aGVyZVxzKzw8Mj4+KVxzKjpccyopKD86PDwzPj58PDw0Pj58PDwxPj5ccyo8PDU+Pnw8PDY+PikoPzpccyosXHMqKD86PDwzPj58PDw0Pj58PDw2Pj4pKSooPz1ccyooPzp3aGVyZXxbeztdfD0+fCQpKS8uc291cmNlLFtsLGIseSxULHUuc291cmNlLGYsL1xibmV3XHMqXChccypcKS8uc291cmNlXSksbG9va2JlaGluZDohMCxpbnNpZGU6eyJyZWNvcmQtYXJndW1lbnRzIjp7cGF0dGVybjphKC8oXig/IW5ld1xzKlwoKTw8MD4+XHMqKTw8MT4+Ly5zb3VyY2UsW2IsZl0pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpuLmxhbmd1YWdlcy5jc2hhcnB9LGtleXdvcmQ6dSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46UmVnRXhwKFQpLGdyZWVkeTohMCxpbnNpZGU6dn0scHVuY3R1YXRpb246L1ssKCldL319LHByZXByb2Nlc3Nvcjp7cGF0dGVybjovKF5bXHQgXSopIy4qL20sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkiLGluc2lkZTp7ZGlyZWN0aXZlOntwYXR0ZXJuOi8oIylcYig/OmRlZmluZXxlbGlmfGVsc2V8ZW5kaWZ8ZW5kcmVnaW9ufGVycm9yfGlmfGxpbmV8bnVsbGFibGV8cHJhZ21hfHJlZ2lvbnx1bmRlZnx3YXJuaW5nKVxiLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn19fX0pO3ZhciBDPV8rInwiK1IsTD1yKC9cLyg/IVsqL10pfFwvXC9bXlxyXG5dKltcclxuXXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcL3w8PDA+Pi8uc291cmNlLFtDXSksRj1pKHIoL1teIicvKCldfDw8MD4+fFwoPDxzZWxmPj4qXCkvLnNvdXJjZSxbTF0pLDIpLHE9L1xiKD86YXNzZW1ibHl8ZXZlbnR8ZmllbGR8bWV0aG9kfG1vZHVsZXxwYXJhbXxwcm9wZXJ0eXxyZXR1cm58dHlwZSlcYi8uc291cmNlLFc9cigvPDwwPj4oPzpccypcKDw8MT4+KlwpKT8vLnNvdXJjZSxbQSxGXSk7bi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc2hhcnAiLCJjbGFzcy1uYW1lIix7YXR0cmlidXRlOntwYXR0ZXJuOmEoLygoPzpefFteXHNcdz4pP10pXHMqXFtccyopKD86PDwwPj5ccyo6XHMqKT88PDE+Pig/OlxzKixccyo8PDE+PikqKD89XHMqXF0pLy5zb3VyY2UsW3EsV10pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7dGFyZ2V0OntwYXR0ZXJuOmEoL148PDA+Pig/PVxzKjopLy5zb3VyY2UsW3FdKSxhbGlhczoia2V5d29yZCJ9LCJhdHRyaWJ1dGUtYXJndW1lbnRzIjp7cGF0dGVybjphKC9cKDw8MD4+KlwpLy5zb3VyY2UsW0ZdKSxpbnNpZGU6bi5sYW5ndWFnZXMuY3NoYXJwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46UmVnRXhwKEEpLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHB1bmN0dWF0aW9uOi9bOixdL319fSk7dmFyIEc9LzpbXn1cclxuXSsvLnNvdXJjZSxLPWkocigvW14iJy8oKV18PDwwPj58XCg8PHNlbGY+PipcKS8uc291cmNlLFtMXSksMiksVj1yKC9ceyg/IVx7KSg/Oig/IVt9Ol0pPDwwPj4pKjw8MT4+P1x9Ly5zb3VyY2UsW0ssR10pLE49aShyKC9bXiInLygpXXxcLyg/IVwqKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcL3w8PDA+PnxcKDw8c2VsZj4+KlwpLy5zb3VyY2UsW0NdKSwyKSxVPXIoL1x7KD8hXHspKD86KD8hW306XSk8PDA+PikqPDwxPj4/XH0vLnNvdXJjZSxbTixHXSk7ZnVuY3Rpb24gUygkLGope3JldHVybntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOmEoLygoPzpefFtee10pKD86XHtceykqKTw8MD4+Ly5zb3VyY2UsWyRdKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImZvcm1hdC1zdHJpbmciOntwYXR0ZXJuOmEoLyheXHsoPzooPyFbfTpdKTw8MD4+KSopPDwxPj4oPz1cfSQpLy5zb3VyY2UsW2osR10pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXjovfX0scHVuY3R1YXRpb246L15ce3xcfSQvLGV4cHJlc3Npb246e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1jc2hhcnAiLGluc2lkZTpuLmxhbmd1YWdlcy5jc2hhcnB9fX0sc3RyaW5nOi9bXHNcU10rL319bi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc2hhcnAiLCJzdHJpbmciLHsiaW50ZXJwb2xhdGlvbi1zdHJpbmciOlt7cGF0dGVybjphKC8oXnxbXlxcXSkoPzpcJEB8QFwkKSIoPzoiInxcXFtcc1xTXXxce1x7fDw8MD4+fFteXFx7Il0pKiIvLnNvdXJjZSxbVl0pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpTKFYsSyl9LHtwYXR0ZXJuOmEoLyhefFteQFxcXSlcJCIoPzpcXC58XHtce3w8PDA+PnxbXlxcIntdKSoiLy5zb3VyY2UsW1VdKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6UyhVLE4pfV0sY2hhcjp7cGF0dGVybjpSZWdFeHAoUiksZ3JlZWR5OiEwfX0pLG4ubGFuZ3VhZ2VzLmRvdG5ldD1uLmxhbmd1YWdlcy5jcz1uLmxhbmd1YWdlcy5jc2hhcnB9KSh0KX1yZXR1cm4gYnV9dmFyIHl1LFFTO2Z1bmN0aW9uIEQ0KCl7aWYoUVMpcmV0dXJuIHl1O1FTPTE7dmFyIGU9V3MoKTt5dT10LHQuZGlzcGxheU5hbWU9ImFzcG5ldCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxuLmxhbmd1YWdlcy5hc3BuZXQ9bi5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHsicGFnZS1kaXJlY3RpdmUiOntwYXR0ZXJuOi88JVxzKkAuKiU+LyxhbGlhczoidGFnIixpbnNpZGU6eyJwYWdlLWRpcmVjdGl2ZSI6e3BhdHRlcm46LzwlXHMqQFxzKig/OkFzc2VtYmx5fENvbnRyb2x8SW1wbGVtZW50c3xJbXBvcnR8TWFzdGVyKD86VHlwZSk/fE91dHB1dENhY2hlfFBhZ2V8UHJldmlvdXNQYWdlVHlwZXxSZWZlcmVuY2V8UmVnaXN0ZXIpP3wlPi9pLGFsaWFzOiJ0YWcifSxyZXN0Om4ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuaW5zaWRlfX0sZGlyZWN0aXZlOntwYXR0ZXJuOi88JS4qJT4vLGFsaWFzOiJ0YWciLGluc2lkZTp7ZGlyZWN0aXZlOntwYXR0ZXJuOi88JVxzKj9bJD0lIzpdezAsMn18JT4vLGFsaWFzOiJ0YWcifSxyZXN0Om4ubGFuZ3VhZ2VzLmNzaGFycH19fSksbi5sYW5ndWFnZXMuYXNwbmV0LnRhZy5wYXR0ZXJuPS88KD8hJSlcLz9bXlxzPlwvXSsoPzpccytbXlxzPlwvPV0rKD86PSg/OigifCcpKD86XFxbXHNcU118KD8hXDEpW15cXF0pKlwxfFteXHMnIj49XSspKT8pKlxzKlwvPz4vLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaW5zaWRlIiwicHVuY3R1YXRpb24iLHtkaXJlY3RpdmU6bi5sYW5ndWFnZXMuYXNwbmV0LmRpcmVjdGl2ZX0sbi5sYW5ndWFnZXMuYXNwbmV0LnRhZy5pbnNpZGVbImF0dHItdmFsdWUiXSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJhc3BuZXQiLCJjb21tZW50Iix7ImFzcC1jb21tZW50Ijp7cGF0dGVybjovPCUtLVtcc1xTXSo/LS0lPi8sYWxpYXM6WyJhc3AiLCJjb21tZW50Il19fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJhc3BuZXQiLG4ubGFuZ3VhZ2VzLmphdmFzY3JpcHQ/InNjcmlwdCI6InRhZyIseyJhc3Atc2NyaXB0Ijp7cGF0dGVybjovKDxzY3JpcHQoPz0uKnJ1bmF0PVsnIl0/c2VydmVyXGIpW14+XSo+KVtcc1xTXSo/KD89PFwvc2NyaXB0PikvaSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiYXNwIiwic2NyaXB0Il0saW5zaWRlOm4ubGFuZ3VhZ2VzLmNzaGFycHx8e319fSl9cmV0dXJuIHl1fXZhciB2dSxKUztmdW5jdGlvbiBNNCgpe2lmKEpTKXJldHVybiB2dTtKUz0xLHZ1PWUsZS5kaXNwbGF5TmFtZT0iYXV0b2hvdGtleSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuYXV0b2hvdGtleT17Y29tbWVudDpbe3BhdHRlcm46LyhefFxzKTsuKi8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyheW1x0IF0qKVwvXCooPzpbXHJcbl0oPyFbIFx0XSpcKlwvKXxbXlxyXG5dKSooPzpbXHJcbl1bIFx0XSpcKlwvKT8vbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHRhZzp7cGF0dGVybjovXihbIFx0XSopW15ccyxgIjpdKyg/PTpbIFx0XSokKS9tLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzovIig/OlteIlxuXHJdfCIiKSoiLyx2YXJpYWJsZTovJVx3KyUvLG51bWJlcjovXGIweFtcZEEtRmEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXS0/XGQrKT8vLG9wZXJhdG9yOi9cP3xcL1wvPz0/fDo9fFx8Wz18XT98Jls9Jl0/fFwrWz0rXT98LVs9LV0/fFwqWz0qXT98PCg/Ojw9P3w+fD0pP3w+Pj89P3xbLl4hPX5dPT98XGIoPzpBTkR8Tk9UfE9SKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLHNlbGVjdG9yOi9cYig/OkF1dG9UcmltfEJsb2NrSW5wdXR8QnJlYWt8Q2xpY2t8Q2xpcFdhaXR8Q29udGludWV8Q29udHJvbHxDb250cm9sQ2xpY2t8Q29udHJvbEZvY3VzfENvbnRyb2xHZXR8Q29udHJvbEdldEZvY3VzfENvbnRyb2xHZXRQb3N8Q29udHJvbEdldFRleHR8Q29udHJvbE1vdmV8Q29udHJvbFNlbmR8Q29udHJvbFNlbmRSYXd8Q29udHJvbFNldFRleHR8Q29vcmRNb2RlfENyaXRpY2FsfERldGVjdEhpZGRlblRleHR8RGV0ZWN0SGlkZGVuV2luZG93c3xEcml2ZXxEcml2ZUdldHxEcml2ZVNwYWNlRnJlZXxFbnZBZGR8RW52RGl2fEVudkdldHxFbnZNdWx0fEVudlNldHxFbnZTdWJ8RW52VXBkYXRlfEV4aXR8RXhpdEFwcHxGaWxlQXBwZW5kfEZpbGVDb3B5fEZpbGVDb3B5RGlyfEZpbGVDcmVhdGVEaXJ8RmlsZUNyZWF0ZVNob3J0Y3V0fEZpbGVEZWxldGV8RmlsZUVuY29kaW5nfEZpbGVHZXRBdHRyaWJ8RmlsZUdldFNob3J0Y3V0fEZpbGVHZXRTaXplfEZpbGVHZXRUaW1lfEZpbGVHZXRWZXJzaW9ufEZpbGVJbnN0YWxsfEZpbGVNb3ZlfEZpbGVNb3ZlRGlyfEZpbGVSZWFkfEZpbGVSZWFkTGluZXxGaWxlUmVjeWNsZXxGaWxlUmVjeWNsZUVtcHR5fEZpbGVSZW1vdmVEaXJ8RmlsZVNlbGVjdEZpbGV8RmlsZVNlbGVjdEZvbGRlcnxGaWxlU2V0QXR0cmlifEZpbGVTZXRUaW1lfEZvcm1hdFRpbWV8R2V0S2V5U3RhdGV8R29zdWJ8R290b3xHcm91cEFjdGl2YXRlfEdyb3VwQWRkfEdyb3VwQ2xvc2V8R3JvdXBEZWFjdGl2YXRlfEd1aXxHdWlDb250cm9sfEd1aUNvbnRyb2xHZXR8SG90a2V5fEltYWdlU2VhcmNofEluaURlbGV0ZXxJbmlSZWFkfEluaVdyaXRlfElucHV0fElucHV0Qm94fEtleVdhaXR8TGlzdEhvdGtleXN8TGlzdExpbmVzfExpc3RWYXJzfExvb3B8TWVudXxNb3VzZUNsaWNrfE1vdXNlQ2xpY2tEcmFnfE1vdXNlR2V0UG9zfE1vdXNlTW92ZXxNc2dCb3h8T25FeGl0fE91dHB1dERlYnVnfFBhdXNlfFBpeGVsR2V0Q29sb3J8UGl4ZWxTZWFyY2h8UG9zdE1lc3NhZ2V8UHJvY2Vzc3xQcm9ncmVzc3xSYW5kb218UmVnRGVsZXRlfFJlZ1JlYWR8UmVnV3JpdGV8UmVsb2FkfFJlcGVhdHxSZXR1cm58UnVufFJ1bkFzfFJ1bldhaXR8U2VuZHxTZW5kRXZlbnR8U2VuZElucHV0fFNlbmRNZXNzYWdlfFNlbmRNb2RlfFNlbmRQbGF5fFNlbmRSYXd8U2V0QmF0Y2hMaW5lc3xTZXRDYXBzbG9ja1N0YXRlfFNldENvbnRyb2xEZWxheXxTZXREZWZhdWx0TW91c2VTcGVlZHxTZXRFbnZ8U2V0Rm9ybWF0fFNldEtleURlbGF5fFNldE1vdXNlRGVsYXl8U2V0TnVtbG9ja1N0YXRlfFNldFJlZ1ZpZXd8U2V0U2Nyb2xsTG9ja1N0YXRlfFNldFN0b3JlQ2Fwc2xvY2tNb2RlfFNldFRpbWVyfFNldFRpdGxlTWF0Y2hNb2RlfFNldFdpbkRlbGF5fFNldFdvcmtpbmdEaXJ8U2h1dGRvd258U2xlZXB8U29ydHxTb3VuZEJlZXB8U291bmRHZXR8U291bmRHZXRXYXZlVm9sdW1lfFNvdW5kUGxheXxTb3VuZFNldHxTb3VuZFNldFdhdmVWb2x1bWV8U3BsYXNoSW1hZ2V8U3BsYXNoVGV4dE9mZnxTcGxhc2hUZXh0T258U3BsaXRQYXRofFN0YXR1c0JhckdldFRleHR8U3RhdHVzQmFyV2FpdHxTdHJpbmdDYXNlU2Vuc2V8U3RyaW5nR2V0UG9zfFN0cmluZ0xlZnR8U3RyaW5nTGVufFN0cmluZ0xvd2VyfFN0cmluZ01pZHxTdHJpbmdSZXBsYWNlfFN0cmluZ1JpZ2h0fFN0cmluZ1NwbGl0fFN0cmluZ1RyaW1MZWZ0fFN0cmluZ1RyaW1SaWdodHxTdHJpbmdVcHBlcnxTdXNwZW5kfFN5c0dldHxUaHJlYWR8VG9vbFRpcHxUcmFuc2Zvcm18VHJheVRpcHxVUkxEb3dubG9hZFRvRmlsZXxXaW5BY3RpdmF0ZXxXaW5BY3RpdmF0ZUJvdHRvbXxXaW5DbG9zZXxXaW5HZXR8V2luR2V0QWN0aXZlU3RhdHN8V2luR2V0QWN0aXZlVGl0bGV8V2luR2V0Q2xhc3N8V2luR2V0UG9zfFdpbkdldFRleHR8V2luR2V0VGl0bGV8V2luSGlkZXxXaW5LaWxsfFdpbk1heGltaXplfFdpbk1lbnVTZWxlY3RJdGVtfFdpbk1pbmltaXplfFdpbk1pbmltaXplQWxsfFdpbk1pbmltaXplQWxsVW5kb3xXaW5Nb3ZlfFdpblJlc3RvcmV8V2luU2V0fFdpblNldFRpdGxlfFdpblNob3d8V2luV2FpdHxXaW5XYWl0QWN0aXZlfFdpbldhaXRDbG9zZXxXaW5XYWl0Tm90QWN0aXZlKVxiL2ksY29uc3RhbnQ6L1xiKD86YV9haGtwYXRofGFfYWhrdmVyc2lvbnxhX2FwcGRhdGF8YV9hcHBkYXRhY29tbW9ufGFfYXV0b3RyaW18YV9iYXRjaGxpbmVzfGFfY2FyZXR4fGFfY2FyZXR5fGFfY29tcHV0ZXJuYW1lfGFfY29udHJvbGRlbGF5fGFfY3Vyc29yfGFfZGR8YV9kZGR8YV9kZGRkfGFfZGVmYXVsdG1vdXNlc3BlZWR8YV9kZXNrdG9wfGFfZGVza3RvcGNvbW1vbnxhX2RldGVjdGhpZGRlbnRleHR8YV9kZXRlY3RoaWRkZW53aW5kb3dzfGFfZW5kY2hhcnxhX2V2ZW50aW5mb3xhX2V4aXRyZWFzb258YV9maWxlZW5jb2Rpbmd8YV9mb3JtYXRmbG9hdHxhX2Zvcm1hdGludGVnZXJ8YV9ndWl8YV9ndWljb250cm9sfGFfZ3VpY29udHJvbGV2ZW50fGFfZ3VpZXZlbnR8YV9ndWloZWlnaHR8YV9ndWl3aWR0aHxhX2d1aXh8YV9ndWl5fGFfaG91cnxhX2ljb25maWxlfGFfaWNvbmhpZGRlbnxhX2ljb25udW1iZXJ8YV9pY29udGlwfGFfaW5kZXh8YV9pcGFkZHJlc3MxfGFfaXBhZGRyZXNzMnxhX2lwYWRkcmVzczN8YV9pcGFkZHJlc3M0fGFfaXM2NGJpdG9zfGFfaXNhZG1pbnxhX2lzY29tcGlsZWR8YV9pc2NyaXRpY2FsfGFfaXNwYXVzZWR8YV9pc3N1c3BlbmRlZHxhX2lzdW5pY29kZXxhX2tleWRlbGF5fGFfbGFuZ3VhZ2V8YV9sYXN0ZXJyb3J8YV9saW5lZmlsZXxhX2xpbmVudW1iZXJ8YV9sb29wZmllbGR8YV9sb29wZmlsZWF0dHJpYnxhX2xvb3BmaWxlZGlyfGFfbG9vcGZpbGVleHR8YV9sb29wZmlsZWZ1bGxwYXRofGFfbG9vcGZpbGVsb25ncGF0aHxhX2xvb3BmaWxlbmFtZXxhX2xvb3BmaWxlc2hvcnRuYW1lfGFfbG9vcGZpbGVzaG9ydHBhdGh8YV9sb29wZmlsZXNpemV8YV9sb29wZmlsZXNpemVrYnxhX2xvb3BmaWxlc2l6ZW1ifGFfbG9vcGZpbGV0aW1lYWNjZXNzZWR8YV9sb29wZmlsZXRpbWVjcmVhdGVkfGFfbG9vcGZpbGV0aW1lbW9kaWZpZWR8YV9sb29wcmVhZGxpbmV8YV9sb29wcmVna2V5fGFfbG9vcHJlZ25hbWV8YV9sb29wcmVnc3Via2V5fGFfbG9vcHJlZ3RpbWVtb2RpZmllZHxhX2xvb3ByZWd0eXBlfGFfbWRheXxhX21pbnxhX21tfGFfbW1tfGFfbW1tbXxhX21vbnxhX21vdXNlZGVsYXl8YV9tc2VjfGFfbXlkb2N1bWVudHN8YV9ub3d8YV9ub3d1dGN8YV9udW1iYXRjaGxpbmVzfGFfb3N0eXBlfGFfb3N2ZXJzaW9ufGFfcHJpb3Job3RrZXl8YV9wcmlvcmtleXxhX3Byb2dyYW1maWxlc3xhX3Byb2dyYW1zfGFfcHJvZ3JhbXNjb21tb258YV9wdHJzaXplfGFfcmVndmlld3xhX3NjcmVlbmRwaXxhX3NjcmVlbmhlaWdodHxhX3NjcmVlbndpZHRofGFfc2NyaXB0ZGlyfGFfc2NyaXB0ZnVsbHBhdGh8YV9zY3JpcHRod25kfGFfc2NyaXB0bmFtZXxhX3NlY3xhX3NwYWNlfGFfc3RhcnRtZW51fGFfc3RhcnRtZW51Y29tbW9ufGFfc3RhcnR1cHxhX3N0YXJ0dXBjb21tb258YV9zdHJpbmdjYXNlc2Vuc2V8YV90YWJ8YV90ZW1wfGFfdGhpc2Z1bmN8YV90aGlzaG90a2V5fGFfdGhpc2xhYmVsfGFfdGhpc21lbnV8YV90aGlzbWVudWl0ZW18YV90aGlzbWVudWl0ZW1wb3N8YV90aWNrY291bnR8YV90aW1laWRsZXxhX3RpbWVpZGxlcGh5c2ljYWx8YV90aW1lc2luY2VwcmlvcmhvdGtleXxhX3RpbWVzaW5jZXRoaXNob3RrZXl8YV90aXRsZW1hdGNobW9kZXxhX3RpdGxlbWF0Y2htb2Rlc3BlZWR8YV91c2VybmFtZXxhX3dkYXl8YV93aW5kZWxheXxhX3dpbmRpcnxhX3dvcmtpbmdkaXJ8YV95ZGF5fGFfeWVhcnxhX3l3ZWVrfGFfeXl5eXxjbGlwYm9hcmR8Y2xpcGJvYXJkYWxsfGNvbXNwZWN8ZXJyb3JsZXZlbHxwcm9ncmFtZmlsZXMpXGIvaSxidWlsdGluOi9cYig/OmFic3xhY29zfGFzY3xhc2lufGF0YW58Y2VpbHxjaHJ8Y2xhc3N8Y29tb2JqYWN0aXZlfGNvbW9iamFycmF5fGNvbW9iamNvbm5lY3R8Y29tb2JqY3JlYXRlfGNvbW9iamVycm9yfGNvbW9iamZsYWdzfGNvbW9iamdldHxjb21vYmpxdWVyeXxjb21vYmp0eXBlfGNvbW9ianZhbHVlfGNvc3xkbGxjYWxsfGV4cHxmaWxlZXhpc3R8RmlsZW9wZW58Zmxvb3J8Zm9ybWF0fGlsX2FkZHxpbF9jcmVhdGV8aWxfZGVzdHJveXxpbnN0cnxpc2Z1bmN8aXNsYWJlbHxJc09iamVjdHxsbnxsb2d8bHRyaW18bHZfYWRkfGx2X2RlbGV0ZXxsdl9kZWxldGVjb2x8bHZfZ2V0Y291bnR8bHZfZ2V0bmV4dHxsdl9nZXR0ZXh0fGx2X2luc2VydHxsdl9pbnNlcnRjb2x8bHZfbW9kaWZ5fGx2X21vZGlmeWNvbHxsdl9zZXRpbWFnZWxpc3R8bW9kfG51bWdldHxudW1wdXR8b25tZXNzYWdlfHJlZ2V4bWF0Y2h8cmVnZXhyZXBsYWNlfHJlZ2lzdGVyY2FsbGJhY2t8cm91bmR8cnRyaW18c2Jfc2V0aWNvbnxzYl9zZXRwYXJ0c3xzYl9zZXR0ZXh0fHNpbnxzcXJ0fHN0cmxlbnxzdHJyZXBsYWNlfHN0cnNwbGl0fHN1YnN0cnx0YW58dHZfYWRkfHR2X2RlbGV0ZXx0dl9nZXR8dHZfZ2V0Y2hpbGR8dHZfZ2V0Y291bnR8dHZfZ2V0bmV4dHx0dl9nZXRwYXJlbnR8dHZfZ2V0cHJldnx0dl9nZXRzZWxlY3Rpb258dHZfZ2V0dGV4dHx0dl9tb2RpZnl8dmFyc2V0Y2FwYWNpdHl8d2luYWN0aXZlfHdpbmV4aXN0fF9fQ2FsbHxfX0dldHxfX05ld3xfX1NldClcYi9pLHN5bWJvbDovXGIoPzphbHR8YWx0ZG93bnxhbHR1cHxhcHBza2V5fGJhY2tzcGFjZXxicm93c2VyX2JhY2t8YnJvd3Nlcl9mYXZvcml0ZXN8YnJvd3Nlcl9mb3J3YXJkfGJyb3dzZXJfaG9tZXxicm93c2VyX3JlZnJlc2h8YnJvd3Nlcl9zZWFyY2h8YnJvd3Nlcl9zdG9wfGJzfGNhcHNsb2NrfGN0cmx8Y3RybGJyZWFrfGN0cmxkb3dufGN0cmx1cHxkZWx8ZGVsZXRlfGRvd258ZW5kfGVudGVyfGVzY3xlc2NhcGV8ZjF8ZjEwfGYxMXxmMTJ8ZjEzfGYxNHxmMTV8ZjE2fGYxN3xmMTh8ZjE5fGYyfGYyMHxmMjF8ZjIyfGYyM3xmMjR8ZjN8ZjR8ZjV8ZjZ8Zjd8Zjh8Zjl8aG9tZXxpbnN8aW5zZXJ0fGpveTF8am95MTB8am95MTF8am95MTJ8am95MTN8am95MTR8am95MTV8am95MTZ8am95MTd8am95MTh8am95MTl8am95Mnxqb3kyMHxqb3kyMXxqb3kyMnxqb3kyM3xqb3kyNHxqb3kyNXxqb3kyNnxqb3kyN3xqb3kyOHxqb3kyOXxqb3kzfGpveTMwfGpveTMxfGpveTMyfGpveTR8am95NXxqb3k2fGpveTd8am95OHxqb3k5fGpveWF4ZXN8am95YnV0dG9uc3xqb3lpbmZvfGpveW5hbWV8am95cG92fGpveXJ8am95dXxqb3l2fGpveXh8am95eXxqb3l6fGxhbHR8bGF1bmNoX2FwcDF8bGF1bmNoX2FwcDJ8bGF1bmNoX21haWx8bGF1bmNoX21lZGlhfGxidXR0b258bGNvbnRyb2x8bGN0cmx8bGVmdHxsc2hpZnR8bHdpbnxsd2luZG93bnxsd2ludXB8bWJ1dHRvbnxtZWRpYV9uZXh0fG1lZGlhX3BsYXlfcGF1c2V8bWVkaWFfcHJldnxtZWRpYV9zdG9wfG51bWxvY2t8bnVtcGFkMHxudW1wYWQxfG51bXBhZDJ8bnVtcGFkM3xudW1wYWQ0fG51bXBhZDV8bnVtcGFkNnxudW1wYWQ3fG51bXBhZDh8bnVtcGFkOXxudW1wYWRhZGR8bnVtcGFkY2xlYXJ8bnVtcGFkZGVsfG51bXBhZGRpdnxudW1wYWRkb3R8bnVtcGFkZG93bnxudW1wYWRlbmR8bnVtcGFkZW50ZXJ8bnVtcGFkaG9tZXxudW1wYWRpbnN8bnVtcGFkbGVmdHxudW1wYWRtdWx0fG51bXBhZHBnZG58bnVtcGFkcGd1cHxudW1wYWRyaWdodHxudW1wYWRzdWJ8bnVtcGFkdXB8cGdkbnxwZ3VwfHByaW50c2NyZWVufHJhbHR8cmJ1dHRvbnxyY29udHJvbHxyY3RybHxyaWdodHxyc2hpZnR8cndpbnxyd2luZG93bnxyd2ludXB8c2Nyb2xsbG9ja3xzaGlmdHxzaGlmdGRvd258c2hpZnR1cHxzcGFjZXx0YWJ8dXB8dm9sdW1lX2Rvd258dm9sdW1lX211dGV8dm9sdW1lX3VwfHdoZWVsZG93bnx3aGVlbGxlZnR8d2hlZWxyaWdodHx3aGVlbHVwfHhidXR0b24xfHhidXR0b24yKVxiL2ksaW1wb3J0YW50Oi8jXGIoPzpBbGxvd1NhbWVMaW5lQ29tbWVudHN8Q2xpcGJvYXJkVGltZW91dHxDb21tZW50RmxhZ3xEZXJlZkNoYXJ8RXJyb3JTdGRPdXR8RXNjYXBlQ2hhcnxIb3RrZXlJbnRlcnZhbHxIb3RrZXlNb2RpZmllclRpbWVvdXR8SG90c3RyaW5nfElmfElmVGltZW91dHxJZldpbkFjdGl2ZXxJZldpbkV4aXN0fElmV2luTm90QWN0aXZlfElmV2luTm90RXhpc3R8SW5jbHVkZXxJbmNsdWRlQWdhaW58SW5wdXRMZXZlbHxJbnN0YWxsS2V5YmRIb29rfEluc3RhbGxNb3VzZUhvb2t8S2V5SGlzdG9yeXxNYXhIb3RrZXlzUGVySW50ZXJ2YWx8TWF4TWVtfE1heFRocmVhZHN8TWF4VGhyZWFkc0J1ZmZlcnxNYXhUaHJlYWRzUGVySG90a2V5fE1lbnVNYXNrS2V5fE5vRW52fE5vVHJheUljb258UGVyc2lzdGVudHxTaW5nbGVJbnN0YW5jZXxVc2VIb29rfFdhcm58V2luQWN0aXZhdGVGb3JjZSlcYi9pLGtleXdvcmQ6L1xiKD86QWJvcnR8QWJvdmVOb3JtYWx8QWRkfGFoa19jbGFzc3xhaGtfZXhlfGFoa19ncm91cHxhaGtfaWR8YWhrX3BpZHxBbGx8QWxudW18QWxwaGF8QWx0U3VibWl0fEFsdFRhYnxBbHRUYWJBbmRNZW51fEFsdFRhYk1lbnV8QWx0VGFiTWVudURpc21pc3N8QWx3YXlzT25Ub3B8QXV0b1NpemV8QmFja2dyb3VuZHxCYWNrZ3JvdW5kVHJhbnN8QmVsb3dOb3JtYWx8YmV0d2VlbnxCaXRBbmR8Qml0Tm90fEJpdE9yfEJpdFNoaWZ0TGVmdHxCaXRTaGlmdFJpZ2h0fEJpdFhPcnxCb2xkfEJvcmRlcnxCdXR0b258QnlSZWZ8Q2F0Y2h8Q2hlY2tib3h8Q2hlY2tlZHxDaGVja2VkR3JheXxDaG9vc2V8Q2hvb3NlU3RyaW5nfENsb3NlfENvbG9yfENvbWJvQm94fENvbnRhaW5zfENvbnRyb2xMaXN0fENvdW50fERhdGV8RGF0ZVRpbWV8RGF5c3xEREx8RGVmYXVsdHxEZWxldGVBbGx8RGVsaW1pdGVyfERlcmVmfERlc3Ryb3l8RGlnaXR8RGlzYWJsZXxEaXNhYmxlZHxEcm9wRG93bkxpc3R8RWRpdHxFamVjdHxFbHNlfEVuYWJsZXxFbmFibGVkfEVycm9yfEV4aXN0fEV4cGFuZHxFeFN0eWxlfEZpbGVTeXN0ZW18RmluYWxseXxGaXJzdHxGbGFzaHxGbG9hdHxGbG9hdEZhc3R8Rm9jdXN8Rm9udHxmb3J8Z2xvYmFsfEdyaWR8R3JvdXB8R3JvdXBCb3h8R3VpQ2xvc2V8R3VpQ29udGV4dE1lbnV8R3VpRHJvcEZpbGVzfEd1aUVzY2FwZXxHdWlTaXplfEhkcnxIaWRkZW58SGlkZXxIaWdofEhLQ0N8SEtDUnxIS0NVfEhLRVlfQ0xBU1NFU19ST09UfEhLRVlfQ1VSUkVOVF9DT05GSUd8SEtFWV9DVVJSRU5UX1VTRVJ8SEtFWV9MT0NBTF9NQUNISU5FfEhLRVlfVVNFUlN8SEtMTXxIS1V8SG91cnN8SFNjcm9sbHxJY29ufEljb25TbWFsbHxJRHxJRExhc3R8SWZ8SWZFcXVhbHxJZkV4aXN0fElmR3JlYXRlcnxJZkdyZWF0ZXJPckVxdWFsfElmSW5TdHJpbmd8SWZMZXNzfElmTGVzc09yRXF1YWx8SWZNc2dCb3h8SWZOb3RFcXVhbHxJZk5vdEV4aXN0fElmTm90SW5TdHJpbmd8SWZXaW5BY3RpdmV8SWZXaW5FeGlzdHxJZldpbk5vdEFjdGl2ZXxJZldpbk5vdEV4aXN0fElnbm9yZXxJbWFnZUxpc3R8aW58SW50ZWdlcnxJbnRlZ2VyRmFzdHxJbnRlcnJ1cHR8aXN8aXRhbGljfEpvaW58TGFiZWx8TGFzdEZvdW5kfExhc3RGb3VuZEV4aXN0fExpbWl0fExpbmVzfExpc3R8TGlzdEJveHxMaXN0Vmlld3xsb2NhbHxMb2NrfExvZ29mZnxMb3d8TG93ZXJ8TG93ZXJjYXNlfE1haW5XaW5kb3d8TWFyZ2lufE1heGltaXplfE1heGltaXplQm94fE1heFNpemV8TWluaW1pemV8TWluaW1pemVCb3h8TWluTWF4fE1pblNpemV8TWludXRlc3xNb250aENhbHxNb3VzZXxNb3ZlfE11bHRpfE5BfE5vfE5vQWN0aXZhdGV8Tm9EZWZhdWx0fE5vSGlkZXxOb0ljb258Tm9NYWluV2luZG93fG5vcm18Tm9ybWFsfE5vU29ydHxOb1NvcnRIZHJ8Tm9TdGFuZGFyZHxOb3R8Tm9UYWJ8Tm9UaW1lcnN8TnVtYmVyfE9mZnxPa3xPbnxPd25EaWFsb2dzfE93bmVyfFBhcnNlfFBhc3N3b3JkfFBpY3R1cmV8UGl4ZWx8UG9zfFBvd3xQcmlvcml0eXxQcm9jZXNzTmFtZXxSYWRpb3xSYW5nZXxSZWFkfFJlYWRPbmx5fFJlYWx0aW1lfFJlZHJhd3xSZWdpb258UkVHX0JJTkFSWXxSRUdfRFdPUkR8UkVHX0VYUEFORF9TWnxSRUdfTVVMVElfU1p8UkVHX1NafFJlbGF0aXZlfFJlbmFtZXxSZXBvcnR8UmVzaXplfFJlc3RvcmV8UmV0cnl8UkdCfFNjcmVlbnxTZWNvbmRzfFNlY3Rpb258U2VyaWFsfFNldExhYmVsfFNoaWZ0QWx0VGFifFNob3d8U2luZ2xlfFNsaWRlcnxTb3J0RGVzY3xTdGFuZGFyZHxzdGF0aWN8U3RhdHVzfFN0YXR1c0JhcnxTdGF0dXNDRHxzdHJpa2V8U3R5bGV8U3VibWl0fFN5c01lbnV8VGFiMnxUYWJTdG9wfFRleHR8VGhlbWV8VGhyb3d8VGlsZXxUb2dnbGVDaGVja3xUb2dnbGVFbmFibGV8VG9vbFdpbmRvd3xUb3B8VG9wbW9zdHxUcmFuc0NvbG9yfFRyYW5zcGFyZW50fFRyYXl8VHJlZVZpZXd8VHJ5fFRyeUFnYWlufFR5cGV8VW5DaGVja3x1bmRlcmxpbmV8VW5pY29kZXxVbmxvY2t8VW50aWx8VXBEb3dufFVwcGVyfFVwcGVyY2FzZXxVc2VFcnJvckxldmVsfFZpc3xWaXNGaXJzdHxWaXNpYmxlfFZTY3JvbGx8V2FpdHxXYWl0Q2xvc2V8V2FudEN0cmxBfFdhbnRGMnxXYW50UmV0dXJufFdoaWxlfFdyYXB8WGRpZ2l0fHhtfHhwfHhzfFllc3x5bXx5cHx5cylcYi9pLGZ1bmN0aW9uOi9bXigpOyBcdCxcbisqXC09Pz46XFxcLzwmJVxbXF1dKyg/PVwoKS8scHVuY3R1YXRpb246L1t7fVtcXSgpOixdL319cmV0dXJuIHZ1fXZhciBFdSxldztmdW5jdGlvbiBQNCgpe2lmKGV3KXJldHVybiBFdTtldz0xLEV1PWUsZS5kaXNwbGF5TmFtZT0iYXV0b2l0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5hdXRvaXQ9e2NvbW1lbnQ6Wy87LiovLHtwYXR0ZXJuOi8oXltcdCBdKikjKD86Y29tbWVudHMtc3RhcnR8Y3MpW1xzXFNdKj9eWyBcdF0qIyg/OmNlfGNvbW1lbnRzLWVuZCkvbSxsb29rYmVoaW5kOiEwfV0sdXJsOntwYXR0ZXJuOi8oXltcdCBdKiNpbmNsdWRlXHMrKSg/OjxbXlxyXG4+XSs+fCJbXlxyXG4iXSsiKS9tLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XDFcMXwoPyFcMSlbXlxyXG5dKSpcMS8sZ3JlZWR5OiEwLGluc2lkZTp7dmFyaWFibGU6LyhbJSRAXSlcdytcMS99fSxkaXJlY3RpdmU6e3BhdHRlcm46LyheW1x0IF0qKSNbXHctXSsvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sZnVuY3Rpb246L1xiXHcrKD89XCgpLyx2YXJpYWJsZTovWyRAXVx3Ky8sa2V5d29yZDovXGIoPzpDYXNlfENvbnN0fENvbnRpbnVlKD86Q2FzZXxMb29wKXxEZWZhdWx0fERpbXxEb3xFbHNlKD86SWYpP3xFbmQoPzpGdW5jfElmfFNlbGVjdHxTd2l0Y2h8V2l0aCl8RW51bXxFeGl0KD86TG9vcCk/fEZvcnxGdW5jfEdsb2JhbHxJZnxJbnxMb2NhbHxOZXh0fE51bGx8UmVEaW18U2VsZWN0fFN0YXRpY3xTdGVwfFN3aXRjaHxUaGVufFRvfFVudGlsfFZvbGF0aWxlfFdFbmR8V2hpbGV8V2l0aClcYi9pLG51bWJlcjovXGIoPzoweFtcZGEtZl0rfFxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspPylcYi9pLGJvb2xlYW46L1xiKD86RmFsc2V8VHJ1ZSlcYi9pLG9wZXJhdG9yOi88Wz0+XT98Wy0rKlwvPSY+XT0/fFs/Xl18XGIoPzpBbmR8Tm90fE9yKVxiL2kscHVuY3R1YXRpb246L1tcW1xdKCkuLDpdL319cmV0dXJuIEV1fXZhciBTdSx0dztmdW5jdGlvbiBGNCgpe2lmKHR3KXJldHVybiBTdTt0dz0xLFN1PWUsZS5kaXNwbGF5TmFtZT0iYXZpc3ludGgiLGUuYWxpYXNlcz1bImF2cyJdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIoYyxkKXtyZXR1cm4gYy5yZXBsYWNlKC88PChcZCspPj4vZyxmdW5jdGlvbihwLGYpe3JldHVybiBkWytmXX0pfWZ1bmN0aW9uIGEoYyxkLHApe3JldHVybiBSZWdFeHAocihjLGQpLHApfXZhciBpPS9ib29sfGNsaXB8ZmxvYXR8aW50fHN0cmluZ3x2YWwvLnNvdXJjZSxvPVsvaXMoPzpib29sfGNsaXB8ZmxvYXR8aW50fHN0cmluZyl8ZGVmaW5lZHwoPzooPzppbnRlcm5hbCk/ZnVuY3Rpb258dmFyKT9leGlzdHM/Ly5zb3VyY2UsL2FwcGx5fGFzc2VydHxkZWZhdWx0fGV2YWx8aW1wb3J0fG5vcHxzZWxlY3R8dW5kZWZpbmVkLy5zb3VyY2UsL29wdF8oPzphbGxvd2Zsb2F0YXVkaW98YXZpcGFkc2NhbmxpbmVzfGR3Y2hhbm5lbG1hc2t8ZW5hYmxlXyg/OmI2NGF8cGxhbmFydG9wYWNrZWRyZ2J8djIxMHx5M18xMF8xMHx5M18xMF8xNil8dXNld2F2ZWV4dGVuc2libGV8dmR1YnBsYW5hcmhhY2spfHNldCg/OmNhY2hlbW9kZXxtYXhjcHV8bWVtb3J5bWF4fHBsYW5hcmxlZ2FjeWFsaWdubWVudHx3b3JraW5nZGlyKS8uc291cmNlLC9oZXgoPzp2YWx1ZSk/fHZhbHVlLy5zb3VyY2UsL2Fic3xjZWlsfGNvbnRpbnVlZCg/OmRlbm9taW5hdG9yfG51bWVyYXRvcik/fGV4cHxmbG9vcnxmbW9kfGZyYWN8bG9nKD86MTApP3xtYXh8bWlufG11bGRpdnxwaXxwb3d8cmFuZHxyb3VuZHxzaWdufHNwbGluZXxzcXJ0Ly5zb3VyY2UsL2E/c2luaD98YT9jb3NoP3xhP3RhblsyaF0/Ly5zb3VyY2UsLyg/OmJpdCg/OmFuZHxub3R8eD9vcnxbbHJdP3NoaWZ0W2FzbHVdP3xzaFtscl18c2FbbHJdfFtscl1yb3RhdGVsP3xyb1tybF18dGU/c3R8c2V0KD86Y291bnQpP3xjbCg/OmVhKT9yfGNoKD86YW4pP2dlPykpLy5zb3VyY2UsL2F2ZXJhZ2UoPzpbYmdyXXxjaHJvbWFbdXZdfGx1bWEpfCg/OltyZ2JdfGNocm9tYVt1dl18bHVtYXxyZ2J8W3l1dl0oPz1kaWZmZXJlbmNlKD86ZnJvbXByZXZpb3VzfHRvbmV4dCkpKWRpZmZlcmVuY2UoPzpmcm9tcHJldmlvdXN8dG9uZXh0KT98W3l1dnJnYl1wbGFuZSg/Om1lZGlhbnxtaW58bWF4fG1pbm1heGRpZmZlcmVuY2UpLy5zb3VyY2UsL2dldHByb2Nlc3NpbmZvfGxvZ21zZ3xzY3JpcHQoPzpkaXIoPzp1dGY4KT98ZmlsZSg/OnV0ZjgpP3xuYW1lKD86dXRmOCk/KXxzZXRsb2dwYXJhbXMvLnNvdXJjZSwvY2hyfCg/OmZpbGx8ZmluZHxsZWZ0fG1pZHxyZXBsYWNlfHJldnxyaWdodClzdHJ8Zm9ybWF0fFtsdV1jYXNlfG9yZHxzdHIoPzpjbXBpP3xmcm9tdXRmOHxsZW58dG91dGY4KXx0aW1lfHRyaW0oPzphbGx8bGVmdHxyaWdodCkvLnNvdXJjZSwvaXN2ZXJzaW9ub3JncmVhdGVyfHZlcnNpb24oPzpudW1iZXJ8c3RyaW5nKS8uc291cmNlLC9idWlsZHBpeGVsdHlwZXxjb2xvcnNwYWNlbmFtZXRvcGl4ZWx0eXBlLy5zb3VyY2UsL2FkZGF1dG9sb2FkZGlyfG9uKD86Y3B1fGN1ZGEpfHByZWZldGNofHNldGZpbHRlcm10bW9kZS8uc291cmNlXS5qb2luKCJ8Iikscz1bL2hhcyg/OmF1ZGlvfHZpZGVvKS8uc291cmNlLC9oZWlnaHR8d2lkdGgvLnNvdXJjZSwvZnJhbWUoPzpjb3VudHxyYXRlKXxmcmFtZXJhdGUoPzpkZW5vbWluYXRvcnxudW1lcmF0b3IpLy5zb3VyY2UsL2dldHBhcml0eXxpcyg/OmZpZWxkfGZyYW1lKWJhc2VkLy5zb3VyY2UsL2JpdHNwZXJjb21wb25lbnR8Y29tcG9uZW50c2l6ZXxoYXNhbHBoYXxpcyg/OnBsYW5hcig/OnJnYmE/KT98aW50ZXJsZWF2ZWR8cmdiKD86MjR8MzJ8NDh8NjQpP3x5KD86OHx1KD86dmE/fHkyKSk/fHl2KD86MTJ8MTZ8MjR8NDExKXw0MjB8NDIyfDQ0NHxwYWNrZWRyZ2IpfG51bWNvbXBvbmVudHN8cGl4ZWx0eXBlLy5zb3VyY2UsL2F1ZGlvKD86Yml0c3xjaGFubmVsc3xkdXJhdGlvbnxsZW5ndGgoPzpbZnNdfGhpfGxvKT98cmF0ZSl8aXNhdWRpbyg/OmZsb2F0fGludCkvLnNvdXJjZV0uam9pbigifCIpLGw9Wy9hdmkoPzpmaWxlKT9zb3VyY2V8ZGlyZWN0c2hvd3NvdXJjZXxpbWFnZSg/OnJlYWRlcnxzb3VyY2V8c291cmNlYW5pbSl8b3BlbmRtbHNvdXJjZXxzZWdtZW50ZWQoPzphdmlzb3VyY2V8ZGlyZWN0c2hvd3NvdXJjZSl8d2F2c291cmNlLy5zb3VyY2UsL2NvbG9yeXV2fGNvbnZlcnRiYWNrdG95dXkyfGNvbnZlcnR0byg/OlJHQig/OjI0fDMyfDQ4fDY0KXwoPzpwbGFuYXIpP1JHQkE/fFk4P3xZVig/OjEyfDE2fDI0fDQxMSl8WVVWQT8oPzo0MTF8NDIwfDQyMnw0NDQpfFlVWTIpfGZpeGx1bWluYW5jZXxnclthZV15c2NhbGV8aW52ZXJ0fGxldmVsc3xsaW1pdGVyfG1lcmdlYT9yZ2J8bWVyZ2UoPzpjaHJvbWF8bHVtYSl8cmdiYWRqdXN0fHNob3coPzphbHBoYXxibHVlfGdyZWVufHJlZCl8c3dhcHV2fHR3ZWFrfFt1dl10b3k4P3x5dG91di8uc291cmNlLC8oPzpjb2xvcmtleXxyZXNldCltYXNrfGxheWVyfG1hc2soPzpocyk/fG1lcmdlfG92ZXJsYXl8c3VidHJhY3QvLnNvdXJjZSwvYWRkYm9yZGVyc3woPzpiaWN1YmljfGJpbGluZWFyfGJsYWNrbWFufGdhdXNzfGxhbmN6b3M0fGxhbmN6b3N8cG9pbnR8c2luY3xzcGxpbmUoPzoxNnwzNnw2NCkpcmVzaXplfGNyb3AoPzpib3R0b20pP3xmbGlwKD86aG9yaXpvbnRhbHx2ZXJ0aWNhbCl8KD86aG9yaXpvbnRhbHx2ZXJ0aWNhbCk/cmVkdWNlYnkyfGxldHRlcmJveHxza2V3cm93c3x0dXJuKD86MTgwfGxlZnR8cmlnaHQpLy5zb3VyY2UsL2JsdXJ8Zml4YnJva2VuY2hyb21hdXBzYW1wbGluZ3xnZW5lcmFsY29udm9sdXRpb258KD86c3BhdGlhbHx0ZW1wb3JhbClzb2Z0ZW58c2hhcnBlbi8uc291cmNlLC90cmltfCg/OnVuKT9hbGlnbmVkc3BsaWNlfCg/OmFzc3VtZXxhc3N1bWVzY2FsZWR8Y2hhbmdlfGNvbnZlcnQpRlBTfCg/OmRlbGV0ZXxkdXBsaWNhdGUpZnJhbWV8ZGlzc29sdmV8ZmFkZSg/OmlufGlvfG91dClbMDJdP3xmcmVlemVmcmFtZXxpbnRlcmxlYXZlfGxvb3B8cmV2ZXJzZXxzZWxlY3QoPzpldmVufG9kZHwoPzpyYW5nZSk/ZXZlcnkpLy5zb3VyY2UsL2Fzc3VtZVtidF1mZnxhc3N1bWUoPzpmaWVsZHxmcmFtZSliYXNlZHxib2J8Y29tcGxlbWVudHBhcml0eXxkb3VibGV3ZWF2ZXxwZWN1bGlhcmJsZW5kfHB1bGxkb3dufHNlcGFyYXRlKD86Y29sdW1uc3xmaWVsZHN8cm93cyl8c3dhcGZpZWxkc3x3ZWF2ZSg/OmNvbHVtbnN8cm93cyk/Ly5zb3VyY2UsL2FtcGxpZnkoPzpkYik/fGFzc3VtZXNhbXBsZXJhdGV8YXVkaW9kdWIoPzpleCk/fGF1ZGlvdHJpbXxjb252ZXJ0YXVkaW90byg/Oig/Ojh8MTZ8MjR8MzIpYml0fGZsb2F0KXxjb252ZXJ0dG9tb25vfGRlbGF5YXVkaW98ZW5zdXJldmJybXAzc3luY3xnZXQoPzpsZWZ0fHJpZ2h0KT9jaGFubmVsfGtpbGwoPzphdWRpb3x2aWRlbyl8bWVyZ2VjaGFubmVsc3xtaXhhdWRpb3xtb25vdG9zdGVyZW98bm9ybWFsaXplfHJlc2FtcGxlYXVkaW98c3NyY3xzdXBlcmVxfHRpbWVzdHJldGNoLy5zb3VyY2UsL2FuaW1hdGV8YXBwbHlyYW5nZXxjb25kaXRpb25hbCg/OmZpbHRlcnxyZWFkZXJ8c2VsZWN0KXxmcmFtZWV2YWx1YXRlfHNjcmlwdGNsaXB8dGNwKD86c2VydmVyfHNvdXJjZSl8d3JpdGVmaWxlKD86ZW5kfGlmfHN0YXJ0KT8vLnNvdXJjZSwvaW1hZ2V3cml0ZXIvLnNvdXJjZSwvYmxhY2tuZXNzfGJsYW5rY2xpcHxjb2xvcmJhcnMoPzpoZCk/fGNvbXBhcmV8ZHVtcGZpbHRlcmdyYXBofGVjaG98aGlzdG9ncmFtfGluZm98bWVzc2FnZWNsaXB8cHJlcm9sbHxzZXRncmFwaGFuYWx5c2lzfHNob3coPzpmcmFtZW51bWJlcnxzbXB0ZXx0aW1lKXxzaG93Zml2ZXZlcnNpb25zfHN0YWNrKD86aG9yaXpvbnRhbHx2ZXJ0aWNhbCl8c3VidGl0bGV8dG9uZXx2ZXJzaW9uLy5zb3VyY2VdLmpvaW4oInwiKSx1PVtvLHMsbF0uam9pbigifCIpO24ubGFuZ3VhZ2VzLmF2aXN5bnRoPXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXFtcKig/OlteXFsqXXxcWyg/IVwqKXxcKig/IVxdKXxcW1wqKD86W15cWypdfFxbKD8hXCopfFwqKD8hXF0pKSpcKlxdKSpcKlxdLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46LyhefFteXFxdKVwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXCRdKSMuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxhcmd1bWVudDp7cGF0dGVybjphKC9cYig/Ojw8MD4+KVxzKygiPylcdytcMS8uc291cmNlLFtpXSwiaSIpLGluc2lkZTp7a2V5d29yZDovXlx3Ky99fSwiYXJndW1lbnQtbGFiZWwiOntwYXR0ZXJuOi8oWywoXVtcc1xcXSopXHcrXHMqPSg/IT0pLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImFyZ3VtZW50LW5hbWUiOntwYXR0ZXJuOi9eXHcrLyxhbGlhczoicHVuY3R1YXRpb24ifSxwdW5jdHVhdGlvbjovPSQvfX0sc3RyaW5nOlt7cGF0dGVybjovIiIiW1xzXFNdKj8iIiIvLGdyZWVkeTohMH0se3BhdHRlcm46LyIoPzpcXCg/OlxyXG58W1xzXFNdKXxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITAsaW5zaWRlOntjb25zdGFudDp7cGF0dGVybjovXGIoPzpERUZBVUxUX01UX01PREV8KD86TUFJTlNDUklQVHxQUk9HUkFNfFNDUklQVClESVJ8KD86TUFDSElORXxVU0VSKV8oPzpDTEFTU0lDfFBMVVMpX1BMVUdJTlMpXGIvfX19XSx2YXJpYWJsZTovXGIoPzpsYXN0KVxiL2ksYm9vbGVhbjovXGIoPzpmYWxzZXxub3x0cnVlfHllcylcYi9pLGtleXdvcmQ6L1xiKD86Y2F0Y2h8ZWxzZXxmb3J8ZnVuY3Rpb258Z2xvYmFsfGlmfHJldHVybnx0cnl8d2hpbGV8X19FTkRfXylcYi9pLGNvbnN0YW50Oi9cYk1UXyg/Ok1VTFRJX0lOU1RBTkNFfE5JQ0VfRklMVEVSfFNFUklBTElaRUR8U1BFQ0lBTF9NVClcYi8sImJ1aWx0aW4tZnVuY3Rpb24iOntwYXR0ZXJuOmEoL1xiKD86PDwwPj4pXGIvLnNvdXJjZSxbdV0sImkiKSxhbGlhczoiZnVuY3Rpb24ifSwidHlwZS1jYXN0Ijp7cGF0dGVybjphKC9cYig/Ojw8MD4+KSg/PVxzKlwoKS8uc291cmNlLFtpXSwiaSIpLGFsaWFzOiJrZXl3b3JkIn0sZnVuY3Rpb246e3BhdHRlcm46L1xiW2Etel9dXHcqKD89XHMqXCgpfChcLilbYS16X11cdypcYi9pLGxvb2tiZWhpbmQ6ITB9LCJsaW5lLWNvbnRpbnVhdGlvbiI6e3BhdHRlcm46LyheWyBcdF0qKVxcfFxcKD89WyBcdF0qJCkvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LG51bWJlcjovXEJcJCg/OltcZGEtZl17Nn18W1xkYS1mXXs4fSlcYnwoPzooPzpcYnxcQi0pXGQrKD86XC5cZCopP1xifFxCXC5cZCtcYikvaSxvcGVyYXRvcjovXCtcKz98WyE9PD5dPT98JiZ8XHxcfHxbPzoqLyUtXS8scHVuY3R1YXRpb246L1t7fVxbXF0oKTssLl0vfSxuLmxhbmd1YWdlcy5hdnM9bi5sYW5ndWFnZXMuYXZpc3ludGh9KSh0KX1yZXR1cm4gU3V9dmFyIHd1LG53O2Z1bmN0aW9uIFU0KCl7aWYobncpcmV0dXJuIHd1O253PTEsd3U9ZSxlLmRpc3BsYXlOYW1lPSJhdnJvSWRsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlc1siYXZyby1pZGwiXT17Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oXnxbXlxcXSkiKD86W15cclxuIlxcXXxcXC4pKiIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxhbm5vdGF0aW9uOntwYXR0ZXJuOi9AKD86WyRcdy4tXXxgW15cclxuYF0rYCkrLyxncmVlZHk6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sImZ1bmN0aW9uLWlkZW50aWZpZXIiOntwYXR0ZXJuOi9gW15cclxuYF0rYCg/PVxzKlwoKS8sZ3JlZWR5OiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGlkZW50aWZpZXI6e3BhdHRlcm46L2BbXlxyXG5gXStgLyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKFxiKD86ZW51bXxlcnJvcnxwcm90b2NvbHxyZWNvcmR8dGhyb3dzKVxiXHMrKVskXHddKy8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86YXJyYXl8Ym9vbGVhbnxieXRlc3xkYXRlfGRlY2ltYWx8ZG91YmxlfGVudW18ZXJyb3J8ZmFsc2V8Zml4ZWR8ZmxvYXR8aWRsfGltcG9ydHxpbnR8bG9jYWxfdGltZXN0YW1wX21zfGxvbmd8bWFwfG51bGx8b25ld2F5fHByb3RvY29sfHJlY29yZHxzY2hlbWF8c3RyaW5nfHRocm93c3x0aW1lX21zfHRpbWVzdGFtcF9tc3x0cnVlfHVuaW9ufHV1aWR8dm9pZClcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOlt7cGF0dGVybjovKF58W15cdy5dKS0/KD86KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspP3wweCg/OlthLWYwLTldKyg/OlwuW2EtZjAtOV0qKT98XC5bYS1mMC05XSspKD86cFsrLV0/XGQrKT8pW2RmbF0/KD8hW1x3Ll0pL2ksbG9va2JlaGluZDohMH0sLy0/XGIoPzpJbmZpbml0eXxOYU4pXGIvXSxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246L1soKVxbXF17fTw+LjosOy1dL30sdC5sYW5ndWFnZXMuYXZkbD10Lmxhbmd1YWdlc1siYXZyby1pZGwiXX1yZXR1cm4gd3V9dmFyIFR1LHJ3O2Z1bmN0aW9uIGpDKCl7aWYocncpcmV0dXJuIFR1O3J3PTEsVHU9ZSxlLmRpc3BsYXlOYW1lPSJiYXNoIixlLmFsaWFzZXM9WyJzaGVsbCJdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPSJcXGIoPzpCQVNIfEJBU0hPUFRTfEJBU0hfQUxJQVNFU3xCQVNIX0FSR0N8QkFTSF9BUkdWfEJBU0hfQ01EU3xCQVNIX0NPTVBMRVRJT05fQ09NUEFUX0RJUnxCQVNIX0xJTkVOT3xCQVNIX1JFTUFUQ0h8QkFTSF9TT1VSQ0V8QkFTSF9WRVJTSU5GT3xCQVNIX1ZFUlNJT058Q09MT1JURVJNfENPTFVNTlN8Q09NUF9XT1JEQlJFQUtTfERCVVNfU0VTU0lPTl9CVVNfQUREUkVTU3xERUZBVUxUU19QQVRIfERFU0tUT1BfU0VTU0lPTnxESVJTVEFDS3xESVNQTEFZfEVVSUR8R0RNU0VTU0lPTnxHRE1fTEFOR3xHTk9NRV9LRVlSSU5HX0NPTlRST0x8R05PTUVfS0VZUklOR19QSUR8R1BHX0FHRU5UX0lORk98R1JPVVBTfEhJU1RDT05UUk9MfEhJU1RGSUxFfEhJU1RGSUxFU0laRXxISVNUU0laRXxIT01FfEhPU1ROQU1FfEhPU1RUWVBFfElGU3xJTlNUQU5DRXxKT0J8TEFOR3xMQU5HVUFHRXxMQ19BRERSRVNTfExDX0FMTHxMQ19JREVOVElGSUNBVElPTnxMQ19NRUFTVVJFTUVOVHxMQ19NT05FVEFSWXxMQ19OQU1FfExDX05VTUVSSUN8TENfUEFQRVJ8TENfVEVMRVBIT05FfExDX1RJTUV8TEVTU0NMT1NFfExFU1NPUEVOfExJTkVTfExPR05BTUV8TFNfQ09MT1JTfE1BQ0hUWVBFfE1BSUxDSEVDS3xNQU5EQVRPUllfUEFUSHxOT19BVF9CUklER0V8T0xEUFdEfE9QVEVSUnxPUFRJTkR8T1JCSVRfU09DS0VURElSfE9TVFlQRXxQQVBFUlNJWkV8UEFUSHxQSVBFU1RBVFVTfFBQSUR8UFMxfFBTMnxQUzN8UFM0fFBXRHxSQU5ET018UkVQTFl8U0VDT05EU3xTRUxJTlVYX0lOSVR8U0VTU0lPTnxTRVNTSU9OVFlQRXxTRVNTSU9OX01BTkFHRVJ8U0hFTEx8U0hFTExPUFRTfFNITFZMfFNTSF9BVVRIX1NPQ0t8VEVSTXxVSUR8VVBTVEFSVF9FVkVOVFN8VVBTVEFSVF9JTlNUQU5DRXxVUFNUQVJUX0pPQnxVUFNUQVJUX1NFU1NJT058VVNFUnxXSU5ET1dJRHxYQVVUSE9SSVRZfFhER19DT05GSUdfRElSU3xYREdfQ1VSUkVOVF9ERVNLVE9QfFhER19EQVRBX0RJUlN8WERHX0dSRUVURVJfREFUQV9ESVJ8WERHX01FTlVfUFJFRklYfFhER19SVU5USU1FX0RJUnxYREdfU0VBVHxYREdfU0VBVF9QQVRIfFhER19TRVNTSU9OX0RFU0tUT1B8WERHX1NFU1NJT05fSUR8WERHX1NFU1NJT05fUEFUSHxYREdfU0VTU0lPTl9UWVBFfFhER19WVE5SfFhNT0RJRklFUlMpXFxiIixhPXtwYXR0ZXJuOi8oXihbIiddPylcdytcMilbIFx0XStcUy4qLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiIsaW5zaWRlOm51bGx9LGk9e2Jhc2g6YSxlbnZpcm9ubWVudDp7cGF0dGVybjpSZWdFeHAoIlxcJCIrciksYWxpYXM6ImNvbnN0YW50In0sdmFyaWFibGU6W3twYXR0ZXJuOi9cJD9cKFwoW1xzXFNdKz9cKVwpLyxncmVlZHk6ITAsaW5zaWRlOnt2YXJpYWJsZTpbe3BhdHRlcm46LyheXCRcKFwoW1xzXFNdKylcKVwpLyxsb29rYmVoaW5kOiEwfSwvXlwkXChcKC9dLG51bWJlcjovXGIweFtcZEEtRmEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXS0/XGQrKT8vLG9wZXJhdG9yOi8tLXxcK1wrfFwqXCo9P3w8PD0/fD4+PT98JiZ8XHxcfHxbPSErXC0qLyU8Pl4mfF09P3xbP346XS8scHVuY3R1YXRpb246L1woXCg/fFwpXCk/fCx8Oy99fSx7cGF0dGVybjovXCRcKCg/OlwoW14pXStcKXxbXigpXSkrXCl8YFteYF0rYC8sZ3JlZWR5OiEwLGluc2lkZTp7dmFyaWFibGU6L15cJFwofF5gfFwpJHxgJC99fSx7cGF0dGVybjovXCRce1tefV0rXH0vLGdyZWVkeTohMCxpbnNpZGU6e29wZXJhdG9yOi86Wy09PytdP3xbIVwvXXwjIz98JSU/fFxeXF4/fCwsPy8scHVuY3R1YXRpb246L1tcW1xdXS8sZW52aXJvbm1lbnQ6e3BhdHRlcm46UmVnRXhwKCIoXFx7KSIrciksbG9va2JlaGluZDohMCxhbGlhczoiY29uc3RhbnQifX19LC9cJCg/Olx3K3xbIz8qIUAkXSkvXSxlbnRpdHk6L1xcKD86W2FiY2VFZm5ydHZcXCJdfE8/WzAtN117MSwzfXxVWzAtOWEtZkEtRl17OH18dVswLTlhLWZBLUZdezR9fHhbMC05YS1mQS1GXXsxLDJ9KS99O24ubGFuZ3VhZ2VzLmJhc2g9e3NoZWJhbmc6e3BhdHRlcm46L14jIVxzKlwvLiovLGFsaWFzOiJpbXBvcnRhbnQifSxjb21tZW50OntwYXR0ZXJuOi8oXnxbXiJ7XFwkXSkjLiovLGxvb2tiZWhpbmQ6ITB9LCJmdW5jdGlvbi1uYW1lIjpbe3BhdHRlcm46LyhcYmZ1bmN0aW9uXHMrKVtcdy1dKyg/PSg/OlxzKlwoPzpccypcKSk/XHMqXHspLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LHtwYXR0ZXJuOi9cYltcdy1dKyg/PVxzKlwoXHMqXClccypceykvLGFsaWFzOiJmdW5jdGlvbiJ9XSwiZm9yLW9yLXNlbGVjdCI6e3BhdHRlcm46LyhcYig/OmZvcnxzZWxlY3QpXHMrKVx3Kyg/PVxzK2luXHMpLyxhbGlhczoidmFyaWFibGUiLGxvb2tiZWhpbmQ6ITB9LCJhc3NpZ24tbGVmdCI6e3BhdHRlcm46LyhefFtcczt8Jl18Wzw+XVwoKVx3Kyg/PVwrPz0pLyxpbnNpZGU6e2Vudmlyb25tZW50OntwYXR0ZXJuOlJlZ0V4cCgiKF58W1xcczt8Jl18Wzw+XVxcKCkiK3IpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbnN0YW50In19LGFsaWFzOiJ2YXJpYWJsZSIsbG9va2JlaGluZDohMH0sc3RyaW5nOlt7cGF0dGVybjovKCg/Ol58W148XSk8PC0/XHMqKShcdyspXHNbXHNcU10qPyg/OlxyP1xufFxyKVwyLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6aX0se3BhdHRlcm46LygoPzpefFtePF0pPDwtP1xzKikoWyInXSkoXHcrKVwyXHNbXHNcU10qPyg/OlxyP1xufFxyKVwzLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2Jhc2g6YX19LHtwYXR0ZXJuOi8oXnxbXlxcXSg/OlxcXFwpKikiKD86XFxbXHNcU118XCRcKFteKV0rXCl8XCQoPyFcKCl8YFteYF0rYHxbXiJcXGAkXSkqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOml9LHtwYXR0ZXJuOi8oXnxbXiRcXF0pJ1teJ10qJy8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi9cJCcoPzpbXidcXF18XFxbXHNcU10pKicvLGdyZWVkeTohMCxpbnNpZGU6e2VudGl0eTppLmVudGl0eX19XSxlbnZpcm9ubWVudDp7cGF0dGVybjpSZWdFeHAoIlxcJD8iK3IpLGFsaWFzOiJjb25zdGFudCJ9LHZhcmlhYmxlOmkudmFyaWFibGUsZnVuY3Rpb246e3BhdHRlcm46LyhefFtcczt8Jl18Wzw+XVwoKSg/OmFkZHxhcHJvcG9zfGFwdHxhcHQtY2FjaGV8YXB0LWdldHxhcHRpdHVkZXxhc3BlbGx8YXV0b215c3FsYmFja3VwfGF3a3xiYXNlbmFtZXxiYXNofGJjfGJjb25zb2xlfGJnfGJ6aXAyfGNhbHxjYXR8Y2ZkaXNrfGNoZ3JwfGNoa2NvbmZpZ3xjaG1vZHxjaG93bnxjaHJvb3R8Y2tzdW18Y2xlYXJ8Y21wfGNvbHVtbnxjb21tfGNvbXBvc2VyfGNwfGNyb258Y3JvbnRhYnxjc3BsaXR8Y3VybHxjdXR8ZGF0ZXxkY3xkZHxkZHJlc2N1ZXxkZWJvb3RzdHJhcHxkZnxkaWZmfGRpZmYzfGRpZ3xkaXJ8ZGlyY29sb3JzfGRpcm5hbWV8ZGlyc3xkbWVzZ3xkb2NrZXJ8ZG9ja2VyLWNvbXBvc2V8ZHV8ZWdyZXB8ZWplY3R8ZW52fGV0aHRvb2x8ZXhwYW5kfGV4cGVjdHxleHByfGZkZm9ybWF0fGZkaXNrfGZnfGZncmVwfGZpbGV8ZmluZHxmbXR8Zm9sZHxmb3JtYXR8ZnJlZXxmc2NrfGZ0cHxmdXNlcnxnYXdrfGdpdHxncGFydGVkfGdyZXB8Z3JvdXBhZGR8Z3JvdXBkZWx8Z3JvdXBtb2R8Z3JvdXBzfGdydWItbWtjb25maWd8Z3ppcHxoYWx0fGhlYWR8aGd8aGlzdG9yeXxob3N0fGhvc3RuYW1lfGh0b3B8aWNvbnZ8aWR8aWZjb25maWd8aWZkb3dufGlmdXB8aW1wb3J0fGluc3RhbGx8aXB8am9ic3xqb2lufGtpbGx8a2lsbGFsbHxsZXNzfGxpbmt8bG58bG9jYXRlfGxvZ25hbWV8bG9ncm90YXRlfGxvb2t8bHBjfGxwcnxscHJpbnR8bHByaW50ZHxscHJpbnRxfGxwcm18bHN8bHNvZnxseW54fG1ha2V8bWFufG1jfG1kYWRtfG1rY29uZmlnfG1rZGlyfG1rZTJmc3xta2ZpZm98bWtmc3xta2lzb2ZzfG1rbm9kfG1rc3dhcHxtbXZ8bW9yZXxtb3N0fG1vdW50fG10b29sc3xtdHJ8bXV0dHxtdnxuYW5vfG5jfG5ldHN0YXR8bmljZXxubHxub2RlfG5vaHVwfG5vdGlmeS1zZW5kfG5wbXxuc2xvb2t1cHxvcHxvcGVufHBhcnRlZHxwYXNzd2R8cGFzdGV8cGF0aGNoa3xwaW5nfHBraWxsfHBucG18cG9kbWFufHBvZG1hbi1jb21wb3NlfHBvcGR8cHJ8cHJpbnRjYXB8cHJpbnRlbnZ8cHN8cHVzaGR8cHZ8cXVvdGF8cXVvdGFjaGVja3xxdW90YWN0bHxyYW18cmFyfHJjcHxyZWJvb3R8cmVtc3luY3xyZW5hbWV8cmVuaWNlfHJldnxybXxybWRpcnxycG18cnN5bmN8c2NwfHNjcmVlbnxzZGlmZnxzZWR8c2VuZG1haWx8c2VxfHNlcnZpY2V8c2Z0cHxzaHxzaGVsbGNoZWNrfHNodWZ8c2h1dGRvd258c2xlZXB8c2xvY2F0ZXxzb3J0fHNwbGl0fHNzaHxzdGF0fHN0cmFjZXxzdXxzdWRvfHN1bXxzdXNwZW5kfHN3YXBvbnxzeW5jfHRhY3x0YWlsfHRhcnx0ZWV8dGltZXx0aW1lb3V0fHRvcHx0b3VjaHx0cnx0cmFjZXJvdXRlfHRzb3J0fHR0eXx1bW91bnR8dW5hbWV8dW5leHBhbmR8dW5pcXx1bml0c3x1bnJhcnx1bnNoYXJ8dW56aXB8dXBkYXRlLWdydWJ8dXB0aW1lfHVzZXJhZGR8dXNlcmRlbHx1c2VybW9kfHVzZXJzfHV1ZGVjb2RlfHV1ZW5jb2RlfHZ8dmNwa2d8dmRpcnx2aXx2aW18dmlyc2h8dm1zdGF0fHdhaXR8d2F0Y2h8d2N8d2dldHx3aGVyZWlzfHdoaWNofHdob3x3aG9hbWl8d3JpdGV8eGFyZ3N8eGRnLW9wZW58eWFybnx5ZXN8emVuaXR5fHppcHx6c2h8enlwcGVyKSg/PSR8Wylcczt8Jl0pLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxbXHM7fCZdfFs8Pl1cKCkoPzpjYXNlfGRvfGRvbmV8ZWxpZnxlbHNlfGVzYWN8Zml8Zm9yfGZ1bmN0aW9ufGlmfGlufHNlbGVjdHx0aGVufHVudGlsfHdoaWxlKSg/PSR8Wylcczt8Jl0pLyxsb29rYmVoaW5kOiEwfSxidWlsdGluOntwYXR0ZXJuOi8oXnxbXHM7fCZdfFs8Pl1cKCkoPzpcLnw6fGFsaWFzfGJpbmR8YnJlYWt8YnVpbHRpbnxjYWxsZXJ8Y2R8Y29tbWFuZHxjb250aW51ZXxkZWNsYXJlfGVjaG98ZW5hYmxlfGV2YWx8ZXhlY3xleGl0fGV4cG9ydHxnZXRvcHRzfGhhc2h8aGVscHxsZXR8bG9jYWx8bG9nb3V0fG1hcGZpbGV8cHJpbnRmfHB3ZHxyZWFkfHJlYWRhcnJheXxyZWFkb25seXxyZXR1cm58c2V0fHNoaWZ0fHNob3B0fHNvdXJjZXx0ZXN0fHRpbWVzfHRyYXB8dHlwZXx0eXBlc2V0fHVsaW1pdHx1bWFza3x1bmFsaWFzfHVuc2V0KSg/PSR8Wylcczt8Jl0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sYm9vbGVhbjp7cGF0dGVybjovKF58W1xzO3wmXXxbPD5dXCgpKD86ZmFsc2V8dHJ1ZSkoPz0kfFspXHM7fCZdKS8sbG9va2JlaGluZDohMH0sImZpbGUtZGVzY3JpcHRvciI6e3BhdHRlcm46L1xCJlxkXGIvLGFsaWFzOiJpbXBvcnRhbnQifSxvcGVyYXRvcjp7cGF0dGVybjovXGQ/PD58Plx8fFwrPXw9Wz1+XT98IT0/fDw8WzwtXT98WyZcZF0/Pj58XGRbPD5dJj98Wzw+XVsmPV0/fCZbPiZdP3xcfFsmfF0/LyxpbnNpZGU6eyJmaWxlLWRlc2NyaXB0b3IiOntwYXR0ZXJuOi9eXGQvLGFsaWFzOiJpbXBvcnRhbnQifX19LHB1bmN0dWF0aW9uOi9cJD9cKFwoP3xcKVwpP3xcLlwufFt7fVtcXTtcXF0vLG51bWJlcjp7cGF0dGVybjovKF58XHMpKD86WzEtOV1cZCp8MCkoPzpbLixdXGQrKT9cYi8sbG9va2JlaGluZDohMH19LGEuaW5zaWRlPW4ubGFuZ3VhZ2VzLmJhc2g7Zm9yKHZhciBvPVsiY29tbWVudCIsImZ1bmN0aW9uLW5hbWUiLCJmb3Itb3Itc2VsZWN0IiwiYXNzaWduLWxlZnQiLCJzdHJpbmciLCJlbnZpcm9ubWVudCIsImZ1bmN0aW9uIiwia2V5d29yZCIsImJ1aWx0aW4iLCJib29sZWFuIiwiZmlsZS1kZXNjcmlwdG9yIiwib3BlcmF0b3IiLCJwdW5jdHVhdGlvbiIsIm51bWJlciJdLHM9aS52YXJpYWJsZVsxXS5pbnNpZGUsbD0wO2w8by5sZW5ndGg7bCsrKXNbb1tsXV09bi5sYW5ndWFnZXMuYmFzaFtvW2xdXTtuLmxhbmd1YWdlcy5zaGVsbD1uLmxhbmd1YWdlcy5iYXNofSkodCl9cmV0dXJuIFR1fXZhciBrdSxhdztmdW5jdGlvbiBHQygpe2lmKGF3KXJldHVybiBrdTthdz0xLGt1PWUsZS5kaXNwbGF5TmFtZT0iYmFzaWMiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmJhc2ljPXtjb21tZW50OntwYXR0ZXJuOi8oPzohfFJFTVxiKS4rL2ksaW5zaWRlOntrZXl3b3JkOi9eUkVNL2l9fSxzdHJpbmc6e3BhdHRlcm46LyIoPzoiInxbISMkJSYnKCkqLFwvOjs8PT4/Xlx3ICtcLS5dKSoiLyxncmVlZHk6ITB9LG51bWJlcjovKD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86RVsrLV0/XGQrKT8vaSxrZXl3b3JkOi9cYig/OkFTfEJFRVB8QkxPQUR8QlNBVkV8Q0FMTCg/OiBBQlNPTFVURSk/fENBU0V8Q0hBSU58Q0hESVJ8Q0xFQVJ8Q0xPU0V8Q0xTfENPTXxDT01NT058Q09OU1R8REFUQXxERUNMQVJFfERFRig/OiBGTnwgU0VHfERCTHxJTlR8TE5HfFNOR3xTVFIpfERJTXxET3xET1VCTEV8RUxTRXxFTFNFSUZ8RU5EfEVOVklST058RVJBU0V8RVJST1J8RVhJVHxGSUVMRHxGSUxFU3xGT1J8RlVOQ1RJT058R0VUfEdPU1VCfEdPVE98SUZ8SU5QVVR8SU5URUdFUnxJT0NUTHxLRVl8S0lMTHxMSU5FIElOUFVUfExPQ0FURXxMT0NLfExPTkd8TE9PUHxMU0VUfE1LRElSfE5BTUV8TkVYVHxPRkZ8T04oPzogQ09NfCBFUlJPUnwgS0VZfCBUSU1FUik/fE9QRU58T1BUSU9OIEJBU0V8T1VUfFBPS0V8UFVUfFJFQUR8UkVESU18UkVNfFJFU1RPUkV8UkVTVU1FfFJFVFVSTnxSTURJUnxSU0VUfFJVTnxTRUxFQ1QgQ0FTRXxTSEFSRUR8U0hFTEx8U0lOR0xFfFNMRUVQfFNUQVRJQ3xTVEVQfFNUT1B8U1RSSU5HfFNVQnxTV0FQfFNZU1RFTXxUSEVOfFRJTUVSfFRPfFRST0ZGfFRST058VFlQRXxVTkxPQ0t8VU5USUx8VVNJTkd8VklFVyBQUklOVHxXQUlUfFdFTkR8V0hJTEV8V1JJVEUpKD86XCR8XGIpL2ksZnVuY3Rpb246L1xiKD86QUJTfEFDQ0VTU3xBQ09TfEFOR0xFfEFSRUF8QVJJVEhNRVRJQ3xBUlJBWXxBU0lOfEFTS3xBVHxBVE58QkFTRXxCRUdJTnxCUkVBS3xDQVVTRXxDRUlMfENIUnxDTElQfENPTExBVEV8Q09MT1J8Q09OfENPU3xDT1NIfENPVHxDU0N8REFURXxEQVRVTXxERUJVR3xERUNJTUFMfERFRnxERUd8REVHUkVFU3xERUxFVEV8REVUfERFVklDRXxESVNQTEFZfERPVHxFTEFQU0VEfEVQU3xFUkFTQUJMRXxFWExJTkV8RVhQfEVYVEVSTkFMfEVYVFlQRXxGSUxFVFlQRXxGSVhFRHxGUHxHT3xHUkFQSHxIQU5ETEVSfElETnxJTUFHRXxJTnxJTlR8SU5URVJOQUx8SVB8SVN8S0VZRUR8TEJPVU5EfExDQVNFfExFRlR8TEVOfExFTkdUSHxMRVR8TElORXxMSU5FU3xMT0d8TE9HMTB8TE9HMnxMVFJJTXxNQVJHSU58TUFUfE1BWHxNQVhOVU18TUlEfE1JTnxNSVNTSU5HfE1PRHxOQVRJVkV8TlVMfE5VTUVSSUN8T0Z8T1BUSU9OfE9SRHxPUkdBTklaQVRJT058T1VUSU58T1VUUFVUfFBJfFBPSU5UfFBPSU5URVJ8UE9JTlRTfFBPU3xQUklOVHxQUk9HUkFNfFBST01QVHxSQUR8UkFESUFOU3xSQU5ET01JWkV8UkVDT1JEfFJFQ1NJWkV8UkVDVFlQRXxSRUxBVElWRXxSRU1BSU5ERVJ8UkVQRUFUfFJFU1R8UkVUUll8UkVXUklURXxSSUdIVHxSTkR8Uk9VTkR8UlRSSU18U0FNRXxTRUN8U0VMRUNUfFNFUVVFTlRJQUx8U0VUfFNFVFRFUnxTR058U0lOfFNJTkh8U0laRXxTS0lQfFNRUnxTVEFOREFSRHxTVEFUVVN8U1RSfFNUUkVBTXxTVFlMRXxUQUJ8VEFOfFRBTkh8VEVNUExBVEV8VEVYVHxUSEVSRXxUSU1FfFRJTUVPVVR8VFJBQ0V8VFJBTlNGT1JNfFRSVU5DQVRFfFVCT1VORHxVQ0FTRXxVU0V8VkFMfFZBUklBQkxFfFZJRVdQT1JUfFdIRU58V0lORE9XfFdJVEh8WkVSfFpPTkVXSURUSCkoPzpcJHxcYikvaSxvcGVyYXRvcjovPFs9Pl0/fD49P3xbK1wtKlwvXj0mXXxcYig/OkFORHxFUVZ8SU1QfE5PVHxPUnxYT1IpXGIvaSxwdW5jdHVhdGlvbjovWyw7OigpXS99fXJldHVybiBrdX12YXIgQXUsaXc7ZnVuY3Rpb24gQjQoKXtpZihpdylyZXR1cm4gQXU7aXc9MSxBdT1lLGUuZGlzcGxheU5hbWU9ImJhdGNoIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9LyUlP1t+Olx3XSslP3whXFMrIS8sYT17cGF0dGVybjovXC9bYS16P10rKD89WyA6XXwkKTo/fC1bYS16XVxifC0tW2Etei1dK1xiL2ltLGFsaWFzOiJhdHRyLW5hbWUiLGluc2lkZTp7cHVuY3R1YXRpb246LzovfX0saT0vIig/OltcXCJdInxbXiJdKSoiKD8hIikvLG89Lyg/OlxifC0pXGQrXGIvO24ubGFuZ3VhZ2VzLmJhdGNoPXtjb21tZW50OlsvXjo6LiovbSx7cGF0dGVybjovKCg/Ol58WyYoXSlbIFx0XSopcmVtXGIoPzpbXl4mKVxyXG5dfFxeKD86XHJcbnxbXHNcU10pKSovaW0sbG9va2JlaGluZDohMH1dLGxhYmVsOntwYXR0ZXJuOi9eOi4qL20sYWxpYXM6InByb3BlcnR5In0sY29tbWFuZDpbe3BhdHRlcm46LygoPzpefFsmKF0pWyBcdF0qKWZvcig/OiBcL1thLXo/XSg/OlsgOl0oPzoiW14iXSoifFteXHMiL11cUyopKT8pKiBcUysgaW4gXChbXildK1wpIGRvL2ltLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9cYig/OmRvfGluKVxifF5mb3JcYi9pLHN0cmluZzppLHBhcmFtZXRlcjphLHZhcmlhYmxlOnIsbnVtYmVyOm8scHVuY3R1YXRpb246L1soKScsXS99fSx7cGF0dGVybjovKCg/Ol58WyYoXSlbIFx0XSopaWYoPzogXC9bYS16P10oPzpbIDpdKD86IlteIl0qInxbXlxzIi9dXFMqKSk/KSogKD86bm90ICk/KD86Y21kZXh0dmVyc2lvbiBcZCt8ZGVmaW5lZCBcdyt8ZXJyb3JsZXZlbCBcZCt8ZXhpc3QgXFMrfCg/OiJbXiJdKiJ8KD8hIikoPzooPyE9PSlcUykrKT8oPzo9PXwgKD86ZXF1fGdlcXxndHJ8bGVxfGxzc3xuZXEpICkoPzoiW14iXSoifFteXHMiXVxTKikpL2ltLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9cYig/OmNtZGV4dHZlcnNpb258ZGVmaW5lZHxlcnJvcmxldmVsfGV4aXN0fG5vdClcYnxeaWZcYi9pLHN0cmluZzppLHBhcmFtZXRlcjphLHZhcmlhYmxlOnIsbnVtYmVyOm8sb3BlcmF0b3I6L1xefD09fFxiKD86ZXF1fGdlcXxndHJ8bGVxfGxzc3xuZXEpXGIvaX19LHtwYXR0ZXJuOi8oKD86XnxbJigpXSlbIFx0XSopZWxzZVxiL2ltLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eZWxzZVxiL2l9fSx7cGF0dGVybjovKCg/Ol58WyYoXSlbIFx0XSopc2V0KD86IFwvW2Etel0oPzpbIDpdKD86IlteIl0qInxbXlxzIi9dXFMqKSk/KSogKD86W15eJilcclxuXXxcXig/OlxyXG58W1xzXFNdKSkqL2ltLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9ec2V0XGIvaSxzdHJpbmc6aSxwYXJhbWV0ZXI6YSx2YXJpYWJsZTpbciwvXHcrKD89KD86WypcLyUrXC0mXnxdfDw8fD4+KT89KS9dLG51bWJlcjpvLG9wZXJhdG9yOi9bKlwvJStcLSZefF09P3w8PD0/fD4+PT98WyF+Xz1dLyxwdW5jdHVhdGlvbjovWygpJyxdL319LHtwYXR0ZXJuOi8oKD86XnxbJihdKVsgXHRdKkA/KVx3K1xiKD86Iig/OltcXCJdInxbXiJdKSoiKD8hIil8W14iXiYpXHJcbl18XF4oPzpcclxufFtcc1xTXSkpKi9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eXHcrXGIvLHN0cmluZzppLHBhcmFtZXRlcjphLGxhYmVsOntwYXR0ZXJuOi8oXlxzKik6XFMrL20sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkifSx2YXJpYWJsZTpyLG51bWJlcjpvLG9wZXJhdG9yOi9cXi99fV0sb3BlcmF0b3I6L1smQF0vLHB1bmN0dWF0aW9uOi9bKCknXS99fSkodCl9cmV0dXJuIEF1fXZhciB4dSxvdztmdW5jdGlvbiAkNCgpe2lmKG93KXJldHVybiB4dTtvdz0xLHh1PWUsZS5kaXNwbGF5TmFtZT0iYmJjb2RlIixlLmFsaWFzZXM9WyJzaG9ydGNvZGUiXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmJiY29kZT17dGFnOntwYXR0ZXJuOi9cW1wvP1teXHM9XF1dKyg/OlxzKj1ccyooPzoiW14iXSoifCdbXiddKid8W15ccyciXF09XSspKT8oPzpccytbXlxzPVxdXStccyo9XHMqKD86IlteIl0qInwnW14nXSonfFteXHMnIlxdPV0rKSkqXHMqXF0vLGluc2lkZTp7dGFnOntwYXR0ZXJuOi9eXFtcLz9bXlxzPVxdXSsvLGluc2lkZTp7cHVuY3R1YXRpb246L15cW1wvPy99fSwiYXR0ci12YWx1ZSI6e3BhdHRlcm46Lz1ccyooPzoiW14iXSoifCdbXiddKid8W15ccyciXF09XSspLyxpbnNpZGU6e3B1bmN0dWF0aW9uOlsvXj0vLHtwYXR0ZXJuOi9eKFxzKilbIiddfFsiJ10kLyxsb29rYmVoaW5kOiEwfV19fSxwdW5jdHVhdGlvbjovXF0vLCJhdHRyLW5hbWUiOi9bXlxzPVxdXSsvfX19LHQubGFuZ3VhZ2VzLnNob3J0Y29kZT10Lmxhbmd1YWdlcy5iYmNvZGV9cmV0dXJuIHh1fXZhciBSdSxzdztmdW5jdGlvbiB6NCgpe2lmKHN3KXJldHVybiBSdTtzdz0xLFJ1PWUsZS5kaXNwbGF5TmFtZT0iYmljZXAiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmJpY2VwPXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/KD86XCpcL3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcOl0pXC9cLy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHByb3BlcnR5Olt7cGF0dGVybjovKFtcclxuXVsgXHRdKilbYS16X11cdyooPz1bIFx0XSo6KS9pLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oW1xyXG5dWyBcdF0qKScoPzpcXC58XCQoPyFceyl8W14nXFxcclxuJF0pKicoPz1bIFx0XSo6KS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6W3twYXR0ZXJuOi8nJydbXiddW1xzXFNdKj8nJycvLGdyZWVkeTohMH0se3BhdHRlcm46LyhefFteXFwnXSknKD86XFwufFwkKD8hXHspfFteJ1xcXHJcbiRdKSonLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLCJpbnRlcnBvbGF0ZWQtc3RyaW5nIjp7cGF0dGVybjovKF58W15cXCddKScoPzpcXC58XCQoPzooPyFceyl8XHtbXnt9XHJcbl0qXH0pfFteJ1xcXHJcbiRdKSonLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46L1wkXHtbXnt9XHJcbl0qXH0vLGluc2lkZTp7ZXhwcmVzc2lvbjp7cGF0dGVybjovKF5cJFx7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXlwkXHt8XH0kL319LHN0cmluZzovW1xzXFNdKy99fSxkYXRhdHlwZTp7cGF0dGVybjovKFxiKD86b3V0cHV0fHBhcmFtKVxiWyBcdF0rXHcrWyBcdF0rKVx3K1xiLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxrZXl3b3JkOi9cYig/OmV4aXN0aW5nfGZvcnxpZnxpbnxtb2R1bGV8bnVsbHxvdXRwdXR8cGFyYW18cmVzb3VyY2V8dGFyZ2V0U2NvcGV8dmFyKVxiLyxkZWNvcmF0b3I6L0BcdytcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89WyBcdF0qXCgpL2ksbnVtYmVyOi8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpFWystXT9cZCspPy9pLG9wZXJhdG9yOi8tLXxcK1wrfFwqXCo9P3w9PnwmJj0/fFx8XHw9P3xbIT1dPT18PDw9P3w+Pj4/PT98Wy0rKi8lJnxeIT08Pl09P3xcLnszfXxcP1w/PT98XD9cLj98W346XS8scHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOl0vfSx0Lmxhbmd1YWdlcy5iaWNlcFsiaW50ZXJwb2xhdGVkLXN0cmluZyJdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5leHByZXNzaW9uLmluc2lkZT10Lmxhbmd1YWdlcy5iaWNlcH1yZXR1cm4gUnV9dmFyIF91LGx3O2Z1bmN0aW9uIGo0KCl7aWYobHcpcmV0dXJuIF91O2x3PTEsX3U9ZSxlLmRpc3BsYXlOYW1lPSJiaXJiIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5iaXJiPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46L3I/KCJ8JykoPzpcXC58KD8hXDEpW15cXF0pKlwxLyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjpbL1xiW0EtWl0oPzpbXGRfXSpbYS16QS1aXVx3Kik/XGIvLC9cYig/OltBLVpdXHcqfCg/ISg/OnZhcnx2b2lkKVxiKVthLXpdXHcqKSg/PVxzK1x3K1xzKls7LD0oKV0pL10sa2V5d29yZDovXGIoPzphc3NlcnR8YnJlYWt8Y2FzZXxjbGFzc3xjb25zdHxkZWZhdWx0fGVsc2V8ZW51bXxmaW5hbHxmb2xsb3dzfGZvcnxncmFifGlmfG5lc3R8bmV3fG5leHR8bm9TZWVifHJldHVybnxzdGF0aWN8c3dpdGNofHRocm93fHZhcnx2b2lkfHdoaWxlKVxiLyxvcGVyYXRvcjovXCtcK3wtLXwmJnxcfFx8fDw8PT98Pj49P3x+KD86XC89Pyk/fFsrXC0qXC8lJl58PSE8Pl09P3xcP3w6Lyx2YXJpYWJsZTovXGJbYS16X11cdypcYi99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImJpcmIiLCJmdW5jdGlvbiIse21ldGFkYXRhOntwYXR0ZXJuOi88XHcrPi8sZ3JlZWR5OiEwLGFsaWFzOiJzeW1ib2wifX0pfXJldHVybiBfdX12YXIgSXUsdXc7ZnVuY3Rpb24gRzQoKXtpZih1dylyZXR1cm4gSXU7dXc9MTt2YXIgZT1FcigpO0l1PXQsdC5kaXNwbGF5TmFtZT0iYmlzb24iLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksbi5sYW5ndWFnZXMuYmlzb249bi5sYW5ndWFnZXMuZXh0ZW5kKCJjIix7fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJiaXNvbiIsImNvbW1lbnQiLHtiaXNvbjp7cGF0dGVybjovXig/OlteJV18JSg/ISUpKSolJVtcc1xTXSo/JSUvLGluc2lkZTp7Yzp7cGF0dGVybjovJVx7W1xzXFNdKj8lXH18XHsoPzpce1tefV0qXH18W157fV0pKlx9LyxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXiU/XHt8JT9cfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LCJiaXNvbi12YXJpYWJsZSI6e3BhdHRlcm46L1skQF0oPzo8W15ccz5dKz4pP1tcdyRdKy8sYWxpYXM6InZhcmlhYmxlIixpbnNpZGU6e3B1bmN0dWF0aW9uOi88fD4vfX0scmVzdDpuLmxhbmd1YWdlcy5jfX0sY29tbWVudDpuLmxhbmd1YWdlcy5jLmNvbW1lbnQsc3RyaW5nOm4ubGFuZ3VhZ2VzLmMuc3RyaW5nLHByb3BlcnR5Oi9cUysoPz06KS8sa2V5d29yZDovJVx3Ky8sbnVtYmVyOntwYXR0ZXJuOi8oXnxbXkBdKVxiKD86MHhbXGRhLWZdK3xcZCspL2ksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246LyVbJT9dfFt8OjtcW1xdPD5dL319fSl9cmV0dXJuIEl1fXZhciBOdSxjdztmdW5jdGlvbiBxNCgpe2lmKGN3KXJldHVybiBOdTtjdz0xLE51PWUsZS5kaXNwbGF5TmFtZT0iYm5mIixlLmFsaWFzZXM9WyJyYm5mIl07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5ibmY9e3N0cmluZzp7cGF0dGVybjovIlteXHJcbiJdKiJ8J1teXHJcbiddKicvfSxkZWZpbml0aW9uOntwYXR0ZXJuOi88W148PlxyXG5cdF0rPig/PVxzKjo6PSkvLGFsaWFzOlsicnVsZSIsImtleXdvcmQiXSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePHw+JC99fSxydWxlOntwYXR0ZXJuOi88W148PlxyXG5cdF0rPi8saW5zaWRlOntwdW5jdHVhdGlvbjovXjx8PiQvfX0sb3BlcmF0b3I6Lzo6PXxbfCgpW1xde30qKz9dfFwuezN9L30sdC5sYW5ndWFnZXMucmJuZj10Lmxhbmd1YWdlcy5ibmZ9cmV0dXJuIE51fXZhciBDdSxkdztmdW5jdGlvbiBWNCgpe2lmKGR3KXJldHVybiBDdTtkdz0xLEN1PWUsZS5kaXNwbGF5TmFtZT0iYnJhaW5mdWNrIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5icmFpbmZ1Y2s9e3BvaW50ZXI6e3BhdHRlcm46Lzx8Pi8sYWxpYXM6ImtleXdvcmQifSxpbmNyZW1lbnQ6e3BhdHRlcm46L1wrLyxhbGlhczoiaW5zZXJ0ZWQifSxkZWNyZW1lbnQ6e3BhdHRlcm46Ly0vLGFsaWFzOiJkZWxldGVkIn0sYnJhbmNoaW5nOntwYXR0ZXJuOi9cW3xcXS8sYWxpYXM6ImltcG9ydGFudCJ9LG9wZXJhdG9yOi9bLixdLyxjb21tZW50Oi9cUysvfX1yZXR1cm4gQ3V9dmFyIE91LHB3O2Z1bmN0aW9uIEg0KCl7aWYocHcpcmV0dXJuIE91O3B3PTEsT3U9ZSxlLmRpc3BsYXlOYW1lPSJicmlnaHRzY3JpcHQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmJyaWdodHNjcmlwdD17Y29tbWVudDovKD86XGJyZW18JykuKi9pLCJkaXJlY3RpdmUtc3RhdGVtZW50Ijp7cGF0dGVybjovKF5bXHQgXSopIyg/OmNvbnN0fGVsc2UoPzpbXHQgXStpZik/fGVuZFtcdCBdK2lmfGVycm9yfGlmKS4qL2ltLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InByb3BlcnR5IixpbnNpZGU6eyJlcnJvci1tZXNzYWdlIjp7cGF0dGVybjovKF4jZXJyb3IpLisvLGxvb2tiZWhpbmQ6ITB9LGRpcmVjdGl2ZTp7cGF0dGVybjovXiMoPzpjb25zdHxlbHNlKD86W1x0IF0raWYpP3xlbmRbXHQgXStpZnxlcnJvcnxpZikvLGFsaWFzOiJrZXl3b3JkIn0sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm51bGx9fX0scHJvcGVydHk6e3BhdHRlcm46LyhbXHJcbnssXVtcdCBdKikoPzooPyFcZClcdyt8Iig/OlteIlxyXG5dfCIiKSoiKD8hIikpKD89WyBcdF0qOikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcclxuXXwiIikqIig/ISIpLyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKFxiQXNbXHQgXSspXHcrL2ksbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzpBc3xEaW18RWFjaHxFbHNlfEVsc2VpZnxFbmR8RXhpdHxGb3J8RnVuY3Rpb258R290b3xJZnxJbnxQcmludHxSZXR1cm58U3RlcHxTdG9wfFN1YnxUaGVufFRvfFdoaWxlKVxiL2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL2ksZnVuY3Rpb246L1xiKD8hXGQpXHcrKD89W1x0IF0qXCgpLyxudW1iZXI6Lyg/OlxiXGQrKD86XC5cZCspPyg/OltlZF1bKy1dXGQrKT98JmhbYS1mXGRdKylcYlslJiEjXT8vaSxvcGVyYXRvcjovLS18XCtcK3w+Pj0/fDw8PT98PD58Wy0rKi9cXDw+XT0/fFs6Xj0/XXxcYig/OmFuZHxtb2R8bm90fG9yKVxiL2kscHVuY3R1YXRpb246L1suLDsoKVtcXXt9XS8sY29uc3RhbnQ6L1xiKD86TElORV9OVU0pXGIvaX0sdC5sYW5ndWFnZXMuYnJpZ2h0c2NyaXB0WyJkaXJlY3RpdmUtc3RhdGVtZW50Il0uaW5zaWRlLmV4cHJlc3Npb24uaW5zaWRlPXQubGFuZ3VhZ2VzLmJyaWdodHNjcmlwdH1yZXR1cm4gT3V9dmFyIEx1LGZ3O2Z1bmN0aW9uIFc0KCl7aWYoZncpcmV0dXJuIEx1O2Z3PTEsTHU9ZSxlLmRpc3BsYXlOYW1lPSJicm8iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmJybz17Y29tbWVudDp7cGF0dGVybjovKF58W15cXCRdKSMuKi8sbG9va2JlaGluZDohMCxpbnNpZGU6e2l0YWxpYzovXGIoPzpGSVhNRXxUT0RPfFhYWClcYi99fSxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sYm9vbGVhbjovXGJbVEZdXGIvLGZ1bmN0aW9uOntwYXR0ZXJuOi8oXGIoPzpldmVudHxmdW5jdGlvbnxob29rKVsgXHRdKylcdysoPzo6Olx3Kyk/Lyxsb29rYmVoaW5kOiEwfSxidWlsdGluOi8oPzpAKD86bG9hZCg/Oi0oPzpwbHVnaW58c2lncykpP3x1bmxvYWR8cHJlZml4ZXN8aWZuP2RlZnxlbHNlfCg/OmVuZCk/aWZ8RElSfEZJTEVOQU1FKSl8KD86Jj8oPzphZGRfZnVuY3xjcmVhdGVfZXhwaXJlfGRlZmF1bHR8ZGVsZXRlX2Z1bmN8ZW5jcnlwdHxlcnJvcl9oYW5kbGVyfGV4cGlyZV9mdW5jfGdyb3VwfGxvZ3xtZXJnZWFibGV8b3B0aW9uYWx8cGVyc2lzdGVudHxwcmlvcml0eXxyYXdfb3V0cHV0fHJlYWRfZXhwaXJlfHJlZGVmfHJvdGF0ZV9pbnRlcnZhbHxyb3RhdGVfc2l6ZXxzeW5jaHJvbml6ZWR8dHlwZV9jb2x1bW58d3JpdGVfZXhwaXJlKSkvLGNvbnN0YW50OntwYXR0ZXJuOi8oXGJjb25zdFsgXHRdKylcdysvaSxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/OmFkZHxhZGRyfGFsYXJtfGFueXxib29sfGJyZWFrfGNvbnN0fGNvbnRpbnVlfGNvdW50fGRlbGV0ZXxkb3VibGV8ZWxzZXxlbnVtfGV2ZW50fGV4cG9ydHxmaWxlfGZvcnxmdW5jdGlvbnxnbG9iYWx8aG9va3xpZnxpbnxpbnR8aW50ZXJ2YWx8bG9jYWx8bW9kdWxlfG5leHR8b2Z8b3BhcXVlfHBhdHRlcm58cG9ydHxwcmludHxyZWNvcmR8cmV0dXJufHNjaGVkdWxlfHNldHxzdHJpbmd8c3VibmV0fHRhYmxlfHRpbWV8dGltZW91dHx1c2luZ3x2ZWN0b3J8d2hlbilcYi8sb3BlcmF0b3I6Ly0tP3xcK1wrP3whPT89P3w8PT98Pj0/fD09Pz0/fCYmfFx8XHw/fFw/fFwqfFwvfH58XF58JS8sbnVtYmVyOi9cYjB4W1xkYS1mXStcYnwoPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplWystXT9cZCspPy9pLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL319cmV0dXJuIEx1fXZhciBEdSxtdztmdW5jdGlvbiBZNCgpe2lmKG13KXJldHVybiBEdTttdz0xLER1PWUsZS5kaXNwbGF5TmFtZT0iYnNsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5ic2w9e2NvbW1lbnQ6L1wvXC8uKi8sc3RyaW5nOlt7cGF0dGVybjovIig/OlteIl18IiIpKiIoPyEiKS8sZ3JlZWR5OiEwfSx7cGF0dGVybjovJyg/OlteJ1xyXG5cXF18XFwuKSonL31dLGtleXdvcmQ6W3twYXR0ZXJuOi8oXnxbXlx3XHUwNDAwLVx1MDQ4NFx1MDQ4Ny1cdTA1MmZcdTFkMmJcdTFkNzhcdTJkZTAtXHUyZGZmXHVhNjQwLVx1YTY5Zlx1ZmUyZVx1ZmUyZl0pKD860L/QvtC60LB80LTQu9GPfNC90L7QstGL0Ll80L/RgNC10YDQstCw0YLRjHzQv9C+0L/Ri9GC0LrQsHzQuNGB0LrQu9GO0YfQtdC90LjQtXzQstGL0LfQstCw0YLRjNC40YHQutC70Y7Rh9C10L3QuNC1fNC40L3QsNGH0LV80LrQvtC90LXRhtC/0L7Qv9GL0YLQutC4fNC90LXQvtC/0YDQtdC00LXQu9C10L3QvnzRhNGD0L3QutGG0LjRj3zQv9C10YDQtdC8fNCy0L7Qt9Cy0YDQsNGCfNC60L7QvdC10YbRhNGD0L3QutGG0LjQuHzQtdGB0LvQuHzQuNC90LDRh9C10LXRgdC70Lh80L/RgNC+0YbQtdC00YPRgNCwfNC60L7QvdC10YbQv9GA0L7RhtC10LTRg9GA0Yt80YLQvtCz0LTQsHzQt9C90LDRh3zRjdC60YHQv9C+0YDRgnzQutC+0L3QtdGG0LXRgdC70Lh80LjQt3zQutCw0LbQtNC+0LPQvnzQuNGB0YLQuNC90LB80LvQvtC20Yx80L/QvnzRhtC40LrQu3zQutC+0L3QtdGG0YbQuNC60LvQsHzQstGL0L/QvtC70L3QuNGC0YwpKD8hW1x3XHUwNDAwLVx1MDQ4NFx1MDQ4Ny1cdTA1MmZcdTFkMmJcdTFkNzhcdTJkZTAtXHUyZGZmXHVhNjQwLVx1YTY5Zlx1ZmUyZVx1ZmUyZl0pL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46L1xiKD86YnJlYWt8ZG98ZWFjaHxlbHNlfGVsc2VpZnxlbmRkb3xlbmRmdW5jdGlvbnxlbmRpZnxlbmRwcm9jZWR1cmV8ZW5kdHJ5fGV4Y2VwdHxleGVjdXRlfGV4cG9ydHxmYWxzZXxmb3J8ZnVuY3Rpb258aWZ8aW58bmV3fG51bGx8cHJvY2VkdXJlfHJhaXNlfHJldHVybnx0aGVufHRvfHRydWV8dHJ5fHVuZGVmaW5lZHx2YWx8dmFyfHdoaWxlKVxiL2l9XSxudW1iZXI6e3BhdHRlcm46LyheKD89XGQpfFteXHdcdTA0MDAtXHUwNDg0XHUwNDg3LVx1MDUyZlx1MWQyYlx1MWQ3OFx1MmRlMC1cdTJkZmZcdWE2NDAtXHVhNjlmXHVmZTJlXHVmZTJmXSkoPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OkVbKy1dP1xkKyk/L2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Wy9bPD4rXC0qL109P3xbJT1dLyx7cGF0dGVybjovKF58W15cd1x1MDQwMC1cdTA0ODRcdTA0ODctXHUwNTJmXHUxZDJiXHUxZDc4XHUyZGUwLVx1MmRmZlx1YTY0MC1cdWE2OWZcdWZlMmVcdWZlMmZdKSg/OtC4fNC40LvQuHzQvdC1KSg/IVtcd1x1MDQwMC1cdTA0ODRcdTA0ODctXHUwNTJmXHUxZDJiXHUxZDc4XHUyZGUwLVx1MmRmZlx1YTY0MC1cdWE2OWZcdWZlMmVcdWZlMmZdKS9pLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi9cYig/OmFuZHxub3R8b3IpXGIvaX1dLHB1bmN0dWF0aW9uOi9cKFwufFwuXCl8WygpXFtcXTo7LC5dLyxkaXJlY3RpdmU6W3twYXR0ZXJuOi9eKFsgXHRdKikmLiovbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiaW1wb3J0YW50In0se3BhdHRlcm46L14oWyBcdF0qKSMuKi9nbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiaW1wb3J0YW50In1dfSx0Lmxhbmd1YWdlcy5vc2NyaXB0PXQubGFuZ3VhZ2VzLmJzbH1yZXR1cm4gRHV9dmFyIE11LGd3O2Z1bmN0aW9uIEs0KCl7aWYoZ3cpcmV0dXJuIE11O2d3PTEsTXU9ZSxlLmRpc3BsYXlOYW1lPSJjZnNjcmlwdCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuY2ZzY3JpcHQ9dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj8oPzpcKlwvfCQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7YW5ub3RhdGlvbjp7cGF0dGVybjovKD86XnxbXi5dKUBbXHdcLl0rLyxhbGlhczoicHVuY3R1YXRpb24ifX19LHtwYXR0ZXJuOi8oXnxbXlxcOl0pXC9cLy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLGtleXdvcmQ6L1xiKD86YWJzdHJhY3R8YnJlYWt8Y2F0Y2h8Y29tcG9uZW50fGNvbnRpbnVlfGRlZmF1bHR8ZG98ZWxzZXxleHRlbmRzfGZpbmFsfGZpbmFsbHl8Zm9yfGZ1bmN0aW9ufGlmfGlufGluY2x1ZGV8cGFja2FnZXxwcml2YXRlfHByb3BlcnR5fHB1YmxpY3xyZW1vdGV8cmVxdWlyZWR8cmV0aHJvd3xyZXR1cm58c3RhdGljfHN3aXRjaHx0aHJvd3x0cnl8dmFyfHdoaWxlfHhtbClcYig/IVxzKj0pLyxvcGVyYXRvcjpbL1wrXCt8LS18JiZ8XHxcfHw6Onw9PnxbIT1dPT18PD0/fD49P3xbLSsqLyUmfF4hPTw+XT0/fFw/KD86XC58Oik/fFs/Ol0vLC9cYig/OmFuZHxjb250YWluc3xlcXxlcXVhbHxlcXZ8Z3R8Z3RlfGltcHxpc3xsdHxsdGV8bW9kfG5vdHxvcnx4b3IpXGIvXSxzY29wZTp7cGF0dGVybjovXGIoPzphcHBsaWNhdGlvbnxhcmd1bWVudHN8Y2dpfGNsaWVudHxjb29raWV8bG9jYWx8c2Vzc2lvbnxzdXBlcnx0aGlzfHZhcmlhYmxlcylcYi8sYWxpYXM6Imdsb2JhbCJ9LHR5cGU6e3BhdHRlcm46L1xiKD86YW55fGFycmF5fGJpbmFyeXxib29sZWFufGRhdGV8Z3VpZHxudW1lcmljfHF1ZXJ5fHN0cmluZ3xzdHJ1Y3R8dXVpZHx2b2lkfHhtbClcYi8sYWxpYXM6ImJ1aWx0aW4ifX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY2ZzY3JpcHQiLCJrZXl3b3JkIix7ImZ1bmN0aW9uLXZhcmlhYmxlIjp7cGF0dGVybjovW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqWz06XVxzKig/OlxiZnVuY3Rpb25cYnwoPzpcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfCg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKilccyo9PikpLyxhbGlhczoiZnVuY3Rpb24ifX0pLGRlbGV0ZSB0Lmxhbmd1YWdlcy5jZnNjcmlwdFsiY2xhc3MtbmFtZSJdLHQubGFuZ3VhZ2VzLmNmYz10Lmxhbmd1YWdlcy5jZnNjcmlwdH1yZXR1cm4gTXV9dmFyIFB1LGh3O2Z1bmN0aW9uIFg0KCl7aWYoaHcpcmV0dXJuIFB1O2h3PTE7dmFyIGU9TGIoKTtQdT10LHQuZGlzcGxheU5hbWU9ImNoYWlzY3JpcHQiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksbi5sYW5ndWFnZXMuY2hhaXNjcmlwdD1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7c3RyaW5nOntwYXR0ZXJuOi8oXnxbXlxcXSknKD86W14nXFxdfFxcW1xzXFNdKSonLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjovKFxiY2xhc3NccyspXHcrLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKFxiKD86YXR0cnxkZWYpXHMrKVx3Kyg/PVxzKjo6KS8sbG9va2JlaGluZDohMH1dLGtleXdvcmQ6L1xiKD86YXR0cnxhdXRvfGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29udGludWV8ZGVmfGRlZmF1bHR8ZWxzZXxmaW5hbGx5fGZvcnxmdW58Z2xvYmFsfGlmfHJldHVybnxzd2l0Y2h8dGhpc3x0cnl8dmFyfHdoaWxlKVxiLyxudW1iZXI6W24ubGFuZ3VhZ2VzLmNwcC5udW1iZXIsL1xiKD86SW5maW5pdHl8TmFOKVxiL10sb3BlcmF0b3I6Lz4+PT98PDw9P3xcfFx8fCYmfDpbOj1dP3wtLXxcK1wrfFs9ITw+K1wtKi8lfCZeXT0/fFs/fl18YFteYFxyXG5dezEsNH1gL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY2hhaXNjcmlwdCIsIm9wZXJhdG9yIix7InBhcmFtZXRlci10eXBlIjp7cGF0dGVybjovKFssKF1ccyopXHcrKD89XHMrXHcpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNoYWlzY3JpcHQiLCJzdHJpbmciLHsic3RyaW5nLWludGVycG9sYXRpb24iOntwYXR0ZXJuOi8oXnxbXlxcXSkiKD86W14iJFxcXXxcXFtcc1xTXXxcJCg/IVx7KXxcJFx7KD86W157fV18XHsoPzpbXnt9XXxce1tee31dKlx9KSpcfSkqXH0pKiIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilcJFx7KD86W157fV18XHsoPzpbXnt9XXxce1tee31dKlx9KSpcfSkqXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiaW50ZXJwb2xhdGlvbi1leHByZXNzaW9uIjp7cGF0dGVybjovKF5cJFx7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTpuLmxhbmd1YWdlcy5jaGFpc2NyaXB0fSwiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15cJFx7fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn19fSxzdHJpbmc6L1tcc1xTXSsvfX19KX1yZXR1cm4gUHV9dmFyIEZ1LGJ3O2Z1bmN0aW9uIFo0KCl7aWYoYncpcmV0dXJuIEZ1O2J3PTEsRnU9ZSxlLmRpc3BsYXlOYW1lPSJjaWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmNpbD17Y29tbWVudDovXC9cLy4qLyxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sZGlyZWN0aXZlOntwYXR0ZXJuOi8oXnxcVylcLlthLXpdKyg/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoiY2xhc3MtbmFtZSJ9LHZhcmlhYmxlOi9cW1tcd1wuXStcXS8sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhbnNpfGFzc2VtYmx5fGF1dG98YXV0b2NoYXJ8YmVmb3JlZmllbGRpbml0fGJvb2x8YnN0cnxieXZhbHN0cnxjYXRjaHxjaGFyfGNpbHxjbGFzc3xjdXJyZW5jeXxkYXRlfGRlY2ltYWx8ZGVmYXVsdHxlbnVtfGVycm9yfGV4cGxpY2l0fGV4dGVuZHN8ZXh0ZXJufGZhbWFuZGFzc2VtfGZhbWlseXxmYW1vcmFzc2VtfGZpbmFsKD86bHkpP3xmbG9hdDMyfGZsb2F0NjR8aGlkZWJ5c2lnfHU/aW50KD86OHwxNnwzMnw2NCk/fGlhbnR8aWRpc3BhdGNofGltcGxlbWVudHN8aW1wb3J0fGluaXRvbmx5fGluc3RhbmNlfGludGVyZmFjZXxpdW5rbm93bnxsaXRlcmFsfGxwc3RyfGxwc3RydWN0fGxwdHN0cnxscHdzdHJ8bWFuYWdlZHxtZXRob2R8bmF0aXZlKD86VHlwZSk/fG5lc3RlZHxuZXdzbG90fG9iamVjdCg/OnJlZik/fHBpbnZva2VpbXBsfHByaXZhdGV8cHJpdmF0ZXNjb3BlfHB1YmxpY3xyZXFzZWNvYmp8cnRzcGVjaWFsbmFtZXxydW50aW1lfHNlYWxlZHxzZXF1ZW50aWFsfHNlcmlhbGl6YWJsZXxzcGVjaWFsbmFtZXxzdGF0aWN8c3RyaW5nfHN0cnVjdHxzeXNjaGFyfHRic3RyfHVuaWNvZGV8dW5tYW5hZ2VkZXhwfHVuc2lnbmVkfHZhbHVlKD86dHlwZSk/fHZhcmlhbnR8dmlydHVhbHx2b2lkKVxiLyxmdW5jdGlvbjovXGIoPzooPzpjb25zdHJhaW5lZHxub3xyZWFkb25seXx0YWlsfHVuYWxpZ25lZHx2b2xhdGlsZSlcLik/KD86Y29udlwuKD86W2l1XVsxMjQ4XT98b3ZmXC5baXVdWzEyNDhdPyg/OlwudW4pP3xyXC51bnxyNHxyOCl8bGRjXC4oPzppNCg/OlwuXGQrfFwuW21NXTF8XC5zKT98aTh8cjR8cjgpfGxkZWxlbSg/OlwuW2l1XVsxMjQ4XT98XC5yWzQ4XXxcLnJlZnxhKT98bGRpbmRcLig/OltpdV1bMTI0OF0/fHJbNDhdfHJlZil8c3RlbGVtXC4/KD86aVsxMjQ4XT98cls0OF18cmVmKT98c3RpbmRcLig/OmlbMTI0OF0/fHJbNDhdfHJlZik/fGVuZCg/OmZhdWx0fGZpbHRlcnxmaW5hbGx5KXxsZGFyZyg/OlwuWzAtM3NdfGEoPzpcLnMpPyk/fGxkbG9jKD86XC5cZCt8XC5zKT98c3ViKD86XC5vdmYoPzpcLnVuKT8pP3xtdWwoPzpcLm92Zig/OlwudW4pPyk/fGFkZCg/Olwub3ZmKD86XC51bik/KT98c3Rsb2MoPzpcLlswLTNzXSk/fHJlZmFueSg/OnR5cGV8dmFsKXxibHQoPzpcLnVuKT8oPzpcLnMpP3xibGUoPzpcLnVuKT8oPzpcLnMpP3xiZ3QoPzpcLnVuKT8oPzpcLnMpP3xiZ2UoPzpcLnVuKT8oPzpcLnMpP3x1bmJveCg/OlwuYW55KT98aW5pdCg/OmJsa3xvYmopfGNhbGwoPzppfHZpcnQpP3xicmZhbHNlKD86XC5zKT98Ym5lXC51big/Olwucyk/fGxkbG9jYSg/Olwucyk/fGJyemVybyg/Olwucyk/fGJydHJ1ZSg/Olwucyk/fGJybnVsbCg/Olwucyk/fGJyaW5zdCg/Olwucyk/fHN0YXJnKD86XC5zKT98bGVhdmUoPzpcLnMpP3xzaHIoPzpcLnVuKT98cmVtKD86XC51bik/fGRpdig/OlwudW4pP3xjbHQoPzpcLnVuKT98YWxpZ25tZW50fGNhc3RjbGFzc3xsZHZpcnRmdG58YmVxKD86XC5zKT98Y2tmaW5pdGV8bGRzZmxkYXxsZHRva2VufGxvY2FsbG9jfG1rcmVmYW55fHJldGhyb3d8Y2d0XC51bnxhcmdsaXN0fHN3aXRjaHxzdHNmbGR8c2l6ZW9mfG5ld29ianxuZXdhcnJ8bGRzZmxkfGxkbnVsbHxsZGZsZGF8aXNpbnN0fHRocm93fHN0b2JqfHN0ZmxkfGxkc3RyfGxkb2JqfGxkbGVufGxkZnRufGxkZmxkfGNwb2JqfGNwYmxrfGJyZWFrfGJyXC5zfHhvcnxzaGx8cmV0fHBvcHxub3R8bm9wfG5lZ3xqbXB8ZHVwfGNndHxjZXF8Ym94fGFuZHxvcnxicilcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6L1xiLT8oPzoweFswLTlhLWZdK3xcZCspKD86XC5bMC05YS1mXSspP1xiL2kscHVuY3R1YXRpb246L1t7fVtcXTsoKSw6PV18SUxfWzAtOUEtWmEtel0rL319cmV0dXJuIEZ1fXZhciBVdSx5dztmdW5jdGlvbiBRNCgpe2lmKHl3KXJldHVybiBVdTt5dz0xLFV1PWUsZS5kaXNwbGF5TmFtZT0iY2xvanVyZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuY2xvanVyZT17Y29tbWVudDp7cGF0dGVybjovOy4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiIvLGdyZWVkeTohMH0sY2hhcjovXFxcdysvLHN5bWJvbDp7cGF0dGVybjovKF58W1xzKClcW1xde30sXSk6Oj9bXHcqKyE/Jzw+PS8uLV0rLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOntwYXR0ZXJuOi8oXCgpKD86LXwtPnwtPj58XC58XC5cLnxcKnxcL3xcK3w8fDw9fD18PT18Pnw+PXxhY2Nlc3NvcnxhZ2VudHxhZ2VudC1lcnJvcnN8YWdldHxhbGVuZ3RofGFsbC1uc3xhbHRlcnxhbmR8YXBwZW5kLWNoaWxkfGFwcGx5fGFycmF5LW1hcHxhc2V0fGFzZXQtYm9vbGVhbnxhc2V0LWJ5dGV8YXNldC1jaGFyfGFzZXQtZG91YmxlfGFzZXQtZmxvYXR8YXNldC1pbnR8YXNldC1sb25nfGFzZXQtc2hvcnR8YXNzZXJ0fGFzc29jfGF3YWl0fGF3YWl0LWZvcnxiZWFufGJpbmRpbmd8Yml0LWFuZHxiaXQtbm90fGJpdC1vcnxiaXQtc2hpZnQtbGVmdHxiaXQtc2hpZnQtcmlnaHR8Yml0LXhvcnxib29sZWFufGJyYW5jaFw/fGJ1dGxhc3R8Ynl0ZXxjYXN0fGNoYXJ8Y2hpbGRyZW58Y2xhc3N8Y2xlYXItYWdlbnQtZXJyb3JzfGNvbW1lbnR8Y29tbXV0ZXxjb21wfGNvbXBhcmF0b3J8Y29tcGxlbWVudHxjb25jYXR8Y29uZHxjb25qfGNvbnN8Y29uc3RhbnRseXxjb25zdHJ1Y3QtcHJveHl8Y29udGFpbnNcP3xjb3VudHxjcmVhdGUtbnN8Y3JlYXRlLXN0cnVjdHxjeWNsZXxkZWN8ZGVjbGFyZXxkZWZ8ZGVmLXxkZWZpbmxpbmV8ZGVmaW50ZXJmYWNlfGRlZm1hY3JvfGRlZm1ldGhvZHxkZWZtdWx0aXxkZWZufGRlZm4tfGRlZm9uY2V8ZGVmcHJvamVjdHxkZWZwcm90b2NvbHxkZWZyZWNvcmR8ZGVmc3RydWN0fGRlZnR5cGV8ZGVyZWZ8ZGlmZmVyZW5jZXxkaXNqfGRpc3NvY3xkaXN0aW5jdHxkb3xkb2FsbHxkb2N8ZG9ydW58ZG9zZXF8ZG9zeW5jfGRvdGltZXN8ZG90b3xkb3VibGV8ZG93bnxkcm9wfGRyb3Atd2hpbGV8ZWRpdHxlbmRcP3xlbnN1cmV8ZXZhbHxldmVyeVw/fGZhbHNlXD98ZmZpcnN0fGZpbGUtc2VxfGZpbHRlcnxmaW5kfGZpbmQtZG9jfGZpbmQtbnN8ZmluZC12YXJ8Zmlyc3R8ZmxvYXR8Zmx1c2h8Zm58Zm5zZXF8Zm9yfGZyZXN0fGdlbnN5bXxnZXR8Z2V0LXByb3h5LWNsYXNzfGhhc2gtbWFwfGhhc2gtc2V0fGlkZW50aWNhbFw/fGlkZW50aXR5fGlmfGlmLWxldHxpZi1ub3R8aW1wb3J0fGluLW5zfGluY3xpbmRleHxpbnNlcnQtY2hpbGR8aW5zZXJ0LWxlZnR8aW5zZXJ0LXJpZ2h0fGluc3BlY3QtdGFibGV8aW5zcGVjdC10cmVlfGluc3RhbmNlXD98aW50fGludGVybGVhdmV8aW50ZXJzZWN0aW9ufGludG98aW50by1hcnJheXxpdGVyYXRlfGpvaW58a2V5fGtleXN8a2V5d29yZHxrZXl3b3JkXD98bGFzdHxsYXp5LWNhdHxsYXp5LWNvbnN8bGVmdHxsZWZ0c3xsZXR8bGluZS1zZXF8bGlzdHxsaXN0XCp8bG9hZHxsb2FkLWZpbGV8bG9ja2luZ3xsb25nfGxvb3B8bWFjcm9leHBhbmR8bWFjcm9leHBhbmQtMXxtYWtlLWFycmF5fG1ha2Utbm9kZXxtYXB8bWFwLWludmVydHxtYXBcP3xtYXBjYXR8bWF4fG1heC1rZXl8bWVtZm58bWVyZ2V8bWVyZ2Utd2l0aHxtZXRhfG1pbnxtaW4ta2V5fG1vbml0b3ItZW50ZXJ8bmFtZXxuYW1lc3BhY2V8bmVnXD98bmV3fG5ld2xpbmV8bmV4dHxuaWxcP3xub2RlfG5vdHxub3QtYW55XD98bm90LWV2ZXJ5XD98bm90PXxuc3xucy1pbXBvcnRzfG5zLWludGVybnN8bnMtbWFwfG5zLW5hbWV8bnMtcHVibGljc3xucy1yZWZlcnN8bnMtcmVzb2x2ZXxucy11bm1hcHxudGh8bnRocmVzdHxvcnxwYXJzZXxwYXJ0aWFsfHBhdGh8cGVla3xwb3B8cG9zXD98cHJ8cHItc3RyfHByaW50fHByaW50LXN0cnxwcmludGxufHByaW50bG4tc3RyfHBybnxwcm4tc3RyfHByb2plY3R8cHJveHl8cHJveHktbWFwcGluZ3N8cXVvdHxxdW90ZXxyYW5kfHJhbmQtaW50fHJhbmdlfHJlLWZpbmR8cmUtZ3JvdXBzfHJlLW1hdGNoZXJ8cmUtbWF0Y2hlc3xyZS1wYXR0ZXJufHJlLXNlcXxyZWFkfHJlYWQtbGluZXxyZWN1cnxyZWR1Y2V8cmVmfHJlZi1zZXR8cmVmZXJ8cmVtfHJlbW92ZXxyZW1vdmUtbWV0aG9kfHJlbW92ZS1uc3xyZW5hbWV8cmVuYW1lLWtleXN8cmVwZWF0fHJlcGxhY2V8cmVwbGljYXRlfHJlc29sdmV8cmVzdHxyZXN1bHRzZXQtc2VxfHJldmVyc2V8cmZpcnN0fHJpZ2h0fHJpZ2h0c3xyb290fHJyZXN0fHJzZXF8c2Vjb25kfHNlbGVjdHxzZWxlY3Qta2V5c3xzZW5kfHNlbmQtb2ZmfHNlcXxzZXEtemlwfHNlcVw/fHNldHxzZXQhfHNob3J0fHNsdXJwfHNvbWV8c29ydHxzb3J0LWJ5fHNvcnRlZC1tYXB8c29ydGVkLW1hcC1ieXxzb3J0ZWQtc2V0fHNwZWNpYWwtc3ltYm9sXD98c3BsaXQtYXR8c3BsaXQtd2l0aHxzdHJ8c3RyaW5nXD98c3RydWN0fHN0cnVjdC1tYXB8c3Vic3xzdWJ2ZWN8c3ltYm9sfHN5bWJvbFw/fHN5bmN8dGFrZXx0YWtlLW50aHx0YWtlLXdoaWxlfHRlc3R8dGhyb3d8dGltZXx0by1hcnJheXx0by1hcnJheS0yZHx0cmVlLXNlcXx0cnVlXD98dHJ5fHVuaW9ufHVwfHVwZGF0ZS1wcm94eXx2YWx8dmFsc3x2YXJ8dmFyLWdldHx2YXItc2V0fHZhclw/fHZlY3Rvcnx2ZWN0b3ItemlwfHZlY3Rvclw/fHdoZW58d2hlbi1maXJzdHx3aGVuLWxldHx3aGVuLW5vdHx3aXRoLWxvY2FsLXZhcnN8d2l0aC1tZXRhfHdpdGgtb3Blbnx3aXRoLW91dC1zdHJ8eG1sLXNlcXx4bWwtemlwfHplcm9cP3x6aXBtYXB8emlwcGVyKSg/PVtccyldfCQpLyxsb29rYmVoaW5kOiEwfSxib29sZWFuOi9cYig/OmZhbHNlfG5pbHx0cnVlKVxiLyxudW1iZXI6e3BhdHRlcm46LyhefFteXHckQF0pKD86XGQrKD86Wy8uXVxkKyk/KD86ZVsrLV0/XGQrKT98MHhbYS1mMC05XSt8WzEtOV1cZD9yW2EtejAtOV0rKVtsbW5dPyg/IVtcdyRAXSkvaSxsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjp7cGF0dGVybjovKCg/Ol58W14nXSlcKClbXHcqKyE/Jzw+PS8uLV0rKD89W1xzKV18JCkvLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOi9bI0BeYH5dLyxwdW5jdHVhdGlvbjovW3t9XFtcXSgpLF0vfX1yZXR1cm4gVXV9dmFyIEJ1LHZ3O2Z1bmN0aW9uIEo0KCl7aWYodncpcmV0dXJuIEJ1O3Z3PTEsQnU9ZSxlLmRpc3BsYXlOYW1lPSJjbWFrZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuY21ha2U9e2NvbW1lbnQ6LyMuKi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W15cXCJdfFxcLikqIi8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovXCRceyg/Oltee30kXXxcJFx7W157fSRdKlx9KSpcfS8saW5zaWRlOntwdW5jdHVhdGlvbjovXCRce3xcfS8sdmFyaWFibGU6L1x3Ky99fX19LHZhcmlhYmxlOi9cYig/OkNNQUtFX1x3K3xcdytfKD86KD86QklOQVJZfFNPVVJDRSlfRElSfERFU0NSSVBUSU9OfEhPTUVQQUdFX1VSTHxST09UfFZFUlNJT04oPzpfTUFKT1J8X01JTk9SfF9QQVRDSHxfVFdFQUspPyl8KD86QU5EUk9JRHxBUFBMRXxCT1JMQU5EfEJVSUxEX1NIQVJFRF9MSUJTfENBQ0hFfENQQUNLXyg/OkFCU09MVVRFX0RFU1RJTkFUSU9OX0ZJTEVTfENPTVBPTkVOVF9JTkNMVURFX1RPUExFVkVMX0RJUkVDVE9SWXxFUlJPUl9PTl9BQlNPTFVURV9JTlNUQUxMX0RFU1RJTkFUSU9OfElOQ0xVREVfVE9QTEVWRUxfRElSRUNUT1JZfElOU1RBTExfREVGQVVMVF9ESVJFQ1RPUllfUEVSTUlTU0lPTlN8SU5TVEFMTF9TQ1JJUFR8UEFDS0FHSU5HX0lOU1RBTExfUFJFRklYfFNFVF9ERVNURElSfFdBUk5fT05fQUJTT0xVVEVfSU5TVEFMTF9ERVNUSU5BVElPTil8Q1RFU1RfKD86QklOQVJZX0RJUkVDVE9SWXxCVUlMRF9DT01NQU5EfEJVSUxEX05BTUV8QlpSX0NPTU1BTkR8QlpSX1VQREFURV9PUFRJT05TfENIQU5HRV9JRHxDSEVDS09VVF9DT01NQU5EfENPTkZJR1VSQVRJT05fVFlQRXxDT05GSUdVUkVfQ09NTUFORHxDT1ZFUkFHRV9DT01NQU5EfENPVkVSQUdFX0VYVFJBX0ZMQUdTfENVUkxfT1BUSU9OU3xDVVNUT01fKD86Q09WRVJBR0VfRVhDTFVERXxFUlJPUl9FWENFUFRJT058RVJST1JfTUFUQ0h8RVJST1JfUE9TVF9DT05URVhUfEVSUk9SX1BSRV9DT05URVhUfE1BWElNVU1fRkFJTEVEX1RFU1RfT1VUUFVUX1NJWkV8TUFYSU1VTV9OVU1CRVJfT0ZfKD86RVJST1JTfFdBUk5JTkdTKXxNQVhJTVVNX1BBU1NFRF9URVNUX09VVFBVVF9TSVpFfE1FTUNIRUNLX0lHTk9SRXxQT1NUX01FTUNIRUNLfFBPU1RfVEVTVHxQUkVfTUVNQ0hFQ0t8UFJFX1RFU1R8VEVTVFNfSUdOT1JFfFdBUk5JTkdfRVhDRVBUSU9OfFdBUk5JTkdfTUFUQ0gpfENWU19DSEVDS09VVHxDVlNfQ09NTUFORHxDVlNfVVBEQVRFX09QVElPTlN8RFJPUF9MT0NBVElPTnxEUk9QX01FVEhPRHxEUk9QX1NJVEV8RFJPUF9TSVRFX0NEQVNIfERST1BfU0lURV9QQVNTV09SRHxEUk9QX1NJVEVfVVNFUnxFWFRSQV9DT1ZFUkFHRV9HTE9CfEdJVF9DT01NQU5EfEdJVF9JTklUX1NVQk1PRFVMRVN8R0lUX1VQREFURV9DVVNUT018R0lUX1VQREFURV9PUFRJT05TfEhHX0NPTU1BTkR8SEdfVVBEQVRFX09QVElPTlN8TEFCRUxTX0ZPUl9TVUJQUk9KRUNUU3xNRU1PUllDSEVDS18oPzpDT01NQU5EfENPTU1BTkRfT1BUSU9OU3xTQU5JVElaRVJfT1BUSU9OU3xTVVBQUkVTU0lPTlNfRklMRXxUWVBFKXxOSUdIVExZX1NUQVJUX1RJTUV8UDRfQ0xJRU5UfFA0X0NPTU1BTkR8UDRfT1BUSU9OU3xQNF9VUERBVEVfT1BUSU9OU3xSVU5fQ1VSUkVOVF9TQ1JJUFR8U0NQX0NPTU1BTkR8U0lURXxTT1VSQ0VfRElSRUNUT1JZfFNVQk1JVF9VUkx8U1ZOX0NPTU1BTkR8U1ZOX09QVElPTlN8U1ZOX1VQREFURV9PUFRJT05TfFRFU1RfTE9BRHxURVNUX1RJTUVPVVR8VFJJR0dFUl9TSVRFfFVQREFURV9DT01NQU5EfFVQREFURV9PUFRJT05TfFVQREFURV9WRVJTSU9OX09OTFl8VVNFX0xBVU5DSEVSUyl8Q1lHV0lOfEVOVnxFWEVDVVRBQkxFX09VVFBVVF9QQVRIfEdIUy1NVUxUSXxJT1N8TElCUkFSWV9PVVRQVVRfUEFUSHxNSU5HV3xNU1ZDKD86MTB8MTF8MTJ8MTR8NjB8NzB8NzF8ODB8OTB8X0lERXxfVE9PTFNFVF9WRVJTSU9OfF9WRVJTSU9OKT98TVNZU3xQUk9KRUNUXyg/OkJJTkFSWV9ESVJ8REVTQ1JJUFRJT058SE9NRVBBR0VfVVJMfE5BTUV8U09VUkNFX0RJUnxWRVJTSU9OfFZFUlNJT05fKD86TUFKT1J8TUlOT1J8UEFUQ0h8VFdFQUspKXxVTklYfFdJTjMyfFdJTkNFfFdJTkRPV1NfUEhPTkV8V0lORE9XU19TVE9SRXxYQ09ERXxYQ09ERV9WRVJTSU9OKSlcYi8scHJvcGVydHk6L1xiKD86Y3h4X1x3K3woPzpBUkNISVZFX09VVFBVVF8oPzpESVJFQ1RPUll8TkFNRSl8Q09NUElMRV9ERUZJTklUSU9OU3xDT01QSUxFX1BEQl9OQU1FfENPTVBJTEVfUERCX09VVFBVVF9ESVJFQ1RPUll8RVhDTFVERV9GUk9NX0RFRkFVTFRfQlVJTER8SU1QT1JURURfKD86SU1QTElCfExJQk5BTUV8TElOS19ERVBFTkRFTlRfTElCUkFSSUVTfExJTktfSU5URVJGQUNFX0xBTkdVQUdFU3xMSU5LX0lOVEVSRkFDRV9MSUJSQVJJRVN8TElOS19JTlRFUkZBQ0VfTVVMVElQTElDSVRZfExPQ0FUSU9OfE5PX1NPTkFNRXxPQkpFQ1RTfFNPTkFNRSl8SU5URVJQUk9DRURVUkFMX09QVElNSVpBVElPTnxMSUJSQVJZX09VVFBVVF9ESVJFQ1RPUll8TElCUkFSWV9PVVRQVVRfTkFNRXxMSU5LX0ZMQUdTfExJTktfSU5URVJGQUNFX0xJQlJBUklFU3xMSU5LX0lOVEVSRkFDRV9NVUxUSVBMSUNJVFl8TE9DQVRJT058TUFQX0lNUE9SVEVEX0NPTkZJR3xPU1hfQVJDSElURUNUVVJFU3xPVVRQVVRfTkFNRXxQREJfTkFNRXxQREJfT1VUUFVUX0RJUkVDVE9SWXxSVU5USU1FX09VVFBVVF9ESVJFQ1RPUll8UlVOVElNRV9PVVRQVVRfTkFNRXxTVEFUSUNfTElCUkFSWV9GTEFHU3xWU19DU0hBUlB8VlNfRE9UTkVUX1JFRkVSRU5DRVBST1B8VlNfRE9UTkVUX1JFRkVSRU5DRXxWU19HTE9CQUxfU0VDVElPTl9QT1NUfFZTX0dMT0JBTF9TRUNUSU9OX1BSRXxWU19HTE9CQUx8WENPREVfQVRUUklCVVRFKV9cdyt8XHcrXyg/OkNMQU5HX1RJRFl8Q09NUElMRVJfTEFVTkNIRVJ8Q1BQQ0hFQ0t8Q1BQTElOVHxJTkNMVURFX1dIQVRfWU9VX1VTRXxPVVRQVVRfTkFNRXxQT1NURklYfFZJU0lCSUxJVFlfUFJFU0VUKXxBQlNUUkFDVHxBRERJVElPTkFMX01BS0VfQ0xFQU5fRklMRVN8QURWQU5DRUR8QUxJQVNFRF9UQVJHRVR8QUxMT1dfRFVQTElDQVRFX0NVU1RPTV9UQVJHRVRTfEFORFJPSURfKD86QU5UX0FERElUSU9OQUxfT1BUSU9OU3xBUEl8QVBJX01JTnxBUkNIfEFTU0VUU19ESVJFQ1RPUklFU3xHVUl8SkFSX0RFUEVOREVOQ0lFU3xOQVRJVkVfTElCX0RFUEVOREVOQ0lFU3xOQVRJVkVfTElCX0RJUkVDVE9SSUVTfFBST0NFU1NfTUFYfFBST0dVQVJEfFBST0dVQVJEX0NPTkZJR19QQVRIfFNFQ1VSRV9QUk9QU19QQVRIfFNLSVBfQU5UX1NURVB8U1RMX1RZUEUpfEFSQ0hJVkVfT1VUUFVUX0RJUkVDVE9SWXxBVFRBQ0hFRF9GSUxFU3xBVFRBQ0hFRF9GSUxFU19PTl9GQUlMfEFVVE9HRU5fKD86QlVJTERfRElSfE9SSUdJTl9ERVBFTkRTfFBBUkFMTEVMfFNPVVJDRV9HUk9VUHxUQVJHRVRTX0ZPTERFUnxUQVJHRVRfREVQRU5EUyl8QVVUT01PQ3xBVVRPTU9DXyg/OkNPTVBJTEVSX1BSRURFRklORVN8REVQRU5EX0ZJTFRFUlN8RVhFQ1VUQUJMRXxNQUNST19OQU1FU3xNT0NfT1BUSU9OU3xTT1VSQ0VfR1JPVVB8VEFSR0VUU19GT0xERVIpfEFVVE9SQ0N8QVVUT1JDQ19FWEVDVVRBQkxFfEFVVE9SQ0NfT1BUSU9OU3xBVVRPUkNDX1NPVVJDRV9HUk9VUHxBVVRPVUlDfEFVVE9VSUNfRVhFQ1VUQUJMRXxBVVRPVUlDX09QVElPTlN8QVVUT1VJQ19TRUFSQ0hfUEFUSFN8QklOQVJZX0RJUnxCVUlMRFNZU1RFTV9UQVJHRVRTfEJVSUxEX1JQQVRIfEJVSUxEX1JQQVRIX1VTRV9PUklHSU58QlVJTERfV0lUSF9JTlNUQUxMX05BTUVfRElSfEJVSUxEX1dJVEhfSU5TVEFMTF9SUEFUSHxCVU5ETEV8QlVORExFX0VYVEVOU0lPTnxDQUNIRV9WQVJJQUJMRVN8Q0xFQU5fTk9fQ1VTVE9NfENPTU1PTl9MQU5HVUFHRV9SVU5USU1FfENPTVBBVElCTEVfSU5URVJGQUNFXyg/OkJPT0x8TlVNQkVSX01BWHxOVU1CRVJfTUlOfFNUUklORyl8Q09NUElMRV8oPzpERUZJTklUSU9OU3xGRUFUVVJFU3xGTEFHU3xPUFRJT05TfFBEQl9OQU1FfFBEQl9PVVRQVVRfRElSRUNUT1JZKXxDT1NUfENQQUNLX0RFU0tUT1BfU0hPUlRDVVRTfENQQUNLX05FVkVSX09WRVJXUklURXxDUEFDS19QRVJNQU5FTlR8Q1BBQ0tfU1RBUlRVUF9TSE9SVENVVFN8Q1BBQ0tfU1RBUlRfTUVOVV9TSE9SVENVVFN8Q1BBQ0tfV0lYX0FDTHxDUk9TU0NPTVBJTElOR19FTVVMQVRPUnxDVURBX0VYVEVOU0lPTlN8Q1VEQV9QVFhfQ09NUElMQVRJT058Q1VEQV9SRVNPTFZFX0RFVklDRV9TWU1CT0xTfENVREFfU0VQQVJBQkxFX0NPTVBJTEFUSU9OfENVREFfU1RBTkRBUkR8Q1VEQV9TVEFOREFSRF9SRVFVSVJFRHxDWFhfRVhURU5TSU9OU3xDWFhfU1RBTkRBUkR8Q1hYX1NUQU5EQVJEX1JFUVVJUkVEfENfRVhURU5TSU9OU3xDX1NUQU5EQVJEfENfU1RBTkRBUkRfUkVRVUlSRUR8REVCVUdfQ09ORklHVVJBVElPTlN8REVGSU5FX1NZTUJPTHxERUZJTklUSU9OU3xERVBFTkRTfERFUExPWU1FTlRfQURESVRJT05BTF9GSUxFU3xERVBMT1lNRU5UX1JFTU9URV9ESVJFQ1RPUll8RElTQUJMRUR8RElTQUJMRURfRkVBVFVSRVN8RUNMSVBTRV9FWFRSQV9DUFJPSkVDVF9DT05URU5UU3xFQ0xJUFNFX0VYVFJBX05BVFVSRVN8RU5BQkxFRF9GRUFUVVJFU3xFTkFCTEVEX0xBTkdVQUdFU3xFTkFCTEVfRVhQT1JUU3xFTlZJUk9OTUVOVHxFWENMVURFX0ZST01fQUxMfEVYQ0xVREVfRlJPTV9ERUZBVUxUX0JVSUxEfEVYUE9SVF9OQU1FfEVYUE9SVF9QUk9QRVJUSUVTfEVYVEVSTkFMX09CSkVDVHxFY2hvU3RyaW5nfEZBSUxfUkVHVUxBUl9FWFBSRVNTSU9OfEZJTkRfTElCUkFSWV9VU0VfTElCMzJfUEFUSFN8RklORF9MSUJSQVJZX1VTRV9MSUI2NF9QQVRIU3xGSU5EX0xJQlJBUllfVVNFX0xJQlgzMl9QQVRIU3xGSU5EX0xJQlJBUllfVVNFX09QRU5CU0RfVkVSU0lPTklOR3xGSVhUVVJFU19DTEVBTlVQfEZJWFRVUkVTX1JFUVVJUkVEfEZJWFRVUkVTX1NFVFVQfEZPTERFUnxGUkFNRVdPUkt8Rm9ydHJhbl9GT1JNQVR8Rm9ydHJhbl9NT0RVTEVfRElSRUNUT1JZfEdFTkVSQVRFRHxHRU5FUkFUT1JfRklMRV9OQU1FfEdFTkVSQVRPUl9JU19NVUxUSV9DT05GSUd8R0hTX0lOVEVHUklUWV9BUFB8R0hTX05PX1NPVVJDRV9HUk9VUF9GSUxFfEdMT0JBTF9ERVBFTkRTX0RFQlVHX01PREV8R0xPQkFMX0RFUEVORFNfTk9fQ1lDTEVTfEdOVXRvTVN8SEFTX0NYWHxIRUFERVJfRklMRV9PTkxZfEhFTFBTVFJJTkd8SU1QTElDSVRfREVQRU5EU19JTkNMVURFX1RSQU5TRk9STXxJTVBPUlRFRHxJTVBPUlRFRF8oPzpDT01NT05fTEFOR1VBR0VfUlVOVElNRXxDT05GSUdVUkFUSU9OU3xHTE9CQUx8SU1QTElCfExJQk5BTUV8TElOS19ERVBFTkRFTlRfTElCUkFSSUVTfExJTktfSU5URVJGQUNFXyg/OkxBTkdVQUdFU3xMSUJSQVJJRVN8TVVMVElQTElDSVRZKXxMT0NBVElPTnxOT19TT05BTUV8T0JKRUNUU3xTT05BTUUpfElNUE9SVF9QUkVGSVh8SU1QT1JUX1NVRkZJWHxJTkNMVURFX0RJUkVDVE9SSUVTfElOQ0xVREVfUkVHVUxBUl9FWFBSRVNTSU9OfElOU1RBTExfTkFNRV9ESVJ8SU5TVEFMTF9SUEFUSHxJTlNUQUxMX1JQQVRIX1VTRV9MSU5LX1BBVEh8SU5URVJGQUNFXyg/OkFVVE9VSUNfT1BUSU9OU3xDT01QSUxFX0RFRklOSVRJT05TfENPTVBJTEVfRkVBVFVSRVN8Q09NUElMRV9PUFRJT05TfElOQ0xVREVfRElSRUNUT1JJRVN8TElOS19ERVBFTkRTfExJTktfRElSRUNUT1JJRVN8TElOS19MSUJSQVJJRVN8TElOS19PUFRJT05TfFBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREV8U09VUkNFU3xTWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyl8SU5URVJQUk9DRURVUkFMX09QVElNSVpBVElPTnxJTl9UUllfQ09NUElMRXxJT1NfSU5TVEFMTF9DT01CSU5FRHxKT0JfUE9PTFN8Sk9CX1BPT0xfQ09NUElMRXxKT0JfUE9PTF9MSU5LfEtFRVBfRVhURU5TSU9OfExBQkVMU3xMQU5HVUFHRXxMSUJSQVJZX09VVFBVVF9ESVJFQ1RPUll8TElOS0VSX0xBTkdVQUdFfExJTktfKD86REVQRU5EU3xERVBFTkRTX05PX1NIQVJFRHxESVJFQ1RPUklFU3xGTEFHU3xJTlRFUkZBQ0VfTElCUkFSSUVTfElOVEVSRkFDRV9NVUxUSVBMSUNJVFl8TElCUkFSSUVTfE9QVElPTlN8U0VBUkNIX0VORF9TVEFUSUN8U0VBUkNIX1NUQVJUX1NUQVRJQ3xXSEFUX1lPVV9VU0UpfExJU1RGSUxFX1NUQUNLfExPQ0FUSU9OfE1BQ09TWF9CVU5ETEV8TUFDT1NYX0JVTkRMRV9JTkZPX1BMSVNUfE1BQ09TWF9GUkFNRVdPUktfSU5GT19QTElTVHxNQUNPU1hfUEFDS0FHRV9MT0NBVElPTnxNQUNPU1hfUlBBVEh8TUFDUk9TfE1BTlVBTExZX0FEREVEX0RFUEVOREVOQ0lFU3xNRUFTVVJFTUVOVHxNT0RJRklFRHxOQU1FfE5PX1NPTkFNRXxOT19TWVNURU1fRlJPTV9JTVBPUlRFRHxPQkpFQ1RfREVQRU5EU3xPQkpFQ1RfT1VUUFVUU3xPU1hfQVJDSElURUNUVVJFU3xPVVRQVVRfTkFNRXxQQUNLQUdFU19GT1VORHxQQUNLQUdFU19OT1RfRk9VTkR8UEFSRU5UX0RJUkVDVE9SWXxQQVNTX1JFR1VMQVJfRVhQUkVTU0lPTnxQREJfTkFNRXxQREJfT1VUUFVUX0RJUkVDVE9SWXxQT1NJVElPTl9JTkRFUEVOREVOVF9DT0RFfFBPU1RfSU5TVEFMTF9TQ1JJUFR8UFJFREVGSU5FRF9UQVJHRVRTX0ZPTERFUnxQUkVGSVh8UFJFX0lOU1RBTExfU0NSSVBUfFBSSVZBVEVfSEVBREVSfFBST0NFU1NPUlN8UFJPQ0VTU09SX0FGRklOSVRZfFBST0pFQ1RfTEFCRUx8UFVCTElDX0hFQURFUnxSRVBPUlRfVU5ERUZJTkVEX1BST1BFUlRJRVN8UkVRVUlSRURfRklMRVN8UkVTT1VSQ0V8UkVTT1VSQ0VfTE9DS3xSVUxFX0xBVU5DSF9DT01QSUxFfFJVTEVfTEFVTkNIX0NVU1RPTXxSVUxFX0xBVU5DSF9MSU5LfFJVTEVfTUVTU0FHRVN8UlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfFJVTl9TRVJJQUx8U0tJUF9BVVRPR0VOfFNLSVBfQVVUT01PQ3xTS0lQX0FVVE9SQ0N8U0tJUF9BVVRPVUlDfFNLSVBfQlVJTERfUlBBVEh8U0tJUF9SRVRVUk5fQ09ERXxTT1VSQ0VTfFNPVVJDRV9ESVJ8U09WRVJTSU9OfFNUQVRJQ19MSUJSQVJZX0ZMQUdTfFNUQVRJQ19MSUJSQVJZX09QVElPTlN8U1RSSU5HU3xTVUJESVJFQ1RPUklFU3xTVUZGSVh8U1lNQk9MSUN8VEFSR0VUX0FSQ0hJVkVTX01BWV9CRV9TSEFSRURfTElCU3xUQVJHRVRfTUVTU0FHRVN8VEFSR0VUX1NVUFBPUlRTX1NIQVJFRF9MSUJTfFRFU1RTfFRFU1RfSU5DTFVERV9GSUxFfFRFU1RfSU5DTFVERV9GSUxFU3xUSU1FT1VUfFRJTUVPVVRfQUZURVJfTUFUQ0h8VFlQRXxVU0VfRk9MREVSU3xWQUxVRXxWQVJJQUJMRVN8VkVSU0lPTnxWSVNJQklMSVRZX0lOTElORVNfSElEREVOfFZTXyg/OkNPTkZJR1VSQVRJT05fVFlQRXxDT1BZX1RPX09VVF9ESVJ8REVCVUdHRVJfKD86Q09NTUFORHxDT01NQU5EX0FSR1VNRU5UU3xFTlZJUk9OTUVOVHxXT1JLSU5HX0RJUkVDVE9SWSl8REVQTE9ZTUVOVF9DT05URU5UfERFUExPWU1FTlRfTE9DQVRJT058RE9UTkVUX1JFRkVSRU5DRVN8RE9UTkVUX1JFRkVSRU5DRVNfQ09QWV9MT0NBTHxHTE9CQUxfS0VZV09SRHxHTE9CQUxfUFJPSkVDVF9UWVBFU3xHTE9CQUxfUk9PVE5BTUVTUEFDRXxJTkNMVURFX0lOX1ZTSVh8SU9UX1NUQVJUVVBfVEFTS3xLRVlXT1JEfFJFU09VUkNFX0dFTkVSQVRPUnxTQ0NfQVVYUEFUSHxTQ0NfTE9DQUxQQVRIfFNDQ19QUk9KRUNUTkFNRXxTQ0NfUFJPVklERVJ8U0RLX1JFRkVSRU5DRVN8U0hBREVSXyg/OkRJU0FCTEVfT1BUSU1JWkFUSU9OU3xFTkFCTEVfREVCVUd8RU5UUllQT0lOVHxGTEFHU3xNT0RFTHxPQkpFQ1RfRklMRV9OQU1FfE9VVFBVVF9IRUFERVJfRklMRXxUWVBFfFZBUklBQkxFX05BTUUpfFNUQVJUVVBfUFJPSkVDVHxUT09MX09WRVJSSURFfFVTRVJfUFJPUFN8V0lOUlRfQ09NUE9ORU5UfFdJTlJUX0VYVEVOU0lPTlN8V0lOUlRfUkVGRVJFTkNFU3xYQU1MX1RZUEUpfFdJTExfRkFJTHxXSU4zMl9FWEVDVVRBQkxFfFdJTkRPV1NfRVhQT1JUX0FMTF9TWU1CT0xTfFdPUktJTkdfRElSRUNUT1JZfFdSQVBfRVhDTFVERXxYQ09ERV8oPzpFTUlUX0VGRkVDVElWRV9QTEFURk9STV9OQU1FfEVYUExJQ0lUX0ZJTEVfVFlQRXxGSUxFX0FUVFJJQlVURVN8TEFTVF9LTk9XTl9GSUxFX1RZUEV8UFJPRFVDVF9UWVBFfFNDSEVNRV8oPzpBRERSRVNTX1NBTklUSVpFUnxBRERSRVNTX1NBTklUSVpFUl9VU0VfQUZURVJfUkVUVVJOfEFSR1VNRU5UU3xESVNBQkxFX01BSU5fVEhSRUFEX0NIRUNLRVJ8RFlOQU1JQ19MSUJSQVJZX0xPQURTfERZTkFNSUNfTElOS0VSX0FQSV9VU0FHRXxFTlZJUk9OTUVOVHxFWEVDVVRBQkxFfEdVQVJEX01BTExPQ3xNQUlOX1RIUkVBRF9DSEVDS0VSX1NUT1B8TUFMTE9DX0dVQVJEX0VER0VTfE1BTExPQ19TQ1JJQkJMRXxNQUxMT0NfU1RBQ0t8VEhSRUFEX1NBTklUSVpFUig/Ol9TVE9QKT98VU5ERUZJTkVEX0JFSEFWSU9VUl9TQU5JVElaRVIoPzpfU1RPUCk/fFpPTUJJRV9PQkpFQ1RTKSl8WENURVNUKVxiLyxrZXl3b3JkOi9cYig/OmFkZF9jb21waWxlX2RlZmluaXRpb25zfGFkZF9jb21waWxlX29wdGlvbnN8YWRkX2N1c3RvbV9jb21tYW5kfGFkZF9jdXN0b21fdGFyZ2V0fGFkZF9kZWZpbml0aW9uc3xhZGRfZGVwZW5kZW5jaWVzfGFkZF9leGVjdXRhYmxlfGFkZF9saWJyYXJ5fGFkZF9saW5rX29wdGlvbnN8YWRkX3N1YmRpcmVjdG9yeXxhZGRfdGVzdHxhdXhfc291cmNlX2RpcmVjdG9yeXxicmVha3xidWlsZF9jb21tYW5kfGJ1aWxkX25hbWV8Y21ha2VfaG9zdF9zeXN0ZW1faW5mb3JtYXRpb258Y21ha2VfbWluaW11bV9yZXF1aXJlZHxjbWFrZV9wYXJzZV9hcmd1bWVudHN8Y21ha2VfcG9saWN5fGNvbmZpZ3VyZV9maWxlfGNvbnRpbnVlfGNyZWF0ZV90ZXN0X3NvdXJjZWxpc3R8Y3Rlc3RfYnVpbGR8Y3Rlc3RfY29uZmlndXJlfGN0ZXN0X2NvdmVyYWdlfGN0ZXN0X2VtcHR5X2JpbmFyeV9kaXJlY3Rvcnl8Y3Rlc3RfbWVtY2hlY2t8Y3Rlc3RfcmVhZF9jdXN0b21fZmlsZXN8Y3Rlc3RfcnVuX3NjcmlwdHxjdGVzdF9zbGVlcHxjdGVzdF9zdGFydHxjdGVzdF9zdWJtaXR8Y3Rlc3RfdGVzdHxjdGVzdF91cGRhdGV8Y3Rlc3RfdXBsb2FkfGRlZmluZV9wcm9wZXJ0eXxlbHNlfGVsc2VpZnxlbmFibGVfbGFuZ3VhZ2V8ZW5hYmxlX3Rlc3Rpbmd8ZW5kZm9yZWFjaHxlbmRmdW5jdGlvbnxlbmRpZnxlbmRtYWNyb3xlbmR3aGlsZXxleGVjX3Byb2dyYW18ZXhlY3V0ZV9wcm9jZXNzfGV4cG9ydHxleHBvcnRfbGlicmFyeV9kZXBlbmRlbmNpZXN8ZmlsZXxmaW5kX2ZpbGV8ZmluZF9saWJyYXJ5fGZpbmRfcGFja2FnZXxmaW5kX3BhdGh8ZmluZF9wcm9ncmFtfGZsdGtfd3JhcF91aXxmb3JlYWNofGZ1bmN0aW9ufGdldF9jbWFrZV9wcm9wZXJ0eXxnZXRfZGlyZWN0b3J5X3Byb3BlcnR5fGdldF9maWxlbmFtZV9jb21wb25lbnR8Z2V0X3Byb3BlcnR5fGdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eXxnZXRfdGFyZ2V0X3Byb3BlcnR5fGdldF90ZXN0X3Byb3BlcnR5fGlmfGluY2x1ZGV8aW5jbHVkZV9kaXJlY3Rvcmllc3xpbmNsdWRlX2V4dGVybmFsX21zcHJvamVjdHxpbmNsdWRlX2d1YXJkfGluY2x1ZGVfcmVndWxhcl9leHByZXNzaW9ufGluc3RhbGx8aW5zdGFsbF9maWxlc3xpbnN0YWxsX3Byb2dyYW1zfGluc3RhbGxfdGFyZ2V0c3xsaW5rX2RpcmVjdG9yaWVzfGxpbmtfbGlicmFyaWVzfGxpc3R8bG9hZF9jYWNoZXxsb2FkX2NvbW1hbmR8bWFjcm98bWFrZV9kaXJlY3Rvcnl8bWFya19hc19hZHZhbmNlZHxtYXRofG1lc3NhZ2V8b3B0aW9ufG91dHB1dF9yZXF1aXJlZF9maWxlc3xwcm9qZWN0fHF0X3dyYXBfY3BwfHF0X3dyYXBfdWl8cmVtb3ZlfHJlbW92ZV9kZWZpbml0aW9uc3xyZXR1cm58c2VwYXJhdGVfYXJndW1lbnRzfHNldHxzZXRfZGlyZWN0b3J5X3Byb3BlcnRpZXN8c2V0X3Byb3BlcnR5fHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllc3xzZXRfdGFyZ2V0X3Byb3BlcnRpZXN8c2V0X3Rlc3RzX3Byb3BlcnRpZXN8c2l0ZV9uYW1lfHNvdXJjZV9ncm91cHxzdHJpbmd8c3ViZGlyX2RlcGVuZHN8c3ViZGlyc3x0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9uc3x0YXJnZXRfY29tcGlsZV9mZWF0dXJlc3x0YXJnZXRfY29tcGlsZV9vcHRpb25zfHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzfHRhcmdldF9saW5rX2RpcmVjdG9yaWVzfHRhcmdldF9saW5rX2xpYnJhcmllc3x0YXJnZXRfbGlua19vcHRpb25zfHRhcmdldF9zb3VyY2VzfHRyeV9jb21waWxlfHRyeV9ydW58dW5zZXR8dXNlX21hbmdsZWRfbWVzYXx1dGlsaXR5X3NvdXJjZXx2YXJpYWJsZV9yZXF1aXJlc3x2YXJpYWJsZV93YXRjaHx3aGlsZXx3cml0ZV9maWxlKSg/PVxzKlwoKVxiLyxib29sZWFuOi9cYig/OkZBTFNFfE9GRnxPTnxUUlVFKVxiLyxuYW1lc3BhY2U6L1xiKD86SU5URVJGQUNFfFBSSVZBVEV8UFJPUEVSVElFU3xQVUJMSUN8U0hBUkVEfFNUQVRJQ3xUQVJHRVRfT0JKRUNUUylcYi8sb3BlcmF0b3I6L1xiKD86QU5EfERFRklORUR8RVFVQUx8R1JFQVRFUnxMRVNTfE1BVENIRVN8Tk9UfE9SfFNUUkVRVUFMfFNUUkdSRUFURVJ8U1RSTEVTU3xWRVJTSU9OX0VRVUFMfFZFUlNJT05fR1JFQVRFUnxWRVJTSU9OX0xFU1MpXGIvLGluc2VydGVkOntwYXR0ZXJuOi9cYlx3Kzo6XHcrXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn0sbnVtYmVyOi9cYlxkKyg/OlwuXGQrKSpcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpXGIvaSxwdW5jdHVhdGlvbjovWygpPn1dfFwkWzx7XS99fXJldHVybiBCdX12YXIgJHUsRXc7ZnVuY3Rpb24gZUgoKXtpZihFdylyZXR1cm4gJHU7RXc9MSwkdT1lLGUuZGlzcGxheU5hbWU9ImNvYm9sIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5jb2JvbD17Y29tbWVudDp7cGF0dGVybjovXCo+Lip8KF5bIFx0XSopXCouKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46L1t4emduXT8oPzoiKD86W15cclxuIl18IiIpKiIoPyEiKXwnKD86W15cclxuJ118JycpKicoPyEnKSkvaSxncmVlZHk6ITB9LGxldmVsOntwYXR0ZXJuOi8oXlsgXHRdKilcZCtcYi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJudW1iZXIifSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYnBpYyg/OnR1cmUpP1xzKykoPzooPzpbLVx3JC8sOiorPD5dfFwuKD8hXHN8JCkpKD86XChcZCtcKSk/KSsvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7bnVtYmVyOntwYXR0ZXJuOi8oXCgpXGQrLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWygpXS99fSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxbXlx3LV0pKD86QUJPUlR8QUNDRVBUfEFDQ0VTU3xBRER8QUREUkVTU3xBRFZBTkNJTkd8QUZURVJ8QUxJR05FRHxBTEx8QUxQSEFCRVR8QUxQSEFCRVRJQ3xBTFBIQUJFVElDLUxPV0VSfEFMUEhBQkVUSUMtVVBQRVJ8QUxQSEFOVU1FUklDfEFMUEhBTlVNRVJJQy1FRElURUR8QUxTT3xBTFRFUnxBTFRFUk5BVEV8QU5ZfEFSRXxBUkVBfEFSRUFTfEFTfEFTQ0VORElOR3xBU0NJSXxBU1NJR058QVNTT0NJQVRFRC1EQVRBfEFTU09DSUFURUQtREFUQS1MRU5HVEh8QVR8QVRUUklCVVRFfEFVVEhPUnxBVVRPfEFVVE8tU0tJUHxCQUNLR1JPVU5ELUNPTE9SfEJBQ0tHUk9VTkQtQ09MT1VSfEJBU0lTfEJFRVB8QkVGT1JFfEJFR0lOTklOR3xCRUxMfEJJTkFSWXxCSVR8QkxBTkt8QkxJTkt8QkxPQ0t8Qk9UVE9NfEJPVU5EU3xCWXxCWUZVTkNUSU9OfEJZVElUTEV8Q0FMTHxDQU5DRUx8Q0FQQUJMRXxDQ1NWRVJTSU9OfENEfENGfENIfENIQUlOSU5HfENIQU5HRUR8Q0hBTk5FTHxDSEFSQUNURVJ8Q0hBUkFDVEVSU3xDTEFTU3xDTEFTUy1JRHxDTE9DSy1VTklUU3xDTE9TRXxDTE9TRS1ESVNQT1NJVElPTnxDT0JPTHxDT0RFfENPREUtU0VUfENPTHxDT0xMQVRJTkd8Q09MVU1OfENPTS1SRUd8Q09NTUF8Q09NTUlUTUVOVHxDT01NT058Q09NTVVOSUNBVElPTnxDT01QfENPTVAtMXxDT01QLTJ8Q09NUC0zfENPTVAtNHxDT01QLTV8Q09NUFVUQVRJT05BTHxDT01QVVRBVElPTkFMLTF8Q09NUFVUQVRJT05BTC0yfENPTVBVVEFUSU9OQUwtM3xDT01QVVRBVElPTkFMLTR8Q09NUFVUQVRJT05BTC01fENPTVBVVEV8Q09ORklHVVJBVElPTnxDT05UQUlOU3xDT05URU5UfENPTlRJTlVFfENPTlRST0x8Q09OVFJPTC1QT0lOVHxDT05UUk9MU3xDT05WRU5USU9OfENPTlZFUlRJTkd8Q09QWXxDT1JSfENPUlJFU1BPTkRJTkd8Q09VTlR8Q1JVTkNIfENVUlJFTkNZfENVUlNPUnxEQVRBfERBVEEtQkFTRXxEQVRFfERBVEUtQ09NUElMRUR8REFURS1XUklUVEVOfERBWXxEQVktT0YtV0VFS3xEQkNTfERFfERFQlVHLUNPTlRFTlRTfERFQlVHLUlURU18REVCVUctTElORXxERUJVRy1OQU1FfERFQlVHLVNVQi0xfERFQlVHLVNVQi0yfERFQlVHLVNVQi0zfERFQlVHR0lOR3xERUNJTUFMLVBPSU5UfERFQ0xBUkFUSVZFU3xERUZBVUxUfERFRkFVTFQtRElTUExBWXxERUZJTklUSU9OfERFTEVURXxERUxJTUlURUR8REVMSU1JVEVSfERFUEVORElOR3xERVNDRU5ESU5HfERFU1RJTkFUSU9OfERFVEFJTHxERkhSRVNQfERGSFZBTFVFfERJU0FCTEV8RElTS3xESVNQTEFZfERJU1BMQVktMXxESVZJREV8RElWSVNJT058RE9OVENBUkV8RE9VQkxFfERPV058RFVQTElDQVRFU3xEWU5BTUlDfEVCQ0RJQ3xFR0NTfEVHSXxFTFNFfEVNSXxFTVBUWS1DSEVDS3xFTkFCTEV8RU5EfEVORC1BQ0NFUFR8RU5ELUFERHxFTkQtQ0FMTHxFTkQtQ09NUFVURXxFTkQtREVMRVRFfEVORC1ESVZJREV8RU5ELUVWQUxVQVRFfEVORC1JRnxFTkQtTVVMVElQTFl8RU5ELU9GLVBBR0V8RU5ELVBFUkZPUk18RU5ELVJFQUR8RU5ELVJFQ0VJVkV8RU5ELVJFVFVSTnxFTkQtUkVXUklURXxFTkQtU0VBUkNIfEVORC1TVEFSVHxFTkQtU1RSSU5HfEVORC1TVUJUUkFDVHxFTkQtVU5TVFJJTkd8RU5ELVdSSVRFfEVORElOR3xFTlRFUnxFTlRSWXxFTlRSWS1QUk9DRURVUkV8RU5WSVJPTk1FTlR8RU9MfEVPUHxFT1N8RVJBU0V8RVJST1J8RVNDQVBFfEVTSXxFVkFMVUFURXxFVkVOVHxFVkVSWXxFWENFUFRJT058RVhDTFVTSVZFfEVYSElCSVR8RVhJVHxFWFBPUlR8RVhURU5EfEVYVEVOREVEfEVYVEVSTkFMfEZEfEZJTEV8RklMRS1DT05UUk9MfEZJTExFUnxGSU5BTHxGSVJTVHxGT09USU5HfEZPUnxGT1JFR1JPVU5ELUNPTE9SfEZPUkVHUk9VTkQtQ09MT1VSfEZST018RlVMTHxGVU5DVElPTnxGVU5DVElPTi1QT0lOVEVSfEZVTkNUSU9OTkFNRXxHRU5FUkFURXxHSVZJTkd8R0xPQkFMfEdPfEdPQkFDS3xHUklEfEdST1VQfEhFQURJTkd8SElHSC1WQUxVRXxISUdILVZBTFVFU3xISUdITElHSFR8SS1PfEktTy1DT05UUk9MfElEfElERU5USUZJQ0FUSU9OfElGfElNUExJQ0lUfElNUE9SVHxJTnxJTkRFWHxJTkRFWEVEfElORElDQVRFfElOSVRJQUx8SU5JVElBTElaRXxJTklUSUFURXxJTlBVVHxJTlBVVC1PVVRQVVR8SU5TUEVDVHxJTlNUQUxMQVRJT058SU5URUdFUnxJTlRPfElOVkFMSUR8SU5WT0tFfElTfEpVU1R8SlVTVElGSUVEfEtBTkpJfEtFUFR8S0VZfEtFWUJPQVJEfExBQkVMfExBTkdVQUdFfExBU1R8TEJ8TER8TEVBRElOR3xMRUZUfExFRlRMSU5FfExFTkdUSHxMRU5HVEgtQ0hFQ0t8TElCQUNDRVNTfExJQlBBUkFNRVRFUnxMSUJSQVJZfExJTUlUfExJTUlUU3xMSU5BR0V8TElOQUdFLUNPVU5URVJ8TElORXxMSU5FLUNPVU5URVJ8TElORVN8TElOS0FHRXxMSVNUfExPQ0FMfExPQ0FMLVNUT1JBR0V8TE9DS3xMT05HLURBVEV8TE9ORy1USU1FfExPVy1WQUxVRXxMT1ctVkFMVUVTfExPV0VSfExPV0xJR0hUfE1FTU9SWXxNRVJHRXxNRVNTQUdFfE1NRERZWVlZfE1PREV8TU9EVUxFU3xNT1JFLUxBQkVMU3xNT1ZFfE1VTFRJUExFfE1VTFRJUExZfE5BTUVEfE5BVElPTkFMfE5BVElPTkFMLUVESVRFRHxOQVRJVkV8TkVHQVRJVkV8TkVUV09SS3xORVhUfE5PfE5PLUVDSE98TlVMTHxOVUxMU3xOVU1CRVJ8TlVNRVJJQ3xOVU1FUklDLURBVEV8TlVNRVJJQy1FRElURUR8TlVNRVJJQy1USU1FfE9CSkVDVC1DT01QVVRFUnxPQ0NVUlN8T0RUfE9GfE9GRnxPTUlUVEVEfE9OfE9QRU58T1BUSU9OQUx8T1JERVJ8T1JERVJMWXxPUkdBTklaQVRJT058T1RIRVJ8T1VUUFVUfE9WRVJGTE9XfE9WRVJMSU5FfE9XTnxQQUNLRUQtREVDSU1BTHxQQURESU5HfFBBR0V8UEFHRS1DT1VOVEVSfFBBU1NXT1JEfFBFUkZPUk18UEZ8UEh8UElDfFBJQ1RVUkV8UExVU3xQT0lOVEVSfFBPUlR8UE9TSVRJT058UE9TSVRJVkV8UFJJTlRFUnxQUklOVElOR3xQUklWQVRFfFBST0NFRFVSRXxQUk9DRURVUkUtUE9JTlRFUnxQUk9DRURVUkVTfFBST0NFRUR8UFJPQ0VTU3xQUk9HUkFNfFBST0dSQU0tSUR8UFJPR1JBTS1MSUJSQVJZfFBST01QVHxQVVJHRXxRVUVVRXxRVU9URXxRVU9URVN8UkFORE9NfFJEfFJFQUR8UkVBREVSfFJFQUx8UkVDRUlWRXxSRUNFSVZFRHxSRUNPUkR8UkVDT1JESU5HfFJFQ09SRFN8UkVDVVJTSVZFfFJFREVGSU5FU3xSRUVMfFJFRnxSRUZFUkVOQ0V8UkVGRVJFTkNFU3xSRUxBVElWRXxSRUxFQVNFfFJFTUFJTkRFUnxSRU1BUktTfFJFTU9URXxSRU1PVkFMfFJFTU9WRXxSRU5BTUVTfFJFUExBQ0V8UkVQTEFDSU5HfFJFUE9SVHxSRVBPUlRJTkd8UkVQT1JUU3xSRVFVSVJFRHxSRVJVTnxSRVNFUlZFfFJFU0VUfFJFVFVSTnxSRVRVUk4tQ09ERXxSRVRVUk5JTkd8UkVWRVJTRS1WSURFT3xSRVZFUlNFRHxSRVdJTkR8UkVXUklURXxSRnxSSHxSSUdIVHxST1VOREVEfFJVTnxTQU1FfFNBVkV8U0NSRUVOfFNEfFNFQVJDSHxTRUNUSU9OfFNFQ1VSRXxTRUNVUklUWXxTRUdNRU5UfFNFR01FTlQtTElNSVR8U0VMRUNUfFNFTkR8U0VOVEVOQ0V8U0VQQVJBVEV8U0VRVUVOQ0V8U0VRVUVOVElBTHxTRVR8U0hBUkVEfFNIQVJFREJZQUxMfFNIQVJFREJZUlVOVU5JVHxTSEFSSU5HfFNISUZULUlOfFNISUZULU9VVHxTSE9SVC1EQVRFfFNJR058U0laRXxTT1JUfFNPUlQtQ09OVFJPTHxTT1JULUNPUkUtU0laRXxTT1JULUZJTEUtU0laRXxTT1JULU1FUkdFfFNPUlQtTUVTU0FHRXxTT1JULU1PREUtU0laRXxTT1JULVJFVFVSTnxTT1VSQ0V8U09VUkNFLUNPTVBVVEVSfFNQQUNFfFNQQUNFU3xTUEVDSUFMLU5BTUVTfFNUQU5EQVJEfFNUQU5EQVJELTF8U1RBTkRBUkQtMnxTVEFSVHxTVEFUVVN8U1RPUHxTVFJJTkd8U1VCLVFVRVVFLTF8U1VCLVFVRVVFLTJ8U1VCLVFVRVVFLTN8U1VCVFJBQ1R8U1VNfFNVUFBSRVNTfFNZTUJPTHxTWU1CT0xJQ3xTWU5DfFNZTkNIUk9OSVpFRHxUQUJMRXxUQUxMWXxUQUxMWUlOR3xUQVBFfFRBU0t8VEVSTUlOQUx8VEVSTUlOQVRFfFRFU1R8VEVYVHxUSEVOfFRIUkVBRHxUSFJFQUQtTE9DQUx8VEhST1VHSHxUSFJVfFRJTUV8VElNRVJ8VElNRVN8VElUTEV8VE98VE9EQVlTLURBVEV8VE9EQVlTLU5BTUV8VE9QfFRSQUlMSU5HfFRSVU5DQVRFRHxUWVBFfFRZUEVERUZ8VU5ERVJMSU5FfFVOSVR8VU5TVFJJTkd8VU5USUx8VVB8VVBPTnxVU0FHRXxVU0V8VVNJTkd8VkFMVUV8VkFMVUVTfFZBUllJTkd8VklSVFVBTHxXQUlUfFdIRU58V0hFTi1DT01QSUxFRHxXSVRIfFdPUkRTfFdPUktJTkctU1RPUkFHRXxXUklURXxZRUFSfFlZWVlERER8WVlZWU1NRER8WkVSTy1GSUxMfFpFUk9FU3xaRVJPUykoPyFbXHctXSkvaSxsb29rYmVoaW5kOiEwfSxib29sZWFuOntwYXR0ZXJuOi8oXnxbXlx3LV0pKD86ZmFsc2V8dHJ1ZSkoPyFbXHctXSkvaSxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46LyhefFteXHctXSkoPzpbKy1dPyg/Oig/OlxkKyg/OlsuLF1cZCspP3xbLixdXGQrKSg/OmVbKy1dP1xkKyk/fHplcm8pKSg/IVtcdy1dKS9pLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOlsvPD58Wzw+XT0/fFs9KyovJl0vLHtwYXR0ZXJuOi8oXnxbXlx3LV0pKD86LXxhbmR8ZXF1YWx8Z3JlYXRlcnxsZXNzfG5vdHxvcnx0aGFuKSg/IVtcdy1dKS9pLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovWy46LCgpXS99fXJldHVybiAkdX12YXIgenUsU3c7ZnVuY3Rpb24gdEgoKXtpZihTdylyZXR1cm4genU7U3c9MSx6dT1lLGUuZGlzcGxheU5hbWU9ImNvZmZlZXNjcmlwdCIsZS5hbGlhc2VzPVsiY29mZmVlIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9LyMoPyFceykuKy8sYT17cGF0dGVybjovI1x7W159XStcfS8sYWxpYXM6InZhcmlhYmxlIn07bi5sYW5ndWFnZXMuY29mZmVlc2NyaXB0PW4ubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YXNjcmlwdCIse2NvbW1lbnQ6cixzdHJpbmc6W3twYXR0ZXJuOi8nKD86XFxbXHNcU118W15cXCddKSonLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8iKD86XFxbXHNcU118W15cXCJdKSoiLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOmF9fV0sa2V5d29yZDovXGIoPzphbmR8YnJlYWt8Ynl8Y2F0Y2h8Y2xhc3N8Y29udGludWV8ZGVidWdnZXJ8ZGVsZXRlfGRvfGVhY2h8ZWxzZXxleHRlbmR8ZXh0ZW5kc3xmYWxzZXxmaW5hbGx5fGZvcnxpZnxpbnxpbnN0YW5jZW9mfGlzfGlzbnR8bGV0fGxvb3B8bmFtZXNwYWNlfG5ld3xub3xub3R8bnVsbHxvZnxvZmZ8b258b3J8b3dufHJldHVybnxzdXBlcnxzd2l0Y2h8dGhlbnx0aGlzfHRocm93fHRydWV8dHJ5fHR5cGVvZnx1bmRlZmluZWR8dW5sZXNzfHVudGlsfHdoZW58d2hpbGV8d2luZG93fHdpdGh8eWVzfHlpZWxkKVxiLywiY2xhc3MtbWVtYmVyIjp7cGF0dGVybjovQCg/IVxkKVx3Ky8sYWxpYXM6InZhcmlhYmxlIn19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNvZmZlZXNjcmlwdCIsImNvbW1lbnQiLHsibXVsdGlsaW5lLWNvbW1lbnQiOntwYXR0ZXJuOi8jIyNbXHNcU10rPyMjIy8sYWxpYXM6ImNvbW1lbnQifSwiYmxvY2stcmVnZXgiOntwYXR0ZXJuOi9cL3szfVtcc1xTXSo/XC97M30vLGFsaWFzOiJyZWdleCIsaW5zaWRlOntjb21tZW50OnIsaW50ZXJwb2xhdGlvbjphfX19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNvZmZlZXNjcmlwdCIsInN0cmluZyIseyJpbmxpbmUtamF2YXNjcmlwdCI6e3BhdHRlcm46L2AoPzpcXFtcc1xTXXxbXlxcYF0pKmAvLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eYHxgJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sc2NyaXB0OntwYXR0ZXJuOi9bXHNcU10rLyxhbGlhczoibGFuZ3VhZ2UtamF2YXNjcmlwdCIsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fX0sIm11bHRpbGluZS1zdHJpbmciOlt7cGF0dGVybjovJycnW1xzXFNdKj8nJycvLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0se3BhdHRlcm46LyIiIltcc1xTXSo/IiIiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntpbnRlcnBvbGF0aW9uOmF9fV19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNvZmZlZXNjcmlwdCIsImtleXdvcmQiLHtwcm9wZXJ0eTovKD8hXGQpXHcrKD89XHMqOig/ITopKS99KSxkZWxldGUgbi5sYW5ndWFnZXMuY29mZmVlc2NyaXB0WyJ0ZW1wbGF0ZS1zdHJpbmciXSxuLmxhbmd1YWdlcy5jb2ZmZWU9bi5sYW5ndWFnZXMuY29mZmVlc2NyaXB0fSkodCl9cmV0dXJuIHp1fXZhciBqdSx3dztmdW5jdGlvbiBuSCgpe2lmKHd3KXJldHVybiBqdTt3dz0xLGp1PWUsZS5kaXNwbGF5TmFtZT0iY29uY3VybmFzIixlLmFsaWFzZXM9WyJjb25jIl07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5jb25jdXJuYXM9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qPyg/OlwqXC98JCl8XC9cLy4qKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGxhbmdleHQ6e3BhdHRlcm46L1xiXHcrXHMqXHxcfFtcc1xTXSs/XHxcfC8sZ3JlZWR5OiEwLGluc2lkZTp7ImNsYXNzLW5hbWUiOi9eXHcrLyxzdHJpbmc6e3BhdHRlcm46LyheXHMqXHxcfClbXHNcU10rKD89XHxcfCQpLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXHxcfC99fSxmdW5jdGlvbjp7cGF0dGVybjovKCg/Ol58XHMpZGVmWyBcdF0rKVthLXpBLVpfXVx3Kig/PVxzKlwoKS8sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhY3RvcnxhbHNvfGFubm90YXRpb258YXNzZXJ0fGFzeW5jfGF3YWl0fGJvb2x8Ym9vbGVhbnxicmVha3xieXRlfGNhc2V8Y2F0Y2h8Y2hhbmdlZHxjaGFyfGNsYXNzfGNsb3NlZHxjb25zdGFudHxjb250aW51ZXxkZWZ8ZGVmYXVsdHxkZWx8ZG91YmxlfGVsaWZ8ZWxzZXxlbnVtfGV2ZXJ5fGV4dGVuZHN8ZmFsc2V8ZmluYWxseXxmbG9hdHxmb3J8ZnJvbXxnbG9iYWx8Z3B1ZGVmfGdwdWtlcm5lbHxpZnxpbXBvcnR8aW58aW5pdHxpbmplY3R8aW50fGxhbWJkYXxsb2NhbHxsb25nfGxvb3B8bWF0Y2h8bmV3fG5vZGVmYXVsdHxudWxsfG9mfG9uY2hhbmdlfG9wZW58b3V0fG92ZXJyaWRlfHBhY2thZ2V8cGFyZm9yfHBhcmZvcnN5bmN8cG9zdHxwcmV8cHJpdmF0ZXxwcm90ZWN0ZWR8cHJvdmlkZXxwcm92aWRlcnxwdWJsaWN8cmV0dXJufHNoYXJlZHxzaG9ydHxzaW5nbGV8c2l6ZV90fHNpemVvZnxzdXBlcnxzeW5jfHRoaXN8dGhyb3d8dHJhaXR8dHJhbnN8dHJhbnNpZW50fHRydWV8dHJ5fHR5cGVkZWZ8dW5jaGVja2VkfHVzaW5nfHZhbHx2YXJ8dm9pZHx3aGlsZXx3aXRoKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjovXGIwYlswMV1bMDFfXSpMP1xifFxiMHgoPzpbXGRhLWZfXSpcLik/W1xkYS1mX3ArLV0rXGJ8KD86XGJcZFtcZF9dKig/OlwuW1xkX10qKT98XEJcLlxkW1xkX10qKSg/OmVbKy1dP1xkW1xkX10qKT9bZGZsc10/L2kscHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOl0vLG9wZXJhdG9yOi88PT18Pj09fD0+fC0+fDwtfDw+fCY9PXwmPD58XD86P3xcLlw/fFwrXCt8LS18Wy0rKi89PD5dPT98WyFefl18XGIoPzphbmR8YXN8YmFuZHxib3J8Ynhvcnxjb21wfGlzfGlzbm90fG1vZHxvcilcYj0/Lyxhbm5vdGF0aW9uOntwYXR0ZXJuOi9AKD86XHcrOik/KD86XHcrfFxbW15cXV0rXF0pPy8sYWxpYXM6ImJ1aWx0aW4ifX0sdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjb25jdXJuYXMiLCJsYW5nZXh0Iix7InJlZ2V4LWxpdGVyYWwiOntwYXR0ZXJuOi9cYnIoInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKVx7KD86W157fV18XHsoPzpbXnt9XXxce1tefV0qXH0pKlx9KStcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6dC5sYW5ndWFnZXMuY29uY3VybmFzfSxyZWdleDovW1xzXFNdKy99fSwic3RyaW5nLWxpdGVyYWwiOntwYXR0ZXJuOi8oPzpcQnxcYnMpKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilceyg/Oltee31dfFx7KD86W157fV18XHtbXn1dKlx9KSpcfSkrXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnQubGFuZ3VhZ2VzLmNvbmN1cm5hc30sc3RyaW5nOi9bXHNcU10rL319fSksdC5sYW5ndWFnZXMuY29uYz10Lmxhbmd1YWdlcy5jb25jdXJuYXN9cmV0dXJuIGp1fXZhciBHdSxUdztmdW5jdGlvbiBySCgpe2lmKFR3KXJldHVybiBHdTtUdz0xLEd1PWUsZS5kaXNwbGF5TmFtZT0iY29xIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7Zm9yKHZhciByPS9cKFwqKD86W14oKl18XCgoPyFcKil8XCooPyFcKSl8PHNlbGY+KSpcKlwpLy5zb3VyY2UsYT0wO2E8MjthKyspcj1yLnJlcGxhY2UoLzxzZWxmPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KTtyPXIucmVwbGFjZSgvPHNlbGY+L2csIltdIiksbi5sYW5ndWFnZXMuY29xPXtjb21tZW50OlJlZ0V4cChyKSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJdfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sYXR0cmlidXRlOlt7cGF0dGVybjpSZWdFeHAoLyNcWyg/OlteXFtcXSgiXXwiKD86W14iXXwiIikqIig/ISIpfFwoKD8hXCopfDxjb21tZW50PikqXF0vLnNvdXJjZS5yZXBsYWNlKC88Y29tbWVudD4vZyxmdW5jdGlvbigpe3JldHVybiByfSkpLGdyZWVkeTohMCxhbGlhczoiYXR0ci1uYW1lIixpbnNpZGU6e2NvbW1lbnQ6UmVnRXhwKHIpLHN0cmluZzp7cGF0dGVybjovIig/OlteIl18IiIpKiIoPyEiKS8sZ3JlZWR5OiEwfSxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246L14jXFt8XF0kfFssKCldL319LHtwYXR0ZXJuOi9cYig/OkN1bXVsYXRpdmV8R2xvYmFsfExvY2FsfE1vbm9tb3JwaGljfE5vbkN1bXVsYXRpdmV8UG9seW1vcnBoaWN8UHJpdmF0ZXxQcm9ncmFtKVxiLyxhbGlhczoiYXR0ci1uYW1lIn1dLGtleXdvcmQ6L1xiKD86QWJvcnR8QWJvdXR8QWRkfEFkbWl0fEFkbWl0dGVkfEFsbHxBcmd1bWVudHN8QXN8QXNzdW1wdGlvbnN8QXhpb218QXhpb21zfEJhY2t8QmFja1RvfEJhY2t0cmFjZXxCaW5PcHxCaW5PcFNwZWN8QmluUmVsfEJpbmR8QmxhY2tsaXN0fENhbm9uaWNhbHxDYXNlfENkfENoZWNrfENsYXNzfENsYXNzZXN8Q2xvc2V8Q29GaXhwb2ludHxDb0luZHVjdGl2ZXxDb2VyY2lvbnxDb2VyY2lvbnN8Q29sbGVjdGlvbnxDb21iaW5lZHxDb21wdXRlfENvbmplY3R1cmV8Q29uamVjdHVyZXN8Q29uc3RhbnR8Q29uc3RhbnRzfENvbnN0cmFpbnR8Q29uc3RydWN0b3JzfENvbnRleHR8Q29yb2xsYXJ5fENyZWF0ZXxDc3RPcHxDdXN0b218Q3V0fERlYnVnfERlY2xhcmV8RGVmaW5lZHxEZWZpbml0aW9ufERlbGltaXR8RGVwZW5kZW5jaWVzfERlcGVuZGVudHxEZXJpdmV8RGlmZnN8RHJvcHxFbGltaW5hdGlvbnxFbmR8RW50cnl8RXF1YWxpdHl8RXZhbHxFeGFtcGxlfEV4aXN0ZW50aWFsfEV4aXN0ZW50aWFsc3xFeGlzdGluZ3xFeHBvcnR8RXh0ZXJufEV4dHJhY3Rpb258RmFjdHxGYWlsfEZpZWxkfEZpbGV8Rmlyc3RvcmRlcnxGaXhwb2ludHxGbGFnc3xGb2N1c3xGcm9tfEZ1bmNsYXNzfEZ1bmN0aW9ufEZ1bmN0aW9uYWx8R0N8R2VuZXJhbGl6YWJsZXxHb2FsfEdyYWJ8R3JhbW1hcnxHcmFwaHxHdWFyZGVkfEhhc2tlbGx8SGVhcHxIaWRlfEhpbnR8SGludERifEhpbnRzfEh5cG90aGVzZXN8SHlwb3RoZXNpc3xJRnxJZGVudGl0eXxJbW1lZGlhdGV8SW1wbGljaXR8SW1wbGljaXRzfEltcG9ydHxJbmNsdWRlfEluZHVjdGlvbnxJbmR1Y3RpdmV8SW5maXh8SW5mb3xJbml0aWFsfElualR5cHxJbmxpbmV8SW5zcGVjdHxJbnN0YW5jZXxJbnN0YW5jZXN8SW50cm98SW50cm9zfEludmVyc2lvbnxJbnZlcnNpb25fY2xlYXJ8SlNPTnxMYW5ndWFnZXxMZWZ0fExlbW1hfExldHxMaWF8TGlicmFyaWVzfExpYnJhcnl8TG9hZHxMb2FkUGF0aHxMb2NhdGV8THRhY3xMdGFjMnxNTHxNYXRjaHxNZXRob2R8TWluaW1hbGl0eXxNb2R1bGV8TW9kdWxlc3xNb3JwaGlzbXxOZXh0fE5vSW5saW5lfE5vdGF0aW9ufE51bWJlcnxPQ2FtbHxPYmxpZ2F0aW9ufE9ibGlnYXRpb25zfE9wYXF1ZXxPcGVufE9wdGltaXplfFBhcmFtZXRlcnxQYXJhbWV0ZXJzfFBhcmFtZXRyaWN8UGF0aHxQYXRoc3xQcmVuZXh8UHJldGVybXxQcmltaXRpdmV8UHJpbnR8UHJvZmlsZXxQcm9qZWN0aW9uc3xQcm9vZnxQcm9wfFByb3BCaW5PcHxQcm9wT3B8UHJvcFVPcHxQcm9wZXJ0eXxQcm9wb3NpdGlvbnxQd2R8UWVkfFF1aXR8UmVjfFJlY29yZHxSZWN1cnNpdmV8UmVkaXJlY3R8UmVkdWN0aW9ufFJlZ2lzdGVyfFJlbGF0aW9ufFJlbWFya3xSZW1vdmV8UmVxdWlyZXxSZXNlcnZlZHxSZXNldHxSZXNvbHZlfFJlc3RhcnR8UmV3cml0ZXxSaWdodHxSaW5nfFJpbmdzfFNQcm9wfFNhdHVyYXRlfFNhdmV8U2NoZW1lfFNjb3BlfFNjb3Blc3xTZWFyY2h8U2VhcmNoSGVhZHxTZWFyY2hQYXR0ZXJufFNlYXJjaFJld3JpdGV8U2VjdGlvbnxTZXBhcmF0ZXxTZXR8U2V0b2lkfFNob3d8U2lnbmF0dXJlc3xTb2x2ZXxTb2x2ZXJ8U29ydHxTb3J0Y2xhc3N8U29ydGVkfFNwZWN8U3RlcHxTdHJhdGVnaWVzfFN0cmF0ZWd5fFN0cmluZ3xTdHJ1Y3R1cmV8U3ViQ2xhc3N8U3ViZ3JhcGh8U3VjaFRoYXR8VGFjdGljfFRlcm18VGVzdENvbXBpbGV8VGhlb3JlbXxUaW1lfFRpbWVvdXR8VG98VHJhbnNwYXJlbnR8VHlwZXxUeXBlY2xhc3Nlc3xUeXBlc3xUeXBpbmd8VW5PcHxVbk9wU3BlY3xVbmRlbGltaXR8VW5kb3xVbmZvY3VzfFVuZm9jdXNlZHxVbmZvbGR8VW5pdmVyc2V8VW5pdmVyc2VzfFVuc2hlbHZlfFZhcmlhYmxlfFZhcmlhYmxlc3xWYXJpYW50fFZlcmJvc2V8Vmlld3xWaXNpYmlsaXR5fFppZnl8X3xhcHBseXxhc3xhdHxieXxjb2ZpeHxlbHNlfGVuZHxleGlzdHN8ZXhpc3RzMnxmaXh8Zm9yfGZvcmFsbHxmdW58aWZ8aW58bGV0fG1hdGNofG1lYXN1cmV8bW92ZXxyZW1vdmVkfHJldHVybnxzdHJ1Y3R8dGhlbnx1c2luZ3x3Znx3aGVyZXx3aXRoKVxiLyxudW1iZXI6L1xiKD86MHhbYS1mMC05XVthLWYwLTlfXSooPzpcLlthLWYwLTlfXSspPyg/OnBbKy1dP1xkW1xkX10qKT98XGRbXGRfXSooPzpcLltcZF9dKyk/KD86ZVsrLV0/XGRbXGRfXSopPylcYi9pLHB1bmN0OntwYXR0ZXJuOi9AXHt8XHtcfHxcWz18Oj4vLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LG9wZXJhdG9yOi9cL1xcfFxcXC98XC57MiwzfXw6ezEsMn09fFwqXCp8Wy09XT58PCg/Oi0+P3xbKzo9Pl18PDopfD4oPzo9fC0+KXxcfFstfF0/fFstISUmKisvPD0+P0BefiddLyxwdW5jdHVhdGlvbjovXC5cKHxgXCh8QFx7fGBce3xce1x8fFxbPXw6PnxbOi4sOygpe31cW1xdXS99fSkodCl9cmV0dXJuIEd1fXZhciBxdSxrdztmdW5jdGlvbiBZcygpe2lmKGt3KXJldHVybiBxdTtrdz0xLHF1PWUsZS5kaXNwbGF5TmFtZT0icnVieSIsZS5hbGlhc2VzPVsicmIiXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5ydWJ5PW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50OntwYXR0ZXJuOi8jLip8Xj1iZWdpblxzW1xzXFNdKj9ePWVuZC9tLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXGIoPzpjbGFzc3xtb2R1bGUpXHMrfFxiY2F0Y2hccytcKClbXHcuXFxdK3xcYltBLVpfXVx3Kig/PVxzKlwuXHMqbmV3XGIpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1suXFxdL319LGtleXdvcmQ6L1xiKD86QkVHSU58RU5EfGFsaWFzfGFuZHxiZWdpbnxicmVha3xjYXNlfGNsYXNzfGRlZnxkZWZpbmVfbWV0aG9kfGRlZmluZWR8ZG98ZWFjaHxlbHNlfGVsc2lmfGVuZHxlbnN1cmV8ZXh0ZW5kfGZvcnxpZnxpbnxpbmNsdWRlfG1vZHVsZXxuZXd8bmV4dHxuaWx8bm90fG9yfHByZXBlbmR8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJhaXNlfHJlZG98cmVxdWlyZXxyZXNjdWV8cmV0cnl8cmV0dXJufHNlbGZ8c3VwZXJ8dGhlbnx0aHJvd3x1bmRlZnx1bmxlc3N8dW50aWx8d2hlbnx3aGlsZXx5aWVsZClcYi8sb3BlcmF0b3I6L1wuezIsM318JlwufD09PXw8Pz0+fFshPV0/fnwoPzomJnxcfFx8fDw8fD4+fFwqXCp8WytcLSovJTw+IV4mfD1dKT0/fFs/Ol0vLHB1bmN0dWF0aW9uOi9bKCl7fVtcXS4sO10vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJydWJ5Iiwib3BlcmF0b3IiLHsiZG91YmxlLWNvbG9uIjp7cGF0dGVybjovOjovLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fSk7dmFyIHI9e3BhdHRlcm46LygoPzpefFteXFxdKSg/OlxcezJ9KSopI1x7KD86W157fV18XHtbXnt9XSpcfSkqXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi9eKCNceylbXHNcU10rKD89XH0kKS8sbG9va2JlaGluZDohMCxpbnNpZGU6bi5sYW5ndWFnZXMucnVieX0sZGVsaW1pdGVyOntwYXR0ZXJuOi9eI1x7fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn19fTtkZWxldGUgbi5sYW5ndWFnZXMucnVieS5mdW5jdGlvbjt2YXIgYT0iKD86IitbLyhbXmEtekEtWjAtOVxzeyhcWzw9XSkoPzooPyFcMSlbXlxcXXxcXFtcc1xTXSkqXDEvLnNvdXJjZSwvXCgoPzpbXigpXFxdfFxcW1xzXFNdfFwoKD86W14oKVxcXXxcXFtcc1xTXSkqXCkpKlwpLy5zb3VyY2UsL1x7KD86W157fVxcXXxcXFtcc1xTXXxceyg/Oltee31cXF18XFxbXHNcU10pKlx9KSpcfS8uc291cmNlLC9cWyg/OlteXFtcXVxcXXxcXFtcc1xTXXxcWyg/OlteXFtcXVxcXXxcXFtcc1xTXSkqXF0pKlxdLy5zb3VyY2UsLzwoPzpbXjw+XFxdfFxcW1xzXFNdfDwoPzpbXjw+XFxdfFxcW1xzXFNdKSo+KSo+Ly5zb3VyY2VdLmpvaW4oInwiKSsiKSIsaT0vKD86Iig/OlxcLnxbXiJcXFxyXG5dKSoifCg/OlxiW2EtekEtWl9dXHcqfFteXHNcMC1ceDdGXSspWz8hXT98XCQuKS8uc291cmNlO24ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicnVieSIsImtleXdvcmQiLHsicmVnZXgtbGl0ZXJhbCI6W3twYXR0ZXJuOlJlZ0V4cCgvJXIvLnNvdXJjZSthKy9bZWdpbW5vc3V4XXswLDZ9Ly5zb3VyY2UpLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246cixyZWdleDovW1xzXFNdKy99fSx7cGF0dGVybjovKF58W14vXSlcLyg/IVwvKSg/OlxbW15cclxuXF1dK1xdfFxcLnxbXlsvXFxcclxuXSkrXC9bZWdpbW5vc3V4XXswLDZ9KD89XHMqKD86JHxbXHJcbiwuO30pI10pKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOnIscmVnZXg6L1tcc1xTXSsvfX1dLHZhcmlhYmxlOi9bQCRdK1thLXpBLVpfXVx3Kig/Ols/IV18XGIpLyxzeW1ib2w6W3twYXR0ZXJuOlJlZ0V4cCgvKF58W146XSk6Ly5zb3VyY2UraSksbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOlJlZ0V4cCgvKFtcclxueygsXVsgXHRdKikvLnNvdXJjZStpKy8oPz06KD8hOikpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sIm1ldGhvZC1kZWZpbml0aW9uIjp7cGF0dGVybjovKFxiZGVmXHMrKVx3Kyg/OlxzKlwuXHMqXHcrKT8vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntmdW5jdGlvbjovXGJcdyskLyxrZXl3b3JkOi9ec2VsZlxiLywiY2xhc3MtbmFtZSI6L15cdysvLHB1bmN0dWF0aW9uOi9cLi99fX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicnVieSIsInN0cmluZyIseyJzdHJpbmctbGl0ZXJhbCI6W3twYXR0ZXJuOlJlZ0V4cCgvJVtxUWlJd1dzXT8vLnNvdXJjZSthKSxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOnIsc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOi8oInwnKSg/OiNce1tefV0rXH18Iyg/IVx7KXxcXCg/OlxyXG58W1xzXFNdKXwoPyFcMSlbXlxcI1xyXG5dKSpcMS8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjpyLHN0cmluZzovW1xzXFNdKy99fSx7cGF0dGVybjovPDxbLX5dPyhbYS16X11cdyopW1xyXG5dKD86LipbXHJcbl0pKj9bXHQgXSpcMS9pLGFsaWFzOiJoZXJlZG9jLXN0cmluZyIsZ3JlZWR5OiEwLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9ePDxbLX5dP1thLXpfXVx3KnxcYlthLXpfXVx3KiQvaSxpbnNpZGU6e3N5bWJvbDovXGJcdysvLHB1bmN0dWF0aW9uOi9ePDxbLX5dPy99fSxpbnRlcnBvbGF0aW9uOnIsc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOi88PFstfl0/JyhbYS16X11cdyopJ1tcclxuXSg/Oi4qW1xyXG5dKSo/W1x0IF0qXDEvaSxhbGlhczoiaGVyZWRvYy1zdHJpbmciLGdyZWVkeTohMCxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXjw8Wy1+XT8nW2Etel9dXHcqJ3xcYlthLXpfXVx3KiQvaSxpbnNpZGU6e3N5bWJvbDovXGJcdysvLHB1bmN0dWF0aW9uOi9ePDxbLX5dPyd8JyQvfX0sc3RyaW5nOi9bXHNcU10rL319XSwiY29tbWFuZC1saXRlcmFsIjpbe3BhdHRlcm46UmVnRXhwKC8leC8uc291cmNlK2EpLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246cixjb21tYW5kOntwYXR0ZXJuOi9bXHNcU10rLyxhbGlhczoic3RyaW5nIn19fSx7cGF0dGVybjovYCg/OiNce1tefV0rXH18Iyg/IVx7KXxcXCg/OlxyXG58W1xzXFNdKXxbXlxcYCNcclxuXSkqYC8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjpyLGNvbW1hbmQ6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJzdHJpbmcifX19XX0pLGRlbGV0ZSBuLmxhbmd1YWdlcy5ydWJ5LnN0cmluZyxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInJ1YnkiLCJudW1iZXIiLHtidWlsdGluOi9cYig/OkFycmF5fEJpZ251bXxCaW5kaW5nfENsYXNzfENvbnRpbnVhdGlvbnxEaXJ8RXhjZXB0aW9ufEZhbHNlQ2xhc3N8RmlsZXxGaXhudW18RmxvYXR8SGFzaHxJT3xJbnRlZ2VyfE1hdGNoRGF0YXxNZXRob2R8TW9kdWxlfE5pbENsYXNzfE51bWVyaWN8T2JqZWN0fFByb2N8UmFuZ2V8UmVnZXhwfFN0YXR8U3RyaW5nfFN0cnVjdHxTeW1ib2x8VE1TfFRocmVhZHxUaHJlYWRHcm91cHxUaW1lfFRydWVDbGFzcylcYi8sY29uc3RhbnQ6L1xiW0EtWl1bQS1aMC05X10qKD86Wz8hXXxcYikvfSksbi5sYW5ndWFnZXMucmI9bi5sYW5ndWFnZXMucnVieX0pKHQpfXJldHVybiBxdX12YXIgVnUsQXc7ZnVuY3Rpb24gYUgoKXtpZihBdylyZXR1cm4gVnU7QXc9MTt2YXIgZT1ZcygpO1Z1PXQsdC5kaXNwbGF5TmFtZT0iY3J5c3RhbCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtyLmxhbmd1YWdlcy5jcnlzdGFsPXIubGFuZ3VhZ2VzLmV4dGVuZCgicnVieSIse2tleXdvcmQ6Wy9cYig/Ol9fRElSX198X19FTkRfTElORV9ffF9fRklMRV9ffF9fTElORV9ffGFic3RyYWN0fGFsaWFzfGFubm90YXRpb258YXN8YXNtfGJlZ2lufGJyZWFrfGNhc2V8Y2xhc3N8ZGVmfGRvfGVsc2V8ZWxzaWZ8ZW5kfGVuc3VyZXxlbnVtfGV4dGVuZHxmb3J8ZnVufGlmfGlmZGVmfGluY2x1ZGV8aW5zdGFuY2Vfc2l6ZW9mfGxpYnxtYWNyb3xtb2R1bGV8bmV4dHxvZnxvdXR8cG9pbnRlcm9mfHByaXZhdGV8cHJvdGVjdGVkfHB0cnxyZXF1aXJlfHJlc2N1ZXxyZXR1cm58c2VsZWN0fHNlbGZ8c2l6ZW9mfHN0cnVjdHxzdXBlcnx0aGVufHR5cGV8dHlwZW9mfHVuZGVmfHVuaW5pdGlhbGl6ZWR8dW5pb258dW5sZXNzfHVudGlsfHdoZW58d2hpbGV8d2l0aHx5aWVsZClcYi8se3BhdHRlcm46LyhcLlxzKikoPzppc19hfHJlc3BvbmRzX3RvKVw/Lyxsb29rYmVoaW5kOiEwfV0sbnVtYmVyOi9cYig/OjBiWzAxX10qWzAxXXwwb1swLTdfXSpbMC03XXwweFtcZGEtZkEtRl9dKltcZGEtZkEtRl18KD86XGQoPzpbXGRfXSpcZCk/KSg/OlwuW1xkX10qXGQpPyg/OltlRV1bKy1dP1tcZF9dKlxkKT8pKD86Xyg/Olt1aWZdKD86OHwxNnwzMnw2NCkpPyk/XGIvLG9wZXJhdG9yOlsvLT4vLHIubGFuZ3VhZ2VzLnJ1Ynkub3BlcmF0b3JdLHB1bmN0dWF0aW9uOi9bKCl7fVtcXS4sO1xcXS99KSxyLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNyeXN0YWwiLCJzdHJpbmctbGl0ZXJhbCIse2F0dHJpYnV0ZTp7cGF0dGVybjovQFxbLio/XF0vLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eQFxbfFxdJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sYXR0cmlidXRlOntwYXR0ZXJuOi9eKFxzKilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxhcmdzOntwYXR0ZXJuOi9cUyg/Oltcc1xTXSpcUyk/LyxpbnNpZGU6ci5sYW5ndWFnZXMuY3J5c3RhbH19fSxleHBhbnNpb246e3BhdHRlcm46L1x7KD86XHsuKj9cfXwlLio/JSlcfS8saW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi9eKFx7LilbXHNcU10rKD89Llx9JCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnIubGFuZ3VhZ2VzLmNyeXN0YWx9LGRlbGltaXRlcjp7cGF0dGVybjovXlx7W1x7JV18W1x9JV1cfSQvLGFsaWFzOiJvcGVyYXRvciJ9fX0sY2hhcjp7cGF0dGVybjovJyg/OlteXFxcclxuXXsxLDJ9fFxcKD86Lnx1KD86W0EtRmEtZjAtOV17MSw0fXxce1tBLUZhLWYwLTldezEsNn1cfSkpKScvLGdyZWVkeTohMH19KX0obil9cmV0dXJuIFZ1fXZhciBIdSx4dztmdW5jdGlvbiBpSCgpe2lmKHh3KXJldHVybiBIdTt4dz0xO3ZhciBlPVdzKCk7SHU9dCx0LmRpc3BsYXlOYW1lPSJjc2h0bWwiLHQuYWxpYXNlcz1bInJhem9yIl07ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLGZ1bmN0aW9uKHIpe3ZhciBhPS9cLyg/IVsvKl0pfFwvXC8uKltcclxuXXxcL1wqW14qXSooPzpcKig/IVwvKVteKl0qKSpcKlwvLy5zb3VyY2UsaT0vQCg/ISIpfCIoPzpbXlxyXG5cXCJdfFxcLikqInxAIig/OlteXFwiXXwiInxcXFtcc1xTXSkqIig/ISIpLy5zb3VyY2UrInwiKy8nKD86KD86W15cclxuJ1xcXXxcXC58XFxbVXV4XVtcZGEtZkEtRl17MSw4fSknfCg/PVteXFxdKD8hJykpKS8uc291cmNlO2Z1bmN0aW9uIG8oQSxoKXtmb3IodmFyIG09MDttPGg7bSsrKUE9QS5yZXBsYWNlKC88c2VsZj4vZyxmdW5jdGlvbigpe3JldHVybiIoPzoiK0ErIikifSk7cmV0dXJuIEEucmVwbGFjZSgvPHNlbGY+L2csIlteXFxzXFxTXSIpLnJlcGxhY2UoLzxzdHI+L2csIig/OiIraSsiKSIpLnJlcGxhY2UoLzxjb21tZW50Pi9nLCIoPzoiK2ErIikiKX12YXIgcz1vKC9cKCg/OlteKCknIkAvXXw8c3RyPnw8Y29tbWVudD58PHNlbGY+KSpcKS8uc291cmNlLDIpLGw9bygvXFsoPzpbXlxbXF0nIkAvXXw8c3RyPnw8Y29tbWVudD58PHNlbGY+KSpcXS8uc291cmNlLDIpLHU9bygvXHsoPzpbXnt9JyJAL118PHN0cj58PGNvbW1lbnQ+fDxzZWxmPikqXH0vLnNvdXJjZSwyKSxjPW8oLzwoPzpbXjw+JyJAL118PHN0cj58PGNvbW1lbnQ+fDxzZWxmPikqPi8uc291cmNlLDIpLGQ9Lyg/OlxzKD86XHMqW15ccz5cLz1dKyg/OlxzKj1ccyooPzoiW14iXSoifCdbXiddKid8W15ccyciPj1dKyg/PVtccz5dKSl8KD89W1xzLz5dKSkpKyk/Ly5zb3VyY2UscD0vKD8hXGQpW15ccz5cLz0kPCVdKy8uc291cmNlK2QrL1xzKlwvPz4vLnNvdXJjZSxmPS9cQkA/Ly5zb3VyY2UrIig/OiIrLzwoW2EtekEtWl1bXHc6XSopLy5zb3VyY2UrZCsvXHMqPi8uc291cmNlKyIoPzoiKygvW148XS8uc291cmNlKyJ8IisvPFwvPyg/IVwxXGIpLy5zb3VyY2UrcCsifCIrbygvPFwxLy5zb3VyY2UrZCsvXHMqPi8uc291cmNlKyIoPzoiKygvW148XS8uc291cmNlKyJ8IisvPFwvPyg/IVwxXGIpLy5zb3VyY2UrcCsifDxzZWxmPiIpKyIpKiIrLzxcL1wxXHMqPi8uc291cmNlLDIpKSsiKSoiKy88XC9cMVxzKj4vLnNvdXJjZSsifCIrLzwvLnNvdXJjZStwKyIpIjtyLmxhbmd1YWdlcy5jc2h0bWw9ci5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHt9KTt2YXIgeT1yLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImNzaGFycCIsInN0cmluZyIse2h0bWw6e3BhdHRlcm46UmVnRXhwKGYpLGdyZWVkeTohMCxpbnNpZGU6ci5sYW5ndWFnZXMuY3NodG1sfX0se2NzaGFycDpyLmxhbmd1YWdlcy5leHRlbmQoImNzaGFycCIse30pfSksYj17cGF0dGVybjovXFNbXHNcU10qLyxhbGlhczoibGFuZ3VhZ2UtY3NoYXJwIixpbnNpZGU6eX07ci5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc2h0bWwiLCJwcm9sb2ciLHsicmF6b3ItY29tbWVudCI6e3BhdHRlcm46L0BcKltcc1xTXSo/XCpALyxncmVlZHk6ITAsYWxpYXM6ImNvbW1lbnQifSxibG9jazp7cGF0dGVybjpSZWdFeHAoLyhefFteQF0pQC8uc291cmNlKyIoPzoiK1t1LC8oPzpjb2RlfGZ1bmN0aW9ucylccyovLnNvdXJjZSt1LC8oPzpmb3J8Zm9yZWFjaHxsb2NrfHN3aXRjaHx1c2luZ3x3aGlsZSlccyovLnNvdXJjZStzKy9ccyovLnNvdXJjZSt1LC9kb1xzKi8uc291cmNlK3UrL1xzKndoaWxlXHMqLy5zb3VyY2UrcysvKD86XHMqOyk/Ly5zb3VyY2UsL3RyeVxzKi8uc291cmNlK3UrL1xzKmNhdGNoXHMqLy5zb3VyY2UrcysvXHMqLy5zb3VyY2UrdSsvXHMqZmluYWxseVxzKi8uc291cmNlK3UsL2lmXHMqLy5zb3VyY2UrcysvXHMqLy5zb3VyY2UrdSsiKD86IisvXHMqZWxzZS8uc291cmNlKyIoPzoiKy9ccytpZlxzKi8uc291cmNlK3MrIik/IisvXHMqLy5zb3VyY2UrdSsiKSoiXS5qb2luKCJ8IikrIikiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2tleXdvcmQ6L15AXHcqLyxjc2hhcnA6Yn19LGRpcmVjdGl2ZTp7cGF0dGVybjovXihbIFx0XSopQCg/OmFkZFRhZ0hlbHBlcnxhdHRyaWJ1dGV8aW1wbGVtZW50c3xpbmhlcml0c3xpbmplY3R8bGF5b3V0fG1vZGVsfG5hbWVzcGFjZXxwYWdlfHByZXNlcnZld2hpdGVzcGFjZXxyZW1vdmVUYWdIZWxwZXJ8c2VjdGlvbnx0YWdIZWxwZXJQcmVmaXh8dXNpbmcpKD89XHMpLiovbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2tleXdvcmQ6L15AXHcrLyxjc2hhcnA6Yn19LHZhbHVlOntwYXR0ZXJuOlJlZ0V4cCgvKF58W15AXSlALy5zb3VyY2UrLyg/OmF3YWl0XGJccyopPy8uc291cmNlKyIoPzoiKy9cdytcYi8uc291cmNlKyJ8IitzKyIpKD86IisvWz8hXT9cLlx3K1xiLy5zb3VyY2UrInwiK3MrInwiK2wrInwiK2MrcysiKSoiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoidmFyaWFibGUiLGluc2lkZTp7a2V5d29yZDovXkAvLGNzaGFycDpifX0sImRlbGVnYXRlLW9wZXJhdG9yIjp7cGF0dGVybjovKF58W15AXSlAKD89PCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn19KSxyLmxhbmd1YWdlcy5yYXpvcj1yLmxhbmd1YWdlcy5jc2h0bWx9KG4pfXJldHVybiBIdX12YXIgV3UsUnc7ZnVuY3Rpb24gb0goKXtpZihSdylyZXR1cm4gV3U7Unc9MSxXdT1lLGUuZGlzcGxheU5hbWU9ImNzcCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIoYSl7cmV0dXJuIFJlZ0V4cCgvKFsgXHRdKS8uc291cmNlKyIoPzoiK2ErIikiKy8oPz1bXHM7XXwkKS8uc291cmNlLCJpIil9bi5sYW5ndWFnZXMuY3NwPXtkaXJlY3RpdmU6e3BhdHRlcm46LyhefFtccztdKSg/OmJhc2UtdXJpfGJsb2NrLWFsbC1taXhlZC1jb250ZW50fCg/OmNoaWxkfGNvbm5lY3R8ZGVmYXVsdHxmb250fGZyYW1lfGltZ3xtYW5pZmVzdHxtZWRpYXxvYmplY3R8cHJlZmV0Y2h8c2NyaXB0fHN0eWxlfHdvcmtlciktc3JjfGRpc293bi1vcGVuZXJ8Zm9ybS1hY3Rpb258ZnJhbWUtKD86YW5jZXN0b3JzfG9wdGlvbnMpfGlucHV0LXByb3RlY3Rpb24oPzotKD86Y2xpcHxzZWxlY3RvcnMpKT98bmF2aWdhdGUtdG98cGx1Z2luLXR5cGVzfHBvbGljeS11cml8cmVmZXJyZXJ8cmVmbGVjdGVkLXhzc3xyZXBvcnQtKD86dG98dXJpKXxyZXF1aXJlLXNyaS1mb3J8c2FuZGJveHwoPzpzY3JpcHR8c3R5bGUpLXNyYy0oPzphdHRyfGVsZW0pfHVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMpKD89W1xzO118JCkvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LHNjaGVtZTp7cGF0dGVybjpyKC9bYS16XVthLXowLTkuKy1dKjovLnNvdXJjZSksbG9va2JlaGluZDohMH0sbm9uZTp7cGF0dGVybjpyKC8nbm9uZScvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LG5vbmNlOntwYXR0ZXJuOnIoLydub25jZS1bLSsvXHc9XSsnLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LGhhc2g6e3BhdHRlcm46cigvJ3NoYSg/OjI1NnwzODR8NTEyKS1bLSsvXHc9XSsnLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LGhvc3Q6e3BhdHRlcm46cigvW2Etel1bYS16MC05ListXSo6XC9cL1teXHM7LCddKi8uc291cmNlKyJ8IisvXCpbXlxzOywnXSovLnNvdXJjZSsifCIrL1thLXowLTktXSsoPzpcLlthLXowLTktXSspKyg/OjpbXGQqXSspPyg/OlwvW15cczssJ10qKT8vLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoidXJsIixpbnNpZGU6e2ltcG9ydGFudDovXCovfX0sa2V5d29yZDpbe3BhdHRlcm46cigvJ3Vuc2FmZS1bYS16LV0rJy8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ1bnNhZmUifSx7cGF0dGVybjpyKC8nW2Etei1dKycvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoic2FmZSJ9XSxwdW5jdHVhdGlvbjovOy99fSkodCl9cmV0dXJuIFd1fXZhciBZdSxfdztmdW5jdGlvbiBzSCgpe2lmKF93KXJldHVybiBZdTtfdz0xLFl1PWUsZS5kaXNwbGF5TmFtZT0iY3NzRXh0cmFzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9LygifCcpKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sYTtuLmxhbmd1YWdlcy5jc3Muc2VsZWN0b3I9e3BhdHRlcm46bi5sYW5ndWFnZXMuY3NzLnNlbGVjdG9yLnBhdHRlcm4sbG9va2JlaGluZDohMCxpbnNpZGU6YT17InBzZXVkby1lbGVtZW50IjovOig/OmFmdGVyfGJlZm9yZXxmaXJzdC1sZXR0ZXJ8Zmlyc3QtbGluZXxzZWxlY3Rpb24pfDo6Wy1cd10rLywicHNldWRvLWNsYXNzIjovOlstXHddKy8sY2xhc3M6L1wuWy1cd10rLyxpZDovI1stXHddKy8sYXR0cmlidXRlOntwYXR0ZXJuOlJlZ0V4cChgXFxbKD86W15bXFxdIiddfGArci5zb3VyY2UrIikqXFxdIiksZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L15cW3xcXSQvLCJjYXNlLXNlbnNpdGl2aXR5Ijp7cGF0dGVybjovKFxzKVtzaV0kL2ksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LG5hbWVzcGFjZTp7cGF0dGVybjovXihccyopKD86KD8hXHMpWy0qXHdceEEwLVx1RkZGRl0pKlx8KD8hPSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXHwkL319LCJhdHRyLW5hbWUiOntwYXR0ZXJuOi9eKFxzKikoPzooPyFccylbLVx3XHhBMC1cdUZGRkZdKSsvLGxvb2tiZWhpbmQ6ITB9LCJhdHRyLXZhbHVlIjpbcix7cGF0dGVybjovKD1ccyopKD86KD8hXHMpWy1cd1x4QTAtXHVGRkZGXSkrKD89XHMqJCkvLGxvb2tiZWhpbmQ6ITB9XSxvcGVyYXRvcjovW3x+Kl4kXT89L319LCJuLXRoIjpbe3BhdHRlcm46LyhcKFxzKilbKy1dP1xkKltcZG5dKD86XHMqWystXVxzKlxkKyk/KD89XHMqXCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7bnVtYmVyOi9bXGRuXSsvLG9wZXJhdG9yOi9bKy1dL319LHtwYXR0ZXJuOi8oXChccyopKD86ZXZlbnxvZGQpKD89XHMqXCkpL2ksbG9va2JlaGluZDohMH1dLGNvbWJpbmF0b3I6Lz58XCt8fnxcfFx8LyxwdW5jdHVhdGlvbjovWygpLF0vfX0sbi5sYW5ndWFnZXMuY3NzLmF0cnVsZS5pbnNpZGVbInNlbGVjdG9yLWZ1bmN0aW9uLWFyZ3VtZW50Il0uaW5zaWRlPWEsbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc3MiLCJwcm9wZXJ0eSIse3ZhcmlhYmxlOntwYXR0ZXJuOi8oXnxbXi1cd1x4QTAtXHVGRkZGXSktLSg/IVxzKVstX2Etelx4QTAtXHVGRkZGXSg/Oig/IVxzKVstXHdceEEwLVx1RkZGRl0pKi9pLGxvb2tiZWhpbmQ6ITB9fSk7dmFyIGk9e3BhdHRlcm46LyhcYlxkKykoPzolfFthLXpdKyg/IVtcdy1dKSkvLGxvb2tiZWhpbmQ6ITB9LG89e3BhdHRlcm46LyhefFteXHcuLV0pLT8oPzpcZCsoPzpcLlxkKyk/fFwuXGQrKS8sbG9va2JlaGluZDohMH07bi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc3MiLCJmdW5jdGlvbiIse29wZXJhdG9yOntwYXR0ZXJuOi8oXHMpWytcLSpcL10oPz1ccykvLGxvb2tiZWhpbmQ6ITB9LGhleGNvZGU6e3BhdHRlcm46L1xCI1tcZGEtZl17Myw4fVxiL2ksYWxpYXM6ImNvbG9yIn0sY29sb3I6W3twYXR0ZXJuOi8oXnxbXlx3LV0pKD86QWxpY2VCbHVlfEFudGlxdWVXaGl0ZXxBcXVhfEFxdWFtYXJpbmV8QXp1cmV8QmVpZ2V8QmlzcXVlfEJsYWNrfEJsYW5jaGVkQWxtb25kfEJsdWV8Qmx1ZVZpb2xldHxCcm93bnxCdXJseVdvb2R8Q2FkZXRCbHVlfENoYXJ0cmV1c2V8Q2hvY29sYXRlfENvcmFsfENvcm5mbG93ZXJCbHVlfENvcm5zaWxrfENyaW1zb258Q3lhbnxEYXJrQmx1ZXxEYXJrQ3lhbnxEYXJrR29sZGVuUm9kfERhcmtHclthZV15fERhcmtHcmVlbnxEYXJrS2hha2l8RGFya01hZ2VudGF8RGFya09saXZlR3JlZW58RGFya09yYW5nZXxEYXJrT3JjaGlkfERhcmtSZWR8RGFya1NhbG1vbnxEYXJrU2VhR3JlZW58RGFya1NsYXRlQmx1ZXxEYXJrU2xhdGVHclthZV15fERhcmtUdXJxdW9pc2V8RGFya1Zpb2xldHxEZWVwUGlua3xEZWVwU2t5Qmx1ZXxEaW1HclthZV15fERvZGdlckJsdWV8RmlyZUJyaWNrfEZsb3JhbFdoaXRlfEZvcmVzdEdyZWVufEZ1Y2hzaWF8R2FpbnNib3JvfEdob3N0V2hpdGV8R29sZHxHb2xkZW5Sb2R8R3JbYWVdeXxHcmVlbnxHcmVlblllbGxvd3xIb25leURld3xIb3RQaW5rfEluZGlhblJlZHxJbmRpZ298SXZvcnl8S2hha2l8TGF2ZW5kZXJ8TGF2ZW5kZXJCbHVzaHxMYXduR3JlZW58TGVtb25DaGlmZm9ufExpZ2h0Qmx1ZXxMaWdodENvcmFsfExpZ2h0Q3lhbnxMaWdodEdvbGRlblJvZFllbGxvd3xMaWdodEdyW2FlXXl8TGlnaHRHcmVlbnxMaWdodFBpbmt8TGlnaHRTYWxtb258TGlnaHRTZWFHcmVlbnxMaWdodFNreUJsdWV8TGlnaHRTbGF0ZUdyW2FlXXl8TGlnaHRTdGVlbEJsdWV8TGlnaHRZZWxsb3d8TGltZXxMaW1lR3JlZW58TGluZW58TWFnZW50YXxNYXJvb258TWVkaXVtQXF1YU1hcmluZXxNZWRpdW1CbHVlfE1lZGl1bU9yY2hpZHxNZWRpdW1QdXJwbGV8TWVkaXVtU2VhR3JlZW58TWVkaXVtU2xhdGVCbHVlfE1lZGl1bVNwcmluZ0dyZWVufE1lZGl1bVR1cnF1b2lzZXxNZWRpdW1WaW9sZXRSZWR8TWlkbmlnaHRCbHVlfE1pbnRDcmVhbXxNaXN0eVJvc2V8TW9jY2FzaW58TmF2YWpvV2hpdGV8TmF2eXxPbGRMYWNlfE9saXZlfE9saXZlRHJhYnxPcmFuZ2V8T3JhbmdlUmVkfE9yY2hpZHxQYWxlR29sZGVuUm9kfFBhbGVHcmVlbnxQYWxlVHVycXVvaXNlfFBhbGVWaW9sZXRSZWR8UGFwYXlhV2hpcHxQZWFjaFB1ZmZ8UGVydXxQaW5rfFBsdW18UG93ZGVyQmx1ZXxQdXJwbGV8UmVkfFJvc3lCcm93bnxSb3lhbEJsdWV8U2FkZGxlQnJvd258U2FsbW9ufFNhbmR5QnJvd258U2VhR3JlZW58U2VhU2hlbGx8U2llbm5hfFNpbHZlcnxTa3lCbHVlfFNsYXRlQmx1ZXxTbGF0ZUdyW2FlXXl8U25vd3xTcHJpbmdHcmVlbnxTdGVlbEJsdWV8VGFufFRlYWx8VGhpc3RsZXxUb21hdG98VHJhbnNwYXJlbnR8VHVycXVvaXNlfFZpb2xldHxXaGVhdHxXaGl0ZXxXaGl0ZVNtb2tlfFllbGxvd3xZZWxsb3dHcmVlbikoPyFbXHctXSkvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovXGIoPzpoc2x8cmdiKVwoXHMqXGR7MSwzfVxzKixccypcZHsxLDN9JT9ccyosXHMqXGR7MSwzfSU/XHMqXClcQnxcYig/OmhzbHxyZ2IpYVwoXHMqXGR7MSwzfVxzKixccypcZHsxLDN9JT9ccyosXHMqXGR7MSwzfSU/XHMqLFxzKig/OjB8MD9cLlxkK3wxKVxzKlwpXEIvaSxpbnNpZGU6e3VuaXQ6aSxudW1iZXI6byxmdW5jdGlvbjovW1x3LV0rKD89XCgpLyxwdW5jdHVhdGlvbjovWygpLF0vfX1dLGVudGl0eTovXFxbXGRhLWZdezEsOH0vaSx1bml0OmksbnVtYmVyOm99KX0pKHQpfXJldHVybiBZdX12YXIgS3UsSXc7ZnVuY3Rpb24gbEgoKXtpZihJdylyZXR1cm4gS3U7SXc9MSxLdT1lLGUuZGlzcGxheU5hbWU9ImNzdiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuY3N2PXt2YWx1ZTovW15cclxuLCJdK3wiKD86W14iXXwiIikqIig/ISIpLyxwdW5jdHVhdGlvbjovLC99fXJldHVybiBLdX12YXIgWHUsTnc7ZnVuY3Rpb24gdUgoKXtpZihOdylyZXR1cm4gWHU7Tnc9MSxYdT1lLGUuZGlzcGxheU5hbWU9ImN5cGhlciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuY3lwaGVyPXtjb21tZW50Oi9cL1wvLiovLHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXHJcbl18XFwuKSoifCcoPzpbXidcXFxyXG5dfFxcLikqJy8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46Lyg6XHMqKSg/Olx3K3xgKD86W15gXFxcclxuXSkqYCkoPz1ccypbeyk6XSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxyZWxhdGlvbnNoaXA6e3BhdHRlcm46LygtXFtccyooPzpcdytccyp8YCg/OlteYFxcXHJcbl0pKmBccyopPzpccyp8XHxccyo6XHMqKSg/Olx3K3xgKD86W15gXFxcclxuXSkqYCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LGlkZW50aWZpZXI6e3BhdHRlcm46L2AoPzpbXmBcXFxyXG5dKSpgLyxncmVlZHk6ITB9LHZhcmlhYmxlOi9cJFx3Ky8sa2V5d29yZDovXGIoPzpBRER8QUxMfEFORHxBU3xBU0N8QVNDRU5ESU5HfEFTU0VSVHxCWXxDQUxMfENBU0V8Q09NTUlUfENPTlNUUkFJTlR8Q09OVEFJTlN8Q1JFQVRFfENTVnxERUxFVEV8REVTQ3xERVNDRU5ESU5HfERFVEFDSHxESVNUSU5DVHxET3xEUk9QfEVMU0V8RU5EfEVORFN8RVhJU1RTfEZPUnxGT1JFQUNIfElOfElOREVYfElTfEpPSU58S0VZfExJTUlUfExPQUR8TUFOREFUT1JZfE1BVENIfE1FUkdFfE5PREV8Tk9UfE9GfE9OfE9QVElPTkFMfE9SfE9SREVSKD89XHMrQlkpfFBFUklPRElDfFJFTU9WRXxSRVFVSVJFfFJFVFVSTnxTQ0FMQVJ8U0NBTnxTRVR8U0tJUHxTVEFSVHxTVEFSVFN8VEhFTnxVTklPTnxVTklRVUV8VU5XSU5EfFVTSU5HfFdIRU58V0hFUkV8V0lUSHxYT1J8WUlFTEQpXGIvaSxmdW5jdGlvbjovXGJcdytcYig/PVxzKlwoKS8sYm9vbGVhbjovXGIoPzpmYWxzZXxudWxsfHRydWUpXGIvaSxudW1iZXI6L1xiKD86MHhbXGRhLWZBLUZdK3xcZCsoPzpcLlxkKyk/KD86W2VFXVsrLV0/XGQrKT8pXGIvLG9wZXJhdG9yOi86fDwtLT98LS0/Pj98PD58PX4/fFs8Pl09P3xbKyovJV58XXxcLlwuXC4/LyxwdW5jdHVhdGlvbjovWygpW1xde30sOy5dL319cmV0dXJuIFh1fXZhciBadSxDdztmdW5jdGlvbiBjSCgpe2lmKEN3KXJldHVybiBadTtDdz0xLFp1PWUsZS5kaXNwbGF5TmFtZT0iZCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZD10Lmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDpbe3BhdHRlcm46L15ccyojIS4rLyxncmVlZHk6ITB9LHtwYXR0ZXJuOlJlZ0V4cCgvKF58W15cXF0pLy5zb3VyY2UrIig/OiIrWy9cL1wrKD86XC9cKyg/OlteK118XCsoPyFcLykpKlwrXC98KD8hXC9cKylbXHNcU10pKj9cK1wvLy5zb3VyY2UsL1wvXC8uKi8uc291cmNlLC9cL1wqW1xzXFNdKj9cKlwvLy5zb3VyY2VdLmpvaW4oInwiKSsiKSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sc3RyaW5nOlt7cGF0dGVybjpSZWdFeHAoWy9cYltyeF0iKD86XFxbXHNcU118W15cXCJdKSoiW2N3ZF0/Ly5zb3VyY2UsL1xicSIoPzpcW1tcc1xTXSo/XF18XChbXHNcU10qP1wpfDxbXHNcU10qPz58XHtbXHNcU10qP1x9KSIvLnNvdXJjZSwvXGJxIigoPyFcZClcdyspJFtcc1xTXSo/XlwxIi8uc291cmNlLC9cYnEiKC4pW1xzXFNdKj9cMiIvLnNvdXJjZSwvKFsiYF0pKD86XFxbXHNcU118KD8hXDMpW15cXF0pKlwzW2N3ZF0/Ly5zb3VyY2VdLmpvaW4oInwiKSwibSIpLGdyZWVkeTohMH0se3BhdHRlcm46L1xicVx7KD86XHtbXnt9XSpcfXxbXnt9XSkqXH0vLGdyZWVkeTohMCxhbGlhczoidG9rZW4tc3RyaW5nIn1dLGtleXdvcmQ6L1wkfFxiKD86X18oPzooPzpEQVRFfEVPRnxGSUxFfEZVTkNUSU9OfExJTkV8TU9EVUxFfFBSRVRUWV9GVU5DVElPTnxUSU1FU1RBTVB8VElNRXxWRU5ET1J8VkVSU0lPTilfX3xnc2hhcmVkfHBhcmFtZXRlcnN8dHJhaXRzfHZlY3Rvcil8YWJzdHJhY3R8YWxpYXN8YWxpZ258YXNtfGFzc2VydHxhdXRvfGJvZHl8Ym9vbHxicmVha3xieXRlfGNhc2V8Y2FzdHxjYXRjaHxjZG91YmxlfGNlbnR8Y2Zsb2F0fGNoYXJ8Y2xhc3N8Y29uc3R8Y29udGludWV8Y3JlYWx8ZGNoYXJ8ZGVidWd8ZGVmYXVsdHxkZWxlZ2F0ZXxkZWxldGV8ZGVwcmVjYXRlZHxkb3xkb3VibGV8ZHN0cmluZ3xlbHNlfGVudW18ZXhwb3J0fGV4dGVybnxmYWxzZXxmaW5hbHxmaW5hbGx5fGZsb2F0fGZvcnxmb3JlYWNofGZvcmVhY2hfcmV2ZXJzZXxmdW5jdGlvbnxnb3RvfGlkb3VibGV8aWZ8aWZsb2F0fGltbXV0YWJsZXxpbXBvcnR8aW5vdXR8aW50fGludGVyZmFjZXxpbnZhcmlhbnR8aXJlYWx8bGF6eXxsb25nfG1hY3JvfG1peGlufG1vZHVsZXxuZXd8bm90aHJvd3xudWxsfG91dHxvdmVycmlkZXxwYWNrYWdlfHByYWdtYXxwcml2YXRlfHByb3RlY3RlZHxwdHJkaWZmX3R8cHVibGljfHB1cmV8cmVhbHxyZWZ8cmV0dXJufHNjb3BlfHNoYXJlZHxzaG9ydHxzaXplX3R8c3RhdGljfHN0cmluZ3xzdHJ1Y3R8c3VwZXJ8c3dpdGNofHN5bmNocm9uaXplZHx0ZW1wbGF0ZXx0aGlzfHRocm93fHRydWV8dHJ5fHR5cGVkZWZ8dHlwZWlkfHR5cGVvZnx1Ynl0ZXx1Y2VudHx1aW50fHVsb25nfHVuaW9ufHVuaXR0ZXN0fHVzaG9ydHx2ZXJzaW9ufHZvaWR8dm9sYXRpbGV8d2NoYXJ8d2hpbGV8d2l0aHx3c3RyaW5nKVxiLyxudW1iZXI6Wy9cYjB4XC4/W2EtZlxkX10rKD86KD8hXC5cLilcLlthLWZcZF9dKik/KD86cFsrLV0/W2EtZlxkX10rKT9bdWxmaV17MCw0fS9pLHtwYXR0ZXJuOi8oKD86XC5cLik/KSg/OlxiMGJcLj98XGJ8XC4pXGRbXGRfXSooPzooPyFcLlwuKVwuW1xkX10qKT8oPzplWystXT9cZFtcZF9dKik/W3VsZmldezAsNH0vaSxsb29rYmVoaW5kOiEwfV0sb3BlcmF0b3I6L1x8W3w9XT98JlsmPV0/fFwrWys9XT98LVstPV0/fFwuP1wuXC58PVs+PV0/fCEoPzppW25zXVxifDw+Pz0/fD49P3w9KT98XGJpW25zXVxifCg/OjxbPD5dP3w+Pj8+P3xcXlxefFsqXC8lXn5dKT0/L30pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZCIsInN0cmluZyIse2NoYXI6LycoPzpcXCg/OlxXfFx3Kyl8W15cXF0pJy99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImQiLCJrZXl3b3JkIix7cHJvcGVydHk6L1xCQFx3Ki99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImQiLCJmdW5jdGlvbiIse3JlZ2lzdGVyOntwYXR0ZXJuOi9cYig/OltBQkNEXVtMSFhdfEU/KD86QlB8REl8U0l8U1ApfFtCU11QTHxbRUNTREdGXVN8Q1JbMDIzNF18W0RTXUlMfERSWzAxMjM2N118RVtBQkNEXVh8WD9NTVswLTddfFIoPzoxWzAtNV18Wzg5XSlbQldEXT98UltBQkNEXVh8UltCU11QfFJbRFNdSXxUUlszLTddfFhNTSg/OjFbMC01XXxbODldKXxZTU0oPzoxWzAtNV18XGQpKVxifFxiU1QoPzpcKFswLTddXCl8XGIpLyxhbGlhczoidmFyaWFibGUifX0pfXJldHVybiBadX12YXIgUXUsT3c7ZnVuY3Rpb24gZEgoKXtpZihPdylyZXR1cm4gUXU7T3c9MSxRdT1lLGUuZGlzcGxheU5hbWU9ImRhcnQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj1bL1xiKD86YXN5bmN8c3luY3x5aWVsZClcKi8sL1xiKD86YWJzdHJhY3R8YXNzZXJ0fGFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8Y292YXJpYW50fGRlZmF1bHR8ZGVmZXJyZWR8ZG98ZHluYW1pY3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZXh0ZW5zaW9ufGV4dGVybmFsfGZhY3Rvcnl8ZmluYWx8ZmluYWxseXxmb3J8Z2V0fGhpZGV8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW50ZXJmYWNlfGxpYnJhcnl8bWl4aW58bmV3fG51bGx8b258b3BlcmF0b3J8cGFydHxyZXRocm93fHJldHVybnxzZXR8c2hvd3xzdGF0aWN8c3VwZXJ8c3dpdGNofHN5bmN8dGhpc3x0aHJvd3x0cnl8dHlwZWRlZnx2YXJ8dm9pZHx3aGlsZXx3aXRofHlpZWxkKVxiL10sYT0vKF58W15cdy5dKSg/OlthLXpdXHcqXHMqXC5ccyopKig/OltBLVpdXHcqXHMqXC5ccyopKi8uc291cmNlLGk9e3BhdHRlcm46UmVnRXhwKGErL1tBLVpdKD86W1xkX0EtWl0qW2Etel1cdyopP1xiLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntuYW1lc3BhY2U6e3BhdHRlcm46L15bYS16XVx3Kig/OlxzKlwuXHMqW2Etel1cdyopKig/OlxzKlwuKT8vLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319fX07bi5sYW5ndWFnZXMuZGFydD1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7ImNsYXNzLW5hbWUiOltpLHtwYXR0ZXJuOlJlZ0V4cChhKy9bQS1aXVx3Kig/PVxzK1x3K1xzKls7LD0oKV0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmkuaW5zaWRlfV0sa2V5d29yZDpyLG9wZXJhdG9yOi9cYmlzIXxcYig/OmFzfGlzKVxifFwrXCt8LS18JiZ8XHxcfHw8PD0/fD4+PT98fig/OlwvPT8pP3xbK1wtKlwvJSZefD0hPD5dPT98XD8vfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJkYXJ0Iiwic3RyaW5nIix7InN0cmluZy1saXRlcmFsIjp7cGF0dGVybjovcj8oPzooIiIifCcnJylbXHNcU10qP1wxfChbIiddKSg/OlxcLnwoPyFcMilbXlxcXHJcbl0pKlwyKD8hXDIpKS8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilcJCg/Olx3K3xceyg/Oltee31dfFx7W157fV0qXH0pKlx9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXCRcez98XH0kLyxleHByZXNzaW9uOntwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6bi5sYW5ndWFnZXMuZGFydH19fSxzdHJpbmc6L1tcc1xTXSsvfX0sc3RyaW5nOnZvaWQgMH0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZGFydCIsImNsYXNzLW5hbWUiLHttZXRhZGF0YTp7cGF0dGVybjovQFx3Ky8sYWxpYXM6ImZ1bmN0aW9uIn19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImRhcnQiLCJjbGFzcy1uYW1lIix7Z2VuZXJpY3M6e3BhdHRlcm46LzwoPzpbXHdccywuJj9dfDwoPzpbXHdccywuJj9dfDwoPzpbXHdccywuJj9dfDxbXHdccywuJj9dKj4pKj4pKj4pKj4vLGluc2lkZTp7ImNsYXNzLW5hbWUiOmksa2V5d29yZDpyLHB1bmN0dWF0aW9uOi9bPD4oKSwuOl0vLG9wZXJhdG9yOi9bPyZ8XS99fX0pfSkodCl9cmV0dXJuIFF1fXZhciBKdSxMdztmdW5jdGlvbiBwSCgpe2lmKEx3KXJldHVybiBKdTtMdz0xLEp1PWUsZS5kaXNwbGF5TmFtZT0iZGF0YXdlYXZlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7bi5sYW5ndWFnZXMuZGF0YXdlYXZlPXt1cmw6L1xiW0EtWmEtel0rOlwvXC9bXHcvOi4/PSYtXSt8XGJ1cm46W1x3Oi4/PSYtXSsvLHByb3BlcnR5OntwYXR0ZXJuOi8oPzpcYlx3KyMpPyg/OiIoPzpcXC58W15cXCJcclxuXSkqInxcYlx3KykoPz1ccypbOkBdKS8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhbIidgXSkoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0sIm1pbWUtdHlwZSI6L1xiKD86YXBwbGljYXRpb258YXVkaW98aW1hZ2V8bXVsdGlwYXJ0fHRleHR8dmlkZW8pXC9bXHcrLV0rLyxkYXRlOntwYXR0ZXJuOi9cfFtcdzorLV0rXHwvLGdyZWVkeTohMH0sY29tbWVudDpbe3BhdHRlcm46LyhefFteXFxdKVwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxyZWdleDp7cGF0dGVybjovXC8oPzpbXlxcXC9cclxuXXxcXFteXHJcbl0pK1wvLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86YW5kfGFzfGF0fGNhc2V8ZG98ZWxzZXxmdW58aWZ8aW5wdXR8aXN8bWF0Y2h8bm90fG5zfG51bGx8b3J8b3V0cHV0fHR5cGV8dW5sZXNzfHVwZGF0ZXx1c2luZ3x2YXIpXGIvLGZ1bmN0aW9uOi9cYltBLVpfXVx3Kig/PVxzKlwoKS9pLG51bWJlcjovLT9cYlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspP1xiL2kscHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOkBdLyxvcGVyYXRvcjovPDx8Pj58LT58Wzw+fj1dPT98IT18LS0/LT98XCtcKz98IXxcPy8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiL319KSh0KX1yZXR1cm4gSnV9dmFyIGVjLER3O2Z1bmN0aW9uIGZIKCl7aWYoRHcpcmV0dXJuIGVjO0R3PTEsZWM9ZSxlLmRpc3BsYXlOYW1lPSJkYXgiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmRheD17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/XCpcL3woPzotLXxcL1wvKS4qKS8sbG9va2JlaGluZDohMH0sImRhdGEtZmllbGQiOntwYXR0ZXJuOi8nKD86W14nXXwnJykqJyg/IScpKD86XFtbIFx3XHhBMC1cdUZGRkZdK1xdKT98XHcrXFtbIFx3XHhBMC1cdUZGRkZdK1xdLyxhbGlhczoic3ltYm9sIn0sbWVhc3VyZTp7cGF0dGVybjovXFtbIFx3XHhBMC1cdUZGRkZdK1xdLyxhbGlhczoiY29uc3RhbnQifSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJdfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sZnVuY3Rpb246L1xiKD86QUJTfEFDT1N8QUNPU0h8QUNPVHxBQ09USHxBRERDT0xVTU5TfEFERE1JU1NJTkdJVEVNU3xBTEx8QUxMQ1JPU1NGSUxURVJFRHxBTExFWENFUFR8QUxMTk9CTEFOS1JPV3xBTExTRUxFQ1RFRHxBTkR8QVBQUk9YSU1BVEVESVNUSU5DVENPVU5UfEFTSU58QVNJTkh8QVRBTnxBVEFOSHxBVkVSQUdFfEFWRVJBR0VBfEFWRVJBR0VYfEJFVEFcLkRJU1R8QkVUQVwuSU5WfEJMQU5LfENBTENVTEFURXxDQUxDVUxBVEVUQUJMRXxDQUxFTkRBUnxDQUxFTkRBUkFVVE98Q0VJTElOR3xDSElTUVwuRElTVHxDSElTUVwuRElTVFwuUlR8Q0hJU1FcLklOVnxDSElTUVwuSU5WXC5SVHxDTE9TSU5HQkFMQU5DRU1PTlRIfENMT1NJTkdCQUxBTkNFUVVBUlRFUnxDTE9TSU5HQkFMQU5DRVlFQVJ8Q09BTEVTQ0V8Q09NQklOfENPTUJJTkF8Q09NQklORVZBTFVFU3xDT05DQVRFTkFURXxDT05DQVRFTkFURVh8Q09ORklERU5DRVwuTk9STXxDT05GSURFTkNFXC5UfENPTlRBSU5TfENPTlRBSU5TUk9XfENPTlRBSU5TU1RSSU5HfENPTlRBSU5TU1RSSU5HRVhBQ1R8Q09OVkVSVHxDT1N8Q09TSHxDT1R8Q09USHxDT1VOVHxDT1VOVEF8Q09VTlRBWHxDT1VOVEJMQU5LfENPVU5UUk9XU3xDT1VOVFh8Q1JPU1NGSUxURVJ8Q1JPU1NKT0lOfENVUlJFTkNZfENVUlJFTlRHUk9VUHxDVVNUT01EQVRBfERBVEFUQUJMRXxEQVRFfERBVEVBRER8REFURURJRkZ8REFURVNCRVRXRUVOfERBVEVTSU5QRVJJT0R8REFURVNNVER8REFURVNRVER8REFURVNZVER8REFURVZBTFVFfERBWXxERUdSRUVTfERFVEFJTFJPV1N8RElTVElOQ1R8RElTVElOQ1RDT1VOVHxESVNUSU5DVENPVU5UTk9CTEFOS3xESVZJREV8RUFSTElFUnxFQVJMSUVTVHxFREFURXxFTkRPRk1PTlRIfEVORE9GUVVBUlRFUnxFTkRPRllFQVJ8RU9NT05USHxFUlJPUnxFVkVOfEVYQUNUfEVYQ0VQVHxFWFB8RVhQT05cLkRJU1R8RkFDVHxGQUxTRXxGSUxURVJ8RklMVEVSU3xGSU5EfEZJUlNUREFURXxGSVJTVE5PTkJMQU5LfEZJUlNUTk9OQkxBTktWQUxVRXxGSVhFRHxGTE9PUnxGT1JNQVR8R0NEfEdFTkVSQVRFfEdFTkVSQVRFQUxMfEdFTkVSQVRFU0VSSUVTfEdFT01FQU58R0VPTUVBTlh8R1JPVVBCWXxIQVNPTkVGSUxURVJ8SEFTT05FVkFMVUV8SE9VUnxJRnxJRlwuRUFHRVJ8SUZFUlJPUnxJR05PUkV8SU5UfElOVEVSU0VDVHxJU0JMQU5LfElTQ1JPU1NGSUxURVJFRHxJU0VNUFRZfElTRVJST1J8SVNFVkVOfElTRklMVEVSRUR8SVNJTlNDT1BFfElTTE9HSUNBTHxJU05PTlRFWFR8SVNOVU1CRVJ8SVNPXC5DRUlMSU5HfElTT0REfElTT05PUkFGVEVSfElTU0VMRUNURURNRUFTVVJFfElTU1VCVE9UQUx8SVNURVhUfEtFRVBGSUxURVJTfEtFWVdPUkRNQVRDSHxMQVNUREFURXxMQVNUTk9OQkxBTkt8TEFTVE5PTkJMQU5LVkFMVUV8TENNfExFRlR8TEVOfExOfExPR3xMT0cxMHxMT09LVVBWQUxVRXxMT1dFUnxNQVh8TUFYQXxNQVhYfE1FRElBTnxNRURJQU5YfE1JRHxNSU58TUlOQXxNSU5VVEV8TUlOWHxNT0R8TU9OVEh8TVJPVU5EfE5BVFVSQUxJTk5FUkpPSU58TkFUVVJBTExFRlRPVVRFUkpPSU58TkVYVERBWXxORVhUTU9OVEh8TkVYVFFVQVJURVJ8TkVYVFlFQVJ8Tk9OVklTVUFMfE5PUk1cLkRJU1R8Tk9STVwuSU5WfE5PUk1cLlNcLkRJU1R8Tk9STVwuU1wuSU5WfE5PVHxOT1d8T0REfE9QRU5JTkdCQUxBTkNFTU9OVEh8T1BFTklOR0JBTEFOQ0VRVUFSVEVSfE9QRU5JTkdCQUxBTkNFWUVBUnxPUnxQQVJBTExFTFBFUklPRHxQQVRIfFBBVEhDT05UQUlOU3xQQVRISVRFTXxQQVRISVRFTVJFVkVSU0V8UEFUSExFTkdUSHxQRVJDRU5USUxFXC5FWEN8UEVSQ0VOVElMRVwuSU5DfFBFUkNFTlRJTEVYXC5FWEN8UEVSQ0VOVElMRVhcLklOQ3xQRVJNVVR8UEl8UE9JU1NPTlwuRElTVHxQT1dFUnxQUkVWSU9VU0RBWXxQUkVWSU9VU01PTlRIfFBSRVZJT1VTUVVBUlRFUnxQUkVWSU9VU1lFQVJ8UFJPRFVDVHxQUk9EVUNUWHxRVUFSVEVSfFFVT1RJRU5UfFJBRElBTlN8UkFORHxSQU5EQkVUV0VFTnxSQU5LXC5FUXxSQU5LWHxSRUxBVEVEfFJFTEFURURUQUJMRXxSRU1PVkVGSUxURVJTfFJFUExBQ0V8UkVQVHxSSUdIVHxST0xMVVB8Uk9MTFVQQURESVNTVUJUT1RBTHxST0xMVVBHUk9VUHxST0xMVVBJU1NVQlRPVEFMfFJPVU5EfFJPVU5ERE9XTnxST1VORFVQfFJPV3xTQU1FUEVSSU9ETEFTVFlFQVJ8U0FNUExFfFNFQVJDSHxTRUNPTkR8U0VMRUNUQ09MVU1OU3xTRUxFQ1RFRE1FQVNVUkV8U0VMRUNURURNRUFTVVJFRk9STUFUU1RSSU5HfFNFTEVDVEVETUVBU1VSRU5BTUV8U0VMRUNURURWQUxVRXxTSUdOfFNJTnxTSU5IfFNRUlR8U1FSVFBJfFNUQVJUT0ZNT05USHxTVEFSVE9GUVVBUlRFUnxTVEFSVE9GWUVBUnxTVERFVlwuUHxTVERFVlwuU3xTVERFVlhcLlB8U1RERVZYXC5TfFNVQlNUSVRVVEV8U1VCU1RJVFVURVdJVEhJTkRFWHxTVU18U1VNTUFSSVpFfFNVTU1BUklaRUNPTFVNTlN8U1VNWHxTV0lUQ0h8VFwuRElTVHxUXC5ESVNUXC4yVHxUXC5ESVNUXC5SVHxUXC5JTlZ8VFwuSU5WXC4yVHxUQU58VEFOSHxUSU1FfFRJTUVWQUxVRXxUT0RBWXxUT1BOfFRPUE5QRVJMRVZFTHxUT1BOU0tJUHxUT1RBTE1URHxUT1RBTFFURHxUT1RBTFlURHxUUkVBVEFTfFRSSU18VFJVRXxUUlVOQ3xVTklDSEFSfFVOSUNPREV8VU5JT058VVBQRVJ8VVNFUkVMQVRJT05TSElQfFVTRVJOQU1FfFVTRVJPQkpFQ1RJRHxVU0VSUFJJTkNJUEFMTkFNRXxVVENOT1d8VVRDVE9EQVl8VkFMVUV8VkFMVUVTfFZBUlwuUHxWQVJcLlN8VkFSWFwuUHxWQVJYXC5TfFdFRUtEQVl8V0VFS05VTXxYSVJSfFhOUFZ8WUVBUnxZRUFSRlJBQykoPz1ccypcKCkvaSxrZXl3b3JkOi9cYig/OkRFRklORXxFVkFMVUFURXxNRUFTVVJFfE9SREVSXHMrQll8UkVUVVJOfFZBUnxTVEFSVFxzK0FUfEFTQ3xERVNDKVxiL2ksYm9vbGVhbjp7cGF0dGVybjovXGIoPzpGQUxTRXxOVUxMfFRSVUUpXGIvaSxhbGlhczoiY29uc3RhbnQifSxudW1iZXI6L1xiXGQrKD86XC5cZCopP3xcQlwuXGQrXGIvLG9wZXJhdG9yOi86PXxbLSsqXC89Xl18JiY/fFx8XHx8PCg/Oj0+P3w8fD4pP3w+Wz49XT98XGIoPzpJTnxOT1QpXGIvaSxwdW5jdHVhdGlvbjovWztcW1xdKCl7fWAsLl0vfX1yZXR1cm4gZWN9dmFyIHRjLE13O2Z1bmN0aW9uIG1IKCl7aWYoTXcpcmV0dXJuIHRjO013PTEsdGM9ZSxlLmRpc3BsYXlOYW1lPSJkaGFsbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZGhhbGw9e2NvbW1lbnQ6Ly0tLip8XHstKD86W14te118LSg/IVx9KXxceyg/IS0pfFx7LSg/OlteLXtdfC0oPyFcfSl8XHsoPyEtKSkqLVx9KSotXH0vLHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiJ8JycoPzpbXiddfCcoPyEnKXwnJyd8JydcJFx7KSonJyg/ISd8XCQpLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi9cJFx7W157fV0qXH0vLGluc2lkZTp7ZXhwcmVzc2lvbjp7cGF0dGVybjovKF5cJFx7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1kaGFsbCIsaW5zaWRlOm51bGx9LHB1bmN0dWF0aW9uOi9cJFx7fFx9L319fX0sbGFiZWw6e3BhdHRlcm46L2BbXmBdKmAvLGdyZWVkeTohMH0sdXJsOntwYXR0ZXJuOi9cYmh0dHBzPzpcL1wvW1x3LjolISQmJyorOz1Afi1dKyg/OlwvW1x3LjolISQmJyorOz1Afi1dKikqKD86XD9bLz9cdy46JSEkJicqKzs9QH4tXSopPy8sZ3JlZWR5OiEwfSxlbnY6e3BhdHRlcm46L1xiZW52Oig/Oig/IVxkKVx3K3wiKD86W14iXFw9XXxcXC4pKiIpLyxncmVlZHk6ITAsaW5zaWRlOntmdW5jdGlvbjovXmVudi8sb3BlcmF0b3I6L146Lyx2YXJpYWJsZTovW1xzXFNdKy99fSxoYXNoOntwYXR0ZXJuOi9cYnNoYTI1NjpbXGRhLWZBLUZdezY0fVxiLyxpbnNpZGU6e2Z1bmN0aW9uOi9zaGEyNTYvLG9wZXJhdG9yOi86LyxudW1iZXI6L1tcZGEtZkEtRl17NjR9L319LGtleXdvcmQ6L1xiKD86YXN8YXNzZXJ0fGVsc2V8Zm9yYWxsfGlmfGlufGxldHxtZXJnZXxtaXNzaW5nfHRoZW58dG9NYXB8dXNpbmd8d2l0aClcYnxcdTIyMDAvLGJ1aWx0aW46L1xiKD86Tm9uZXxTb21lKVxiLyxib29sZWFuOi9cYig/OkZhbHNlfFRydWUpXGIvLG51bWJlcjovXGJOYU5cYnwtP1xiSW5maW5pdHlcYnxbKy1dP1xiKD86MHhbXGRhLWZBLUZdK3xcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT8pXGIvLG9wZXJhdG9yOi9cL1xcfFwvXC9cXFxcfCYmfFx8XHx8PT09fFshPV09fFwvXC98LT58XCtcK3w6OnxbKyojQD06Pzw+fFxcXHUyMjI3XHUyYTUzXHUyMjYxXHUyYWZkXHUwM2JiXHUyMTkyXS8scHVuY3R1YXRpb246L1wuXC58W3t9XFtcXSgpLC4vXS8sImNsYXNzLW5hbWUiOi9cYltBLVpdXHcqXGIvfSx0Lmxhbmd1YWdlcy5kaGFsbC5zdHJpbmcuaW5zaWRlLmludGVycG9sYXRpb24uaW5zaWRlLmV4cHJlc3Npb24uaW5zaWRlPXQubGFuZ3VhZ2VzLmRoYWxsfXJldHVybiB0Y312YXIgbmMsUHc7ZnVuY3Rpb24gZ0goKXtpZihQdylyZXR1cm4gbmM7UHc9MSxuYz1lLGUuZGlzcGxheU5hbWU9ImRpZmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5kaWZmPXtjb29yZDpbL14oPzpcKnszfXwtezN9fFwrezN9KS4qJC9tLC9eQEAuKkBAJC9tLC9eXGQuKiQvbV19O3ZhciByPXsiZGVsZXRlZC1zaWduIjoiLSIsImRlbGV0ZWQtYXJyb3ciOiI8IiwiaW5zZXJ0ZWQtc2lnbiI6IisiLCJpbnNlcnRlZC1hcnJvdyI6Ij4iLHVuY2hhbmdlZDoiICIsZGlmZjoiISJ9O09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGk9clthXSxvPVtdOy9eXHcrJC8udGVzdChhKXx8by5wdXNoKC9cdysvLmV4ZWMoYSlbMF0pLGE9PT0iZGlmZiImJm8ucHVzaCgiYm9sZCIpLG4ubGFuZ3VhZ2VzLmRpZmZbYV09e3BhdHRlcm46UmVnRXhwKCJeKD86WyIraStgXS4qKD86XHIKP3wKfCg/IVtcXHNcXFNdKSkpK2AsIm0iKSxhbGlhczpvLGluc2lkZTp7bGluZTp7cGF0dGVybjovKC4pKD89W1xzXFNdKS4qKD86XHJcbj98XG4pPy8sbG9va2JlaGluZDohMH0scHJlZml4OntwYXR0ZXJuOi9bXHNcU10vLGFsaWFzOi9cdysvLmV4ZWMoYSlbMF19fX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5sYW5ndWFnZXMuZGlmZiwiUFJFRklYRVMiLHt2YWx1ZTpyfSl9KSh0KX1yZXR1cm4gbmN9dmFyIHJjLEZ3O2Z1bmN0aW9uIGx0KCl7aWYoRncpcmV0dXJuIHJjO0Z3PTEscmM9ZSxlLmRpc3BsYXlOYW1lPSJtYXJrdXBUZW1wbGF0aW5nIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7ZnVuY3Rpb24gcihhLGkpe3JldHVybiJfX18iK2EudG9VcHBlckNhc2UoKStpKyJfX18ifU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4ubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdPXt9LHtidWlsZFBsYWNlaG9sZGVyczp7dmFsdWU6ZnVuY3Rpb24oYSxpLG8scyl7aWYoYS5sYW5ndWFnZT09PWkpe3ZhciBsPWEudG9rZW5TdGFjaz1bXTthLmNvZGU9YS5jb2RlLnJlcGxhY2UobyxmdW5jdGlvbih1KXtpZih0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmIXModSkpcmV0dXJuIHU7Zm9yKHZhciBjPWwubGVuZ3RoLGQ7YS5jb2RlLmluZGV4T2YoZD1yKGksYykpIT09LTE7KSsrYztyZXR1cm4gbFtjXT11LGR9KSxhLmdyYW1tYXI9bi5sYW5ndWFnZXMubWFya3VwfX19LHRva2VuaXplUGxhY2Vob2xkZXJzOnt2YWx1ZTpmdW5jdGlvbihhLGkpe2lmKGEubGFuZ3VhZ2UhPT1pfHwhYS50b2tlblN0YWNrKXJldHVybjthLmdyYW1tYXI9bi5sYW5ndWFnZXNbaV07dmFyIG89MCxzPU9iamVjdC5rZXlzKGEudG9rZW5TdGFjayk7ZnVuY3Rpb24gbCh1KXtmb3IodmFyIGM9MDtjPHUubGVuZ3RoJiYhKG8+PXMubGVuZ3RoKTtjKyspe3ZhciBkPXVbY107aWYodHlwZW9mIGQ9PSJzdHJpbmcifHxkLmNvbnRlbnQmJnR5cGVvZiBkLmNvbnRlbnQ9PSJzdHJpbmciKXt2YXIgcD1zW29dLGY9YS50b2tlblN0YWNrW3BdLHk9dHlwZW9mIGQ9PSJzdHJpbmciP2Q6ZC5jb250ZW50LGI9cihpLHApLEE9eS5pbmRleE9mKGIpO2lmKEE+LTEpeysrbzt2YXIgaD15LnN1YnN0cmluZygwLEEpLG09bmV3IG4uVG9rZW4oaSxuLnRva2VuaXplKGYsYS5ncmFtbWFyKSwibGFuZ3VhZ2UtIitpLGYpLGc9eS5zdWJzdHJpbmcoQStiLmxlbmd0aCksRT1bXTtoJiZFLnB1c2guYXBwbHkoRSxsKFtoXSkpLEUucHVzaChtKSxnJiZFLnB1c2guYXBwbHkoRSxsKFtnXSkpLHR5cGVvZiBkPT0ic3RyaW5nIj91LnNwbGljZS5hcHBseSh1LFtjLDFdLmNvbmNhdChFKSk6ZC5jb250ZW50PUV9fWVsc2UgZC5jb250ZW50JiZsKGQuY29udGVudCl9cmV0dXJuIHV9bChhLnRva2Vucyl9fX0pfSkodCl9cmV0dXJuIHJjfXZhciBhYyxVdztmdW5jdGlvbiBoSCgpe2lmKFV3KXJldHVybiBhYztVdz0xO3ZhciBlPWx0KCk7YWM9dCx0LmRpc3BsYXlOYW1lPSJkamFuZ28iLHQuYWxpYXNlcz1bImppbmphMiJdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtyLmxhbmd1YWdlcy5kamFuZ289e2NvbW1lbnQ6L15ceyNbXHNcU10qPyNcfSQvLHRhZzp7cGF0dGVybjovKF5ceyVbKy1dP1xzKilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxkZWxpbWl0ZXI6e3BhdHRlcm46L15ce1t7JV1bKy1dP3xbKy1dP1t9JV1cfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxmaWx0ZXI6e3BhdHRlcm46LyhcfClcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sdGVzdDp7cGF0dGVybjovKFxiaXNccysoPzpub3RccyspPykoPyFub3RcYilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sZnVuY3Rpb246L1xiW2Etel9dXHcrKD89XHMqXCgpL2ksa2V5d29yZDovXGIoPzphbmR8YXN8Ynl8ZWxzZXxmb3J8aWZ8aW1wb3J0fGlufGlzfGxvb3B8bm90fG9yfHJlY3Vyc2l2ZXx3aXRofHdpdGhvdXQpXGIvLG9wZXJhdG9yOi9bLSslPV09P3whPXxcKlwqPz0/fFwvXC8/PT98PFs8PT5dP3w+Wz0+XT98WyZ8Xn5dLyxudW1iZXI6L1xiXGQrKD86XC5cZCspP1xiLyxib29sZWFuOi9bRmZdYWxzZXxbTm5db25lfFtUdF1ydWUvLHZhcmlhYmxlOi9cYlx3K1xiLyxwdW5jdHVhdGlvbjovW3t9W1xdKCksLjo7XS99O3ZhciBhPS9ce1x7W1xzXFNdKj9cfVx9fFx7JVtcc1xTXSo/JVx9fFx7I1tcc1xTXSo/I1x9L2csaT1yLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXTtyLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihvKXtpLmJ1aWxkUGxhY2Vob2xkZXJzKG8sImRqYW5nbyIsYSl9KSxyLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKG8pe2kudG9rZW5pemVQbGFjZWhvbGRlcnMobywiZGphbmdvIil9KSxyLmxhbmd1YWdlcy5qaW5qYTI9ci5sYW5ndWFnZXMuZGphbmdvLHIuaG9va3MuYWRkKCJiZWZvcmUtdG9rZW5pemUiLGZ1bmN0aW9uKG8pe2kuYnVpbGRQbGFjZWhvbGRlcnMobywiamluamEyIixhKX0pLHIuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24obyl7aS50b2tlbml6ZVBsYWNlaG9sZGVycyhvLCJqaW5qYTIiKX0pfShuKX1yZXR1cm4gYWN9dmFyIGljLEJ3O2Z1bmN0aW9uIGJIKCl7aWYoQncpcmV0dXJuIGljO0J3PTEsaWM9ZSxlLmRpc3BsYXlOYW1lPSJkbnNab25lRmlsZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXNbImRucy16b25lLWZpbGUiXT17Y29tbWVudDovOy4qLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W14iXFxcclxuXSkqIi8sZ3JlZWR5OiEwfSx2YXJpYWJsZTpbe3BhdHRlcm46LyheXCRPUklHSU5bIFx0XSspXFMrL20sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKUAoPz1cc3wkKS8sbG9va2JlaGluZDohMH1dLGtleXdvcmQ6L15cJCg/OklOQ0xVREV8T1JJR0lOfFRUTCkoPz1cc3wkKS9tLGNsYXNzOntwYXR0ZXJuOi8oXnxccykoPzpDSHxDU3xIU3xJTikoPz1cc3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LHR5cGU6e3BhdHRlcm46LyhefFxzKSg/OkF8QTZ8QUFBQXxBRlNEQnxBUEx8QVRNQXxDQUF8Q0ROU0tFWXxDRFN8Q0VSVHxDTkFNRXxESENJRHxETFZ8RE5BTUV8RE5TS0VZfERTfEVJRHxHSUR8R1BPU3xISU5GT3xISVB8SVBTRUNLRVl8SVNETnxLRVl8S1h8TE9DfE1BSUxBfE1BSUxCfE1CfE1EfE1GfE1HfE1JTkZPfE1SfE1YfE5BUFRSfE5CfE5CU1RBVHxOSU1MT0N8TklORk98TlN8TlNBUHxOU0FQLVBUUnxOU0VDfE5TRUMzfE5TRUMzUEFSQU18TlVMTHxOWFR8T1BFTlBHUEtFWXxQVFJ8UFh8UktFWXxSUHxSUlNJR3xSVHxTSUd8U0lOS3xTTUlNRUF8U09BfFNQRnxTUlZ8U1NIRlB8VEF8VEtFWXxUTFNBfFRTSUd8VFhUfFVJRHxVSU5GT3xVTlNQRUN8VVJJfFdLU3xYMjUpKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxwdW5jdHVhdGlvbjovWygpXS99LHQubGFuZ3VhZ2VzWyJkbnMtem9uZSJdPXQubGFuZ3VhZ2VzWyJkbnMtem9uZS1maWxlIl19cmV0dXJuIGljfXZhciBvYywkdztmdW5jdGlvbiB5SCgpe2lmKCR3KXJldHVybiBvYzskdz0xLG9jPWUsZS5kaXNwbGF5TmFtZT0iZG9ja2VyIixlLmFsaWFzZXM9WyJkb2NrZXJmaWxlIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1xcW1xyXG5dKD86XHN8XFxbXHJcbl18Iy4qKD8hLikpKig/IVtccyNdfFxcW1xyXG5dKS8uc291cmNlLGE9Lyg/OlsgXHRdKyg/IVsgXHRdKSg/OjxTUF9CUz4pP3w8U1BfQlM+KS8uc291cmNlLnJlcGxhY2UoLzxTUF9CUz4vZyxmdW5jdGlvbigpe3JldHVybiByfSksaT0vIig/OlteIlxcXHJcbl18XFwoPzpcclxufFtcc1xTXSkpKiJ8Jyg/OlteJ1xcXHJcbl18XFwoPzpcclxufFtcc1xTXSkpKicvLnNvdXJjZSxvPS8tLVtcdy1dKz0oPzo8U1RSPnwoPyFbIiddKSg/OlteXHNcXF18XFwuKSspLy5zb3VyY2UucmVwbGFjZSgvPFNUUj4vZyxmdW5jdGlvbigpe3JldHVybiBpfSkscz17cGF0dGVybjpSZWdFeHAoaSksZ3JlZWR5OiEwfSxsPXtwYXR0ZXJuOi8oXlsgXHRdKikjLiovbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH07ZnVuY3Rpb24gdShjLGQpe3JldHVybiBjPWMucmVwbGFjZSgvPE9QVD4vZyxmdW5jdGlvbigpe3JldHVybiBvfSkucmVwbGFjZSgvPFNQPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSxSZWdFeHAoYyxkKX1uLmxhbmd1YWdlcy5kb2NrZXI9e2luc3RydWN0aW9uOntwYXR0ZXJuOi8oXlsgXHRdKikoPzpBRER8QVJHfENNRHxDT1BZfEVOVFJZUE9JTlR8RU5WfEVYUE9TRXxGUk9NfEhFQUxUSENIRUNLfExBQkVMfE1BSU5UQUlORVJ8T05CVUlMRHxSVU58U0hFTEx8U1RPUFNJR05BTHxVU0VSfFZPTFVNRXxXT1JLRElSKSg/PVxzKSg/OlxcLnxbXlxyXG5cXF0pKig/OlxcJCg/OlxzfCMuKiQpKig/IVtccyNdKSg/OlxcLnxbXlxyXG5cXF0pKikqL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7b3B0aW9uczp7cGF0dGVybjp1KC8oXig/Ok9OQlVJTEQ8U1A+KT9cdys8U1A+KTxPUFQ+KD86PFNQPjxPUFQ+KSovLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7cHJvcGVydHk6e3BhdHRlcm46LyhefFxzKS0tW1x3LV0rLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6W3Mse3BhdHRlcm46Lyg9KSg/IVsiJ10pKD86W15cc1xcXXxcXC4pKy8sbG9va2JlaGluZDohMH1dLG9wZXJhdG9yOi9cXCQvbSxwdW5jdHVhdGlvbjovPS99fSxrZXl3b3JkOlt7cGF0dGVybjp1KC8oXig/Ok9OQlVJTEQ8U1A+KT9IRUFMVEhDSEVDSzxTUD4oPzo8T1BUPjxTUD4pKikoPzpDTUR8Tk9ORSlcYi8uc291cmNlLCJpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOnUoLyheKD86T05CVUlMRDxTUD4pP0ZST008U1A+KD86PE9QVD48U1A+KSooPyEtLSlbXiBcdFxcXSs8U1A+KUFTLy5zb3VyY2UsImkiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46dSgvKF5PTkJVSUxEPFNQPilcdysvLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovXlx3Ky8sZ3JlZWR5OiEwfV0sY29tbWVudDpsLHN0cmluZzpzLHZhcmlhYmxlOi9cJCg/Olx3K3xce1tee30iJ1xcXSpcfSkvLG9wZXJhdG9yOi9cXCQvbX19LGNvbW1lbnQ6bH0sbi5sYW5ndWFnZXMuZG9ja2VyZmlsZT1uLmxhbmd1YWdlcy5kb2NrZXJ9KSh0KX1yZXR1cm4gb2N9dmFyIHNjLHp3O2Z1bmN0aW9uIHZIKCl7aWYoencpcmV0dXJuIHNjO3p3PTEsc2M9ZSxlLmRpc3BsYXlOYW1lPSJkb3QiLGUuYWxpYXNlcz1bImd2Il07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9Iig/OiIrWy9bYS16QS1aX1x4ODAtXHVGRkZGXVtcd1x4ODAtXHVGRkZGXSovLnNvdXJjZSwvLT8oPzpcLlxkK3xcZCsoPzpcLlxkKik/KS8uc291cmNlLC8iW14iXFxdKig/OlxcW1xzXFNdW14iXFxdKikqIi8uc291cmNlLC88KD86W148Pl18KD8hPCEtLSk8KD86W148PiInXXwiW14iXSoifCdbXiddKicpKz58PCEtLSg/OlteLV18LSg/IS0+KSkqLS0+KSo+Ly5zb3VyY2VdLmpvaW4oInwiKSsiKSIsYT17bWFya3VwOntwYXR0ZXJuOi8oXjwpW1xzXFNdKyg/PT4kKS8sbG9va2JlaGluZDohMCxhbGlhczpbImxhbmd1YWdlLW1hcmt1cCIsImxhbmd1YWdlLWh0bWwiLCJsYW5ndWFnZS14bWwiXSxpbnNpZGU6bi5sYW5ndWFnZXMubWFya3VwfX07ZnVuY3Rpb24gaShvLHMpe3JldHVybiBSZWdFeHAoby5yZXBsYWNlKC88SUQ+L2csZnVuY3Rpb24oKXtyZXR1cm4gcn0pLHMpfW4ubGFuZ3VhZ2VzLmRvdD17Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC98XiMuKi9tLGdyZWVkeTohMH0sImdyYXBoLW5hbWUiOntwYXR0ZXJuOmkoLyhcYig/OmRpZ3JhcGh8Z3JhcGh8c3ViZ3JhcGgpWyBcdFxyXG5dKyk8SUQ+Ly5zb3VyY2UsImkiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiY2xhc3MtbmFtZSIsaW5zaWRlOmF9LCJhdHRyLXZhbHVlIjp7cGF0dGVybjppKC8oPVsgXHRcclxuXSopPElEPi8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6YX0sImF0dHItbmFtZSI6e3BhdHRlcm46aSgvKFtcWzssIFx0XHJcbl0pPElEPig/PVsgXHRcclxuXSo9KS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6YX0sa2V5d29yZDovXGIoPzpkaWdyYXBofGVkZ2V8Z3JhcGh8bm9kZXxzdHJpY3R8c3ViZ3JhcGgpXGIvaSwiY29tcGFzcy1wb2ludCI6e3BhdHRlcm46Lyg6WyBcdFxyXG5dKikoPzpbZXdjX118W25zXVtld10/KSg/IVtcd1x4ODAtXHVGRkZGXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImJ1aWx0aW4ifSxub2RlOntwYXR0ZXJuOmkoLyhefFteLS5cd1x4ODAtXHVGRkZGXFxdKTxJRD4vLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOmF9LG9wZXJhdG9yOi9bPTpdfC1bLT5dLyxwdW5jdHVhdGlvbjovW1xbXF17fTssXS99LG4ubGFuZ3VhZ2VzLmd2PW4ubGFuZ3VhZ2VzLmRvdH0pKHQpfXJldHVybiBzY312YXIgbGMsanc7ZnVuY3Rpb24gRUgoKXtpZihqdylyZXR1cm4gbGM7anc9MSxsYz1lLGUuZGlzcGxheU5hbWU9ImVibmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmVibmY9e2NvbW1lbnQ6L1woXCpbXHNcU10qP1wqXCkvLHN0cmluZzp7cGF0dGVybjovIlteIlxyXG5dKiJ8J1teJ1xyXG5dKicvLGdyZWVkeTohMH0sc3BlY2lhbDp7cGF0dGVybjovXD9bXj9cclxuXSpcPy8sZ3JlZWR5OiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sZGVmaW5pdGlvbjp7cGF0dGVybjovXihbXHQgXSopW2Etel1cdyooPzpbIFx0XStbYS16XVx3KikqKD89XHMqPSkvaW0sbG9va2JlaGluZDohMCxhbGlhczpbInJ1bGUiLCJrZXl3b3JkIl19LHJ1bGU6L1xiW2Etel1cdyooPzpbIFx0XStbYS16XVx3KikqXGIvaSxwdW5jdHVhdGlvbjovXChbOi9dfFs6L11cKXxbLiw7KClbXF17fV0vLG9wZXJhdG9yOi9bLT18Ki8hXS99fXJldHVybiBsY312YXIgdWMsR3c7ZnVuY3Rpb24gU0goKXtpZihHdylyZXR1cm4gdWM7R3c9MSx1Yz1lLGUuZGlzcGxheU5hbWU9ImVkaXRvcmNvbmZpZyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZWRpdG9yY29uZmlnPXtjb21tZW50Oi9bOyNdLiovLHNlY3Rpb246e3BhdHRlcm46LyheWyBcdF0qKVxbLitcXS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InNlbGVjdG9yIixpbnNpZGU6e3JlZ2V4Oi9cXFxcW1xbXF17fSwhPy4qXS8sb3BlcmF0b3I6L1shP118XC5cLnxcKnsxLDJ9LyxwdW5jdHVhdGlvbjovW1xbXF17fSxdL319LGtleTp7cGF0dGVybjovKF5bIFx0XSopW15ccz1dKyg/PVsgXHRdKj0pL20sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci1uYW1lIn0sdmFsdWU6e3BhdHRlcm46Lz0uKi8sYWxpYXM6ImF0dHItdmFsdWUiLGluc2lkZTp7cHVuY3R1YXRpb246L149L319fX1yZXR1cm4gdWN9dmFyIGNjLHF3O2Z1bmN0aW9uIHdIKCl7aWYocXcpcmV0dXJuIGNjO3F3PTEsY2M9ZSxlLmRpc3BsYXlOYW1lPSJlaWZmZWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmVpZmZlbD17Y29tbWVudDovLS0uKi8sc3RyaW5nOlt7cGF0dGVybjovIihbXltdKilcW1tcc1xTXSo/XF1cMSIvLGdyZWVkeTohMH0se3BhdHRlcm46LyIoW157XSopXHtbXHNcU10qP1x9XDEiLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8iKD86JSg/Oig/IVxuKVxzKSpcblxzKiV8JVxTfFteJSJcclxuXSkqIi8sZ3JlZWR5OiEwfV0sY2hhcjovJyg/OiUufFteJSdcclxuXSkrJy8sa2V5d29yZDovXGIoPzphY3Jvc3N8YWdlbnR8YWxpYXN8YWxsfGFuZHxhc3xhc3NpZ258YXR0YWNoZWR8YXR0cmlidXRlfGNoZWNrfGNsYXNzfGNvbnZlcnR8Y3JlYXRlfEN1cnJlbnR8ZGVidWd8ZGVmZXJyZWR8ZGV0YWNoYWJsZXxkb3xlbHNlfGVsc2VpZnxlbmR8ZW5zdXJlfGV4cGFuZGVkfGV4cG9ydHxleHRlcm5hbHxmZWF0dXJlfGZyb218ZnJvemVufGlmfGltcGxpZXN8aW5oZXJpdHxpbnNwZWN0fGludmFyaWFudHxsaWtlfGxvY2FsfGxvb3B8bm90fG5vdGV8b2Jzb2xldGV8b2xkfG9uY2V8b3J8UHJlY3Vyc29yfHJlZGVmaW5lfHJlbmFtZXxyZXF1aXJlfHJlc2N1ZXxSZXN1bHR8cmV0cnl8c2VsZWN0fHNlcGFyYXRlfHNvbWV8dGhlbnx1bmRlZmluZXx1bnRpbHx2YXJpYW50fFZvaWR8d2hlbnx4b3IpXGIvaSxib29sZWFuOi9cYig/OkZhbHNlfFRydWUpXGIvaSwiY2xhc3MtbmFtZSI6L1xiW0EtWl1bXGRBLVpfXSpcYi8sbnVtYmVyOlsvXGIwW3hjYl1bXGRhLWZdKD86XypbXGRhLWZdKSpcYi9pLC8oPzpcYlxkKD86XypcZCkqKT9cLig/Oig/OlxkKD86XypcZCkqKT9lWystXT8pP1xkKD86XypcZCkqXGJ8XGJcZCg/Ol8qXGQpKlxiXC4/L2ldLHB1bmN0dWF0aW9uOi86PXw8PHw+PnxcKFx8fFx8XCl8LT58XC4oPz1cdyl8W3t9W1xdOygpLDo/XS8sb3BlcmF0b3I6L1xcXFx8XHxcLlwuXHx8XC5cLnxcL1t+XC89XT98Wz48XT0/fFstKypePX5dL319cmV0dXJuIGNjfXZhciBkYyxWdztmdW5jdGlvbiBUSCgpe2lmKFZ3KXJldHVybiBkYztWdz0xO3ZhciBlPWx0KCk7ZGM9dCx0LmRpc3BsYXlOYW1lPSJlanMiLHQuYWxpYXNlcz1bImV0YSJdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtyLmxhbmd1YWdlcy5lanM9e2RlbGltaXRlcjp7cGF0dGVybjovXjwlWy1fPV0/fFstX10/JT4kLyxhbGlhczoicHVuY3R1YXRpb24ifSxjb21tZW50Oi9eI1tcc1xTXSovLCJsYW5ndWFnZS1qYXZhc2NyaXB0Ijp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOnIubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fSxyLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihhKXt2YXIgaT0vPCUoPyElKVtcc1xTXSs/JT4vZztyLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhhLCJlanMiLGkpfSksci5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihhKXtyLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhhLCJlanMiKX0pLHIubGFuZ3VhZ2VzLmV0YT1yLmxhbmd1YWdlcy5lanN9KG4pfXJldHVybiBkY312YXIgcGMsSHc7ZnVuY3Rpb24ga0goKXtpZihIdylyZXR1cm4gcGM7SHc9MSxwYz1lLGUuZGlzcGxheU5hbWU9ImVsaXhpciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZWxpeGlyPXtkb2M6e3BhdHRlcm46L0AoPzpkb2N8bW9kdWxlZG9jKVxzKyg/OigiIiJ8JycnKVtcc1xTXSo/XDF8KCJ8JykoPzpcXCg/OlxyXG58W1xzXFNdKXwoPyFcMilbXlxcXHJcbl0pKlwyKS8saW5zaWRlOnthdHRyaWJ1dGU6L15AXHcrLyxzdHJpbmc6L1snIl1bXHNcU10rL319LGNvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSxyZWdleDp7cGF0dGVybjovfltyUl0oPzooIiIifCcnJykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkrXDF8KFtcL3wiJ10pKD86XFwufCg/IVwyKVteXFxcclxuXSkrXDJ8XCgoPzpcXC58W15cXClcclxuXSkrXCl8XFsoPzpcXC58W15cXFxdXHJcbl0pK1xdfFx7KD86XFwufFteXFx9XHJcbl0pK1x9fDwoPzpcXC58W15cXD5cclxuXSkrPilbdWlzbXhmcl0qLyxncmVlZHk6ITB9LHN0cmluZzpbe3BhdHRlcm46L35bY0NzU3dXXSg/OigiIiJ8JycnKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKStcMXwoW1wvfCInXSkoPzpcXC58KD8hXDIpW15cXFxyXG5dKStcMnxcKCg/OlxcLnxbXlxcKVxyXG5dKStcKXxcWyg/OlxcLnxbXlxcXF1cclxuXSkrXF18XHsoPzpcXC58I1x7W159XStcfXwjKD8hXHspfFteI1xcfVxyXG5dKStcfXw8KD86XFwufFteXFw+XHJcbl0pKz4pW2NzYV0/LyxncmVlZHk6ITAsaW5zaWRlOnt9fSx7cGF0dGVybjovKCIiInwnJycpW1xzXFNdKj9cMS8sZ3JlZWR5OiEwLGluc2lkZTp7fX0se3BhdHRlcm46LygifCcpKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwLGluc2lkZTp7fX1dLGF0b206e3BhdHRlcm46LyhefFteOl0pOlx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoic3ltYm9sIn0sbW9kdWxlOntwYXR0ZXJuOi9cYltBLVpdXHcqXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn0sImF0dHItbmFtZSI6L1xiXHcrXD8/Oig/ITopLyxhcmd1bWVudDp7cGF0dGVybjovKF58W14mXSkmXGQrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LGF0dHJpYnV0ZTp7cGF0dGVybjovQFx3Ky8sYWxpYXM6InZhcmlhYmxlIn0sZnVuY3Rpb246L1xiW19hLXpBLVpdXHcqWz8hXT8oPzooPz1ccyooPzpcLlxzKik/XCgpfCg/PVwvXGQpKS8sbnVtYmVyOi9cYig/OjBbYm94XVthLWZcZF9dK3xcZFtcZF9dKikoPzpcLltcZF9dKyk/KD86ZVsrLV0/W1xkX10rKT9cYi9pLGtleXdvcmQ6L1xiKD86YWZ0ZXJ8YWxpYXN8YW5kfGNhc2V8Y2F0Y2h8Y29uZHxkZWYoPzpjYWxsYmFja3xkZWxlZ2F0ZXxleGNlcHRpb258aW1wbHxtYWNyb3xtb2R1bGV8bnxucHxwfHByb3RvY29sfHN0cnVjdCk/fGRvfGVsc2V8ZW5kfGZufGZvcnxpZnxpbXBvcnR8bm90fG9yfHF1b3RlfHJhaXNlfHJlcXVpcmV8cmVzY3VlfHRyeXx1bmxlc3N8dW5xdW90ZXx1c2V8d2hlbilcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXxuaWx8dHJ1ZSlcYi8sb3BlcmF0b3I6Wy9cYmluXGJ8JiY/fFx8W3w+XT98XFxcXHw6OnxcLlwuXC4/fFwrXCs/fC1bLT5dP3w8Wy09Pl18Pj18IT09P3xcQiF8PSg/Oj09P3xbPn5dKT98WypcL15dLyx7cGF0dGVybjovKFtePF0pPCg/ITwpLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKFtePl0pPig/IT4pLyxsb29rYmVoaW5kOiEwfV0scHVuY3R1YXRpb246Lzw8fD4+fFsuLCVcW1xde30oKV0vfSx0Lmxhbmd1YWdlcy5lbGl4aXIuc3RyaW5nLmZvckVhY2goZnVuY3Rpb24obil7bi5pbnNpZGU9e2ludGVycG9sYXRpb246e3BhdHRlcm46LyNce1tefV0rXH0vLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eI1x7fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scmVzdDp0Lmxhbmd1YWdlcy5lbGl4aXJ9fX19KX1yZXR1cm4gcGN9dmFyIGZjLFd3O2Z1bmN0aW9uIEFIKCl7aWYoV3cpcmV0dXJuIGZjO1d3PTEsZmM9ZSxlLmRpc3BsYXlOYW1lPSJlbG0iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmVsbT17Y29tbWVudDovLS0uKnxcey1bXHNcU10qPy1cfS8sY2hhcjp7cGF0dGVybjovJyg/OlteXFwnXHJcbl18XFwoPzpbYWJmbnJ0dlxcJ118XGQrfHhbMC05YS1mQS1GXSt8dVx7WzAtOWEtZkEtRl0rXH0pKScvLGdyZWVkeTohMH0sc3RyaW5nOlt7cGF0dGVybjovIiIiW1xzXFNdKj8iIiIvLGdyZWVkeTohMH0se3BhdHRlcm46LyIoPzpbXlxcIlxyXG5dfFxcLikqIi8sZ3JlZWR5OiEwfV0sImltcG9ydC1zdGF0ZW1lbnQiOntwYXR0ZXJuOi8oXltcdCBdKilpbXBvcnRccytbQS1aXVx3Kig/OlwuW0EtWl1cdyopKig/OlxzK2FzXHMrKD86W0EtWl1cdyopKD86XC5bQS1aXVx3KikqKT8oPzpccytleHBvc2luZ1xzKyk/L20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xiKD86YXN8ZXhwb3Npbmd8aW1wb3J0KVxiL319LGtleXdvcmQ6L1xiKD86YWxpYXN8YXN8Y2FzZXxlbHNlfGV4cG9zaW5nfGlmfGlufGluZml4bHxpbmZpeHJ8bGV0fG1vZHVsZXxvZnx0aGVufHR5cGUpXGIvLGJ1aWx0aW46L1xiKD86YWJzfGFjb3N8YWx3YXlzfGFzaW58YXRhbnxhdGFuMnxjZWlsaW5nfGNsYW1wfGNvbXBhcmV8Y29zfGN1cnJ5fGRlZ3JlZXN8ZXxmbGlwfGZsb29yfGZyb21Qb2xhcnxpZGVudGl0eXxpc0luZmluaXRlfGlzTmFOfGxvZ0Jhc2V8bWF4fG1pbnxuZWdhdGV8bmV2ZXJ8bm90fHBpfHJhZGlhbnN8cmVtfHJvdW5kfHNpbnxzcXJ0fHRhbnx0b0Zsb2F0fHRvUG9sYXJ8dG9TdHJpbmd8dHJ1bmNhdGV8dHVybnN8dW5jdXJyeXx4b3IpXGIvLG51bWJlcjovXGIoPzpcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT98MHhbMC05YS1mXSspXGIvaSxvcGVyYXRvcjovXHNcLlxzfFsrXC0vKj0uJDw+OiZ8Xj8lI0B+IV17Mix9fFsrXC0vKj0kPD46JnxePyUjQH4hXS8saHZhcmlhYmxlOi9cYig/OltBLVpdXHcqXC4pKlthLXpdXHcqXGIvLGNvbnN0YW50Oi9cYig/OltBLVpdXHcqXC4pKltBLVpdXHcqXGIvLHB1bmN0dWF0aW9uOi9be31bXF18KCksLjpdL319cmV0dXJuIGZjfXZhciBtYyxZdztmdW5jdGlvbiB4SCgpe2lmKFl3KXJldHVybiBtYztZdz0xO3ZhciBlPVlzKCksdD1sdCgpO21jPW4sbi5kaXNwbGF5TmFtZT0iZXJiIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihyKXtyLnJlZ2lzdGVyKGUpLHIucmVnaXN0ZXIodCksZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMuZXJiPXtkZWxpbWl0ZXI6e3BhdHRlcm46L14oXHMqKTwlPT98JT4oPz1ccyokKS8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifSxydWJ5OntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGFsaWFzOiJsYW5ndWFnZS1ydWJ5IixpbnNpZGU6YS5sYW5ndWFnZXMucnVieX19LGEuaG9va3MuYWRkKCJiZWZvcmUtdG9rZW5pemUiLGZ1bmN0aW9uKGkpe3ZhciBvPS88JT0/KD86W15cclxuXXxbXHJcbl0oPyE9YmVnaW4pfFtcclxuXT1iZWdpblxzKD86W15cclxuXXxbXHJcbl0oPyE9ZW5kKSkqW1xyXG5dPWVuZCkrPyU+L2c7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoaSwiZXJiIixvKX0pLGEuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oaSl7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoaSwiZXJiIil9KX0ocil9cmV0dXJuIG1jfXZhciBnYyxLdztmdW5jdGlvbiBSSCgpe2lmKEt3KXJldHVybiBnYztLdz0xLGdjPWUsZS5kaXNwbGF5TmFtZT0iZXJsYW5nIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5lcmxhbmc9e2NvbW1lbnQ6LyUuKy8sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sInF1b3RlZC1mdW5jdGlvbiI6e3BhdHRlcm46LycoPzpcXC58W15cXCdcclxuXSkrJyg/PVwoKS8sYWxpYXM6ImZ1bmN0aW9uIn0sInF1b3RlZC1hdG9tIjp7cGF0dGVybjovJyg/OlxcLnxbXlxcJ1xyXG5dKSsnLyxhbGlhczoiYXRvbSJ9LGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sa2V5d29yZDovXGIoPzphZnRlcnxjYXNlfGNhdGNofGVuZHxmdW58aWZ8b2Z8cmVjZWl2ZXx0cnl8d2hlbilcYi8sbnVtYmVyOlsvXCRcXD8uLywvXGJcZCsjW2EtejAtOV0rL2ksLyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/L2ldLGZ1bmN0aW9uOi9cYlthLXpdW1x3QF0qKD89XCgpLyx2YXJpYWJsZTp7cGF0dGVybjovKF58W15AXSkoPzpcYnxcPylbQS1aX11bXHdAXSovLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOlsvWz1cLzw+Ol09fD1bOlwvXT18XCtcKz98LS0/fFs9KlwvIV18XGIoPzphbmR8YW5kYWxzb3xiYW5kfGJub3R8Ym9yfGJzbHxic3J8YnhvcnxkaXZ8bm90fG9yfG9yZWxzZXxyZW18eG9yKVxiLyx7cGF0dGVybjovKF58W148XSk8KD8hPCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxbXj5dKT4oPyE+KS8sbG9va2JlaGluZDohMH1dLGF0b206L1xiW2Etel1bXHdAXSovLHB1bmN0dWF0aW9uOi9bKClbXF17fTo7LC4jfF18PDx8Pj4vfX1yZXR1cm4gZ2N9dmFyIGhjLFh3O2Z1bmN0aW9uIHFDKCl7aWYoWHcpcmV0dXJuIGhjO1h3PTEsaGM9ZSxlLmRpc3BsYXlOYW1lPSJsdWEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmx1YT17Y29tbWVudDovXiMhLit8LS0oPzpcWyg9KilcW1tcc1xTXSo/XF1cMVxdfC4qKS9tLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86KD8hXDEpW15cXFxyXG5dfFxceig/OlxyXG58XHMpfFxcKD86XHJcbnxbXnpdKSkqXDF8XFsoPSopXFtbXHNcU10qP1xdXDJcXS8sZ3JlZWR5OiEwfSxudW1iZXI6L1xiMHhbYS1mXGRdKyg/OlwuW2EtZlxkXSopPyg/OnBbKy1dP1xkKyk/XGJ8XGJcZCsoPzpcLlxCfCg/OlwuXGQqKT8oPzplWystXT9cZCspP1xiKXxcQlwuXGQrKD86ZVsrLV0/XGQrKT9cYi9pLGtleXdvcmQ6L1xiKD86YW5kfGJyZWFrfGRvfGVsc2V8ZWxzZWlmfGVuZHxmYWxzZXxmb3J8ZnVuY3Rpb258Z290b3xpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlKVxiLyxmdW5jdGlvbjovKD8hXGQpXHcrKD89XHMqKD86Wyh7XSkpLyxvcGVyYXRvcjpbL1stKyolXiZ8I118XC9cLz98PFs8PV0/fD5bPj1dP3xbPX5dPT8vLHtwYXR0ZXJuOi8oXnxbXi5dKVwuXC4oPyFcLikvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovW1xbXF0oKXt9LDtdfFwuK3w6Ky99fXJldHVybiBoY312YXIgYmMsWnc7ZnVuY3Rpb24gX0goKXtpZihadylyZXR1cm4gYmM7Wnc9MTt2YXIgZT1xQygpLHQ9bHQoKTtiYz1uLG4uZGlzcGxheU5hbWU9ImV0bHVhIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihyKXtyLnJlZ2lzdGVyKGUpLHIucmVnaXN0ZXIodCksZnVuY3Rpb24oYSl7YS5sYW5ndWFnZXMuZXRsdWE9e2RlbGltaXRlcjp7cGF0dGVybjovXjwlWy09XT98LT8lPiQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LCJsYW5ndWFnZS1sdWEiOntwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6YS5sYW5ndWFnZXMubHVhfX0sYS5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24oaSl7dmFyIG89LzwlW1xzXFNdKz8lPi9nO2EubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLmJ1aWxkUGxhY2Vob2xkZXJzKGksImV0bHVhIixvKX0pLGEuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oaSl7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoaSwiZXRsdWEiKX0pfShyKX1yZXR1cm4gYmN9dmFyIHljLFF3O2Z1bmN0aW9uIElIKCl7aWYoUXcpcmV0dXJuIHljO1F3PTEseWM9ZSxlLmRpc3BsYXlOYW1lPSJleGNlbEZvcm11bGEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzWyJleGNlbC1mb3JtdWxhIl09e2NvbW1lbnQ6e3BhdHRlcm46LyhcYk5cKFxzKikiKD86W14iXXwiIikqIig/PVxzKlwpKS9pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJdfCIiKSoiKD8hIikvLGdyZWVkeTohMH0scmVmZXJlbmNlOntwYXR0ZXJuOi8oPzonW14nXSonfCg/OlteXHMoKVtcXXt9PD4qPyInOywkJl0qXFtbXl5ccygpW1xde308Pio/IiddK1xdKT9cdyspIS8sZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7b3BlcmF0b3I6LyEkLyxwdW5jdHVhdGlvbjovJy8sc2hlZXQ6e3BhdHRlcm46L1teW1xdXSskLyxhbGlhczoiZnVuY3Rpb24ifSxmaWxlOntwYXR0ZXJuOi9cW1teW1xdXStcXSQvLGluc2lkZTp7cHVuY3R1YXRpb246L1tbXF1dL319LHBhdGg6L1tcc1xTXSsvfX0sImZ1bmN0aW9uLW5hbWUiOntwYXR0ZXJuOi9cYltBLVpdXHcqKD89XCgpL2ksYWxpYXM6ImtleXdvcmQifSxyYW5nZTp7cGF0dGVybjovXCQ/XGIoPzpbQS1aXStcJD9cZCs6XCQ/W0EtWl0rXCQ/XGQrfFtBLVpdKzpcJD9bQS1aXSt8XGQrOlwkP1xkKylcYi9pLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntvcGVyYXRvcjovOi8sY2VsbDovXCQ/W0EtWl0rXCQ/XGQrL2ksY29sdW1uOi9cJD9bQS1aXSsvaSxyb3c6L1wkP1xkKy99fSxjZWxsOntwYXR0ZXJuOi9cYltBLVpdK1xkK1xifFwkW0EtWmEtel0rXCQ/XGQrXGJ8XGJbQS1aYS16XStcJFxkK1xiLyxhbGlhczoicHJvcGVydHkifSxudW1iZXI6Lyg/OlxiXGQrKD86XC5cZCspP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/XGIvaSxib29sZWFuOi9cYig/OkZBTFNFfFRSVUUpXGIvaSxvcGVyYXRvcjovWy0rKi9eJT0mLF18PFs9Pl0/fD49Py8scHVuY3R1YXRpb246L1tbXF0oKTt7fXxdL30sdC5sYW5ndWFnZXMueGxzeD10Lmxhbmd1YWdlcy54bHM9dC5sYW5ndWFnZXNbImV4Y2VsLWZvcm11bGEiXX1yZXR1cm4geWN9dmFyIHZjLEp3O2Z1bmN0aW9uIE5IKCl7aWYoSncpcmV0dXJuIHZjO0p3PTEsdmM9ZSxlLmRpc3BsYXlOYW1lPSJmYWN0b3IiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj17ZnVuY3Rpb246L1xiKD86QlVHUz98RklYKD86TUVTPyk/fE5PVEVTP3xUT0RPUz98WFgrfEhBQ0tTP3xXQVJOKD86SU5HKT98XD97Mix9fCF7Mix9KVxiL30sYT17bnVtYmVyOi9cXFteXHMnXXwlXHcvfSxpPXtjb21tZW50Olt7cGF0dGVybjovKF58XHMpKD86ISAuKnwhJCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnJ9LHtwYXR0ZXJuOi8oXnxccylcL1wqXHNbXHNcU10qP1wqXC8oPz1cc3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOnJ9LHtwYXR0ZXJuOi8oXnxccykhXFsoPXswLDZ9KVxbXHNbXHNcU10qP1xdXDJcXSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6cn1dLG51bWJlcjpbe3BhdHRlcm46LyhefFxzKVsrLV0/XGQrKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxccylbKy1dPzAoPzpiWzAxXSt8b1swLTddK3xkXGQrfHhbXGRBLUZdKykoPz1cc3wkKS9pLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxccylbKy1dP1xkK1wvXGQrXC4/KD89XHN8JCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxccylcKz9cZCtcK1xkK1wvXGQrKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxccyktXGQrLVxkK1wvXGQrKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxccylbKy1dPyg/OlxkKlwuXGQrfFxkK1wuXGQqfFxkKykoPzplWystXT9cZCspPyg/PVxzfCQpL2ksbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFxzKU5BTjpccytbXGRhLWZBLUZdKyg/PVxzfCQpLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58XHMpWystXT8wKD86YjFcLlswMV0qfG8xXC5bMC03XSp8ZDFcLlxkKnx4MVwuW1xkQS1GXSopcFxkKyg/PVxzfCQpL2ksbG9va2JlaGluZDohMH1dLHJlZ2V4cDp7cGF0dGVybjovKF58XHMpUlwvXHMoPzpcXFxTfFteXFwvXSkqXC8oPzpbaWRtc3JdKnxbaWRtc3JdKy1baWRtc3JdKykoPz1cc3wkKS8sbG9va2JlaGluZDohMCxhbGlhczoibnVtYmVyIixpbnNpZGU6e3ZhcmlhYmxlOi9cXFxTLyxrZXl3b3JkOi9bKz8qXFtcXV4kKCl7fS58XS8sb3BlcmF0b3I6e3BhdHRlcm46LyhcLylbaWRtc3JdKyg/Oi1baWRtc3JdKyk/Lyxsb29rYmVoaW5kOiEwfX19LGJvb2xlYW46e3BhdHRlcm46LyhefFxzKVt0Zl0oPz1cc3wkKS8sbG9va2JlaGluZDohMH0sImN1c3RvbS1zdHJpbmciOntwYXR0ZXJuOi8oXnxccylbQS1aMC05XC1dKyJccyg/OlxcXFN8W14iXFxdKSoiLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6e251bWJlcjovXFxcU3wlXHd8XC8vfX0sIm11bHRpbGluZS1zdHJpbmciOlt7cGF0dGVybjovKF58XHMpU1RSSU5HOlxzK1xTKyg/OlxufFxyXG4pLiooPzpcbnxcclxuKVxzKjsoPz1cc3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntudW1iZXI6YS5udW1iZXIsInNlbWljb2xvbi1vci1zZXRsb2NhbCI6e3BhdHRlcm46LyhbXHJcbl1bIFx0XSopOyg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9fX0se3BhdHRlcm46LyhefFxzKUhFUkVET0M6XHMrXFMrKD86XG58XHJcbikuKig/OlxufFxyXG4pXHMqXFMrKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTphfSx7cGF0dGVybjovKF58XHMpXFsoPXswLDZ9KVxbXHNbXHNcU10qP1xdXDJcXSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6YX1dLCJzcGVjaWFsLXVzaW5nIjp7cGF0dGVybjovKF58XHMpVVNJTkc6KD86XHNcUyspKig/PVxzKzsoPzpcc3wkKSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIixpbnNpZGU6e3N0cmluZzp7cGF0dGVybjovKFxzKVteOlxzXSsvLGxvb2tiZWhpbmQ6ITB9fX0sInN0YWNrLWVmZmVjdC1kZWxpbWl0ZXIiOlt7cGF0dGVybjovKF58XHMpKD86Y2FsbHxldmFsfGV4ZWN1dGUpP1woKD89XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi8oXHMpLS0oPz1ccykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0se3BhdHRlcm46LyhccylcKSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9XSxjb21iaW5hdG9yczp7cGF0dGVybjpudWxsLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSwia2VybmVsLWJ1aWx0aW4iOntwYXR0ZXJuOm51bGwsbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUifSwic2VxdWVuY2VzLWJ1aWx0aW4iOntwYXR0ZXJuOm51bGwsbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUifSwibWF0aC1idWlsdGluIjp7cGF0dGVybjpudWxsLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn0sImNvbnN0cnVjdG9yLXdvcmQiOntwYXR0ZXJuOi8oXnxccyk8KD8hPSs+fC0rPilcUys+KD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSwib3RoZXItYnVpbHRpbi1zeW50YXgiOntwYXR0ZXJuOm51bGwsbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSwiY29udmVudGlvbmFsbHktbmFtZWQtd29yZCI6e3BhdHRlcm46LyhefFxzKSg/ISIpKD86KD86Y2hhbmdlfG5ld3xzZXR8d2l0aCktXFMrfFwkXFMrfD5bXj5cc10rfFteOj5cc10rPnxbXj5cc10rPltePlxzXSt8XCtbXitcc10rXCt8W14/XHNdK1w/fFw/W14/XHNdK3xbXj5cc10rPj58Pj5bXj5cc10rfFtePFxzXSs8PHxcKFteKClcc10rXCl8W14hXHNdKyF8W14qXHNdXFMqXCp8W14uXHNdXFMqXC4pKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSwiY29sb24tc3ludGF4Ijp7cGF0dGVybjovKF58XHMpKD86W0EtWjAtOVwtXSsjPyk/OnsxLDJ9XHMrKD86O1xTK3woPyE7KVxTKykoPz1cc3wkKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sInNlbWljb2xvbi1vci1zZXRsb2NhbCI6e3BhdHRlcm46LyhccykoPzo7fDo+KSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LCJjdXJseS1icmFjZS1saXRlcmFsLWRlbGltaXRlciI6W3twYXR0ZXJuOi8oXnxccylbYS16XSpceyg/PVxzKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0se3BhdHRlcm46LyhccylcfSg/PVxzfCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9XSwicXVvdGF0aW9uLWRlbGltaXRlciI6W3twYXR0ZXJuOi8oXnxccylcWyg/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSx7cGF0dGVybjovKFxzKVxdKD89XHN8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn1dLCJub3JtYWwtd29yZCI6e3BhdHRlcm46LyhefFxzKVteIlxzXVxTKig/PVxzfCQpLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXFxTfFteIlxcXSkqIi8sZ3JlZWR5OiEwLGluc2lkZTphfX0sbz1mdW5jdGlvbihjKXtyZXR1cm4oYysiIikucmVwbGFjZSgvKFsuPyorXF4kXFtcXVxcKCl7fXxcLV0pL2csIlxcJDEiKX0scz1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IFJlZ0V4cCgiKF58XFxzKSg/OiIrYy5tYXAobykuam9pbigifCIpKyIpKD89XFxzfCQpIil9LGw9eyJrZXJuZWwtYnVpbHRpbiI6WyJvciIsIjJuaXBkIiwiNGRyb3AiLCJ0dWNrIiwid3JhcHBlciIsIm5pcCIsIndyYXBwZXI/IiwiY2FsbHN0YWNrPmFycmF5IiwiZGllIiwiZHVwZCIsImNhbGxzdGFjayIsImNhbGxzdGFjaz8iLCIzZHVwIiwiaGFzaGNvZGUiLCJwaWNrIiwiNG5pcCIsImJ1aWxkIiwiPmJvb2xlYW4iLCJuaXBkIiwiY2xvbmUiLCI1bmlwIiwiZXE/IiwiPyIsIj0iLCJzd2FwZCIsIjJvdmVyIiwiY2xlYXIiLCIyZHVwIiwiZ2V0LXJldGFpbnN0YWNrIiwibm90IiwidHVwbGU/IiwiZHVwIiwiM25pcGQiLCJjYWxsIiwiLXJvdGQiLCJvYmplY3QiLCJkcm9wIiwiYXNzZXJ0PSIsImFzc2VydD8iLCItcm90IiwiZXhlY3V0ZSIsImJvYSIsImdldC1jYWxsc3RhY2siLCJjdXJyaWVkPyIsIjNkcm9wIiwicGlja2QiLCJvdmVyZCIsIm92ZXIiLCJyb2xsIiwiM25pcCIsInN3YXAiLCJhbmQiLCIybmlwIiwicm90ZCIsInRocm93IiwiKGNsb25lKSIsImhhc2hjb2RlKiIsInNwaW4iLCJyZWFjaCIsIjRkdXAiLCJlcXVhbD8iLCJnZXQtZGF0YXN0YWNrIiwiYXNzZXJ0IiwiMmRyb3AiLCI8d3JhcHBlcj4iLCJib29sZWFuPyIsImlkZW50aXR5LWhhc2hjb2RlIiwiaWRlbnRpdHktdHVwbGU/IiwibnVsbCIsImNvbXBvc2VkPyIsIm5ldyIsIjVkcm9wIiwicm90IiwiLXJvbGwiLCJ4b3IiLCJpZGVudGl0eS10dXBsZSIsImJvb2xlYW4iXSwib3RoZXItYnVpbHRpbi1zeW50YXgiOlsiPT09PT09PSIsInJlY3Vyc2l2ZSIsImZsdXNoYWJsZSIsIj4+IiwiPDw8PDw8IiwiTVxcIiwiQiIsIlBSSVZBVEU+IiwiXFwiLCI9PT09PT0iLCJmaW5hbCIsImlubGluZSIsImRlbGltaXRlciIsImRlcHJlY2F0ZWQiLCI8UFJJVkFURSIsIj4+Pj4+PiIsIjw8PDw8PDwiLCJwYXJzZS1jb21wbGV4IiwibWFsZm9ybWVkLWNvbXBsZXgiLCJyZWFkLW9ubHkiLCI+Pj4+Pj4+IiwiY2FsbC1uZXh0LW1ldGhvZCIsIjw8IiwiZm9sZGFibGUiLCIkIiwiJFsiLCIkeyJdLCJzZXF1ZW5jZXMtYnVpbHRpbiI6WyJtZW1iZXItZXE/IiwibWlzbWF0Y2giLCJhcHBlbmQiLCJhc3NlcnQtc2VxdWVuY2U9IiwibG9uZ2VyIiwicmVwZXRpdGlvbiIsImNsb25lLWxpa2UiLCIzc2VxdWVuY2UiLCJhc3NlcnQtc2VxdWVuY2U/IiwibGFzdC1pbmRleC1mcm9tIiwicmV2ZXJzZWQiLCJpbmRleC1mcm9tIiwiY3V0KiIsInBhZC10YWlsIiwiam9pbi1hcyIsInJlbW92ZS1lcSEiLCJjb25jYXQtYXMiLCJidXQtbGFzdCIsInNuaXAiLCJudGhzIiwibnRoIiwic2VxdWVuY2UiLCJsb25nZXN0Iiwic2xpY2U/IiwiPHNsaWNlPiIsInJlbW92ZS1udGgiLCJ0YWlsLXNsaWNlIiwiZW1wdHk/IiwidGFpbCoiLCJtZW1iZXI/IiwidmlydHVhbC1zZXF1ZW5jZT8iLCJzZXQtbGVuZ3RoIiwiZHJvcC1wcmVmaXgiLCJpb3RhIiwidW5jbGlwIiwiYm91bmRzLWVycm9yPyIsInVuY2xpcC1sYXN0LXNsaWNlIiwibm9uLW5lZ2F0aXZlLWludGVnZXItZXhwZWN0ZWQiLCJub24tbmVnYXRpdmUtaW50ZWdlci1leHBlY3RlZD8iLCJtaWRwb2ludEAiLCJsb25nZXI/IiwiP3NldC1udGgiLCI/Zmlyc3QiLCJyZXN0LXNsaWNlIiwicHJlcGVuZC1hcyIsInByZXBlbmQiLCJmb3VydGgiLCJzaWZ0Iiwic3Vic2VxLXN0YXJ0IiwibmV3LXNlcXVlbmNlIiwiP2xhc3QiLCJsaWtlIiwiZmlyc3Q0IiwiMXNlcXVlbmNlIiwicmV2ZXJzZSIsInNsaWNlIiwidmlydHVhbEAiLCJyZXBldGl0aW9uPyIsInNldC1sYXN0IiwiaW5kZXgiLCI0c2VxdWVuY2UiLCJtYXgtbGVuZ3RoIiwic2V0LXNlY29uZCIsImltbXV0YWJsZS1zZXF1ZW5jZSIsImZpcnN0MiIsImZpcnN0MyIsInN1cHJlbXVtIiwidW5jbGlwLXNsaWNlIiwic3VmZml4ISIsImluc2VydC1udGgiLCJ0YWlsIiwiM2FwcGVuZCIsInNob3J0Iiwic3VmZml4IiwiY29uY2F0IiwiZmxpcCIsImltbXV0YWJsZT8iLCJyZXZlcnNlISIsIjJzZXF1ZW5jZSIsInN1bSIsImRlbGV0ZS1hbGwiLCJpbmRpY2VzIiwic25pcC1zbGljZSIsIjxpb3RhPiIsImNoZWNrLXNsaWNlIiwic2VxdWVuY2U/IiwiaGVhZCIsImFwcGVuZC1hcyIsImhhbHZlcyIsInNlcXVlbmNlPSIsImNvbGxhcHNlLXNsaWNlIiwiP3NlY29uZCIsInNsaWNlLWVycm9yPyIsInByb2R1Y3QiLCJib3VuZHMtY2hlY2s/IiwiYm91bmRzLWNoZWNrIiwiaW1tdXRhYmxlIiwidmlydHVhbC1leGVtcGxhciIsImhhcnZlc3QiLCJyZW1vdmUiLCJwYWQtaGVhZCIsImxhc3QiLCJzZXQtZm91cnRoIiwiY2FydGVzaWFuLXByb2R1Y3QiLCJyZW1vdmUtZXEiLCJzaG9ydGVuIiwic2hvcnRlciIsInJldmVyc2VkPyIsInNob3J0ZXI/Iiwic2hvcnRlc3QiLCJoZWFkLXNsaWNlIiwicG9wKiIsInRhaWwtc2xpY2UqIiwiYnV0LWxhc3Qtc2xpY2UiLCJpb3RhPyIsImFwcGVuZCEiLCJjdXQtc2xpY2UiLCJuZXctcmVzaXphYmxlIiwiaGVhZC1zbGljZSoiLCJzZXF1ZW5jZS1oYXNoY29kZSIsInBvcCIsInNldC1udGgiLCI/bnRoIiwic2Vjb25kIiwiam9pbiIsImltbXV0YWJsZS1zZXF1ZW5jZT8iLCI8cmV2ZXJzZWQ+IiwiM2FwcGVuZC1hcyIsInZpcnR1YWwtc2VxdWVuY2UiLCJzdWJzZXE/IiwicmVtb3ZlLW50aCEiLCJsZW5ndGgiLCJsYXN0LWluZGV4IiwibGVuZ3RoZW4iLCJhc3NlcnQtc2VxdWVuY2UiLCJjb3B5IiwibW92ZSIsInRoaXJkIiwiZmlyc3QiLCJ0YWlsPyIsInNldC1maXJzdCIsInByZWZpeCIsImJvdW5kcy1lcnJvciIsIjxyZXBldGl0aW9uPiIsImV4Y2hhbmdlIiwic3Vycm91bmQiLCJjdXQiLCJtaW4tbGVuZ3RoIiwic2V0LXRoaXJkIiwicHVzaC1hbGwiLCJoZWFkPyIsInN1YnNlcS1zdGFydC1mcm9tIiwiZGVsZXRlLXNsaWNlIiwicmVzdCIsInN1bS1sZW5ndGhzIiwiaGVhZCoiLCJpbmZpbXVtIiwicmVtb3ZlISIsImdsdWUiLCJzbGljZS1lcnJvciIsInN1YnNlcSIsInB1c2giLCJyZXBsYWNlLXNsaWNlIiwic3Vic2VxLWFzIiwidW5jbGlwLWxhc3QiXSwibWF0aC1idWlsdGluIjpbIm51bWJlcj0iLCJuZXh0LXBvd2VyLW9mLTIiLCI/MSsiLCJmcC1zcGVjaWFsPyIsImltYWdpbmFyeS1wYXJ0IiwiZmxvYXQ+Yml0cyIsIm51bWJlcj8iLCJmcC1pbmZpbml0eT8iLCJiaWdudW0/IiwiZnAtc25hbj8iLCJkZW5vbWluYXRvciIsImdjZCIsIioiLCIrIiwiZnAtYml0d2lzZT0iLCItIiwidT49IiwiLyIsIj49IiwiYml0YW5kIiwicG93ZXItb2YtMj8iLCJsb2cyLWV4cGVjdHMtcG9zaXRpdmUiLCJuZWc/IiwiPCIsImxvZzIiLCI+IiwiaW50ZWdlcj8iLCJudW1iZXIiLCJiaXRzPmRvdWJsZSIsIjIvIiwiemVybz8iLCJiaXRzPmZsb2F0IiwiZmxvYXQ/Iiwic2hpZnQiLCJyYXRpbz8iLCJyZWN0PiIsImV2ZW4/IiwicmF0aW8iLCJmcC1zaWduIiwiYml0bm90IiwiPmZpeG51bSIsImNvbXBsZXg/IiwiL2kiLCJpbnRlZ2VyPmZpeG51bSIsIi9mIiwic2duIiwiPmJpZ251bSIsIm5leHQtZmxvYXQiLCJ1PCIsInU+IiwibW9kIiwicmVjaXAiLCJyYXRpb25hbCIsIj5mbG9hdCIsIjJeIiwiaW50ZWdlciIsImZpeG51bT8iLCJuZWciLCJmaXhudW0iLCJzcSIsImJpZ251bSIsIj5yZWN0IiwiYml0PyIsImZwLXFuYW4/Iiwic2ltcGxlLWdjZCIsImNvbXBsZXgiLCI8ZnAtbmFuPiIsInJlYWwiLCI+ZnJhY3Rpb24iLCJkb3VibGU+Yml0cyIsImJpdG9yIiwicmVtIiwiZnAtbmFuLXBheWxvYWQiLCJyZWFsLXBhcnQiLCJsb2cyLWV4cGVjdHMtcG9zaXRpdmU/IiwicHJldi1mbG9hdCIsImFsaWduIiwidW5vcmRlcmVkPyIsImZsb2F0IiwiZnAtbmFuPyIsImFicyIsImJpdHhvciIsImludGVnZXI+Zml4bnVtLXN0cmljdCIsInU8PSIsIm9kZD8iLCI8PSIsIi9tb2QiLCI+aW50ZWdlciIsInJlYWw/IiwicmF0aW9uYWw/IiwibnVtZXJhdG9yIl19O09iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oYyl7aVtjXS5wYXR0ZXJuPXMobFtjXSl9KTt2YXIgdT1bIjJiaSIsIndoaWxlIiwiMnRyaSIsImJpKiIsIjRkaXAiLCJib3RoPyIsInNhbWU/IiwidHJpQCIsImN1cnJ5IiwicHJlcG9zZSIsIjNiaSIsIj9pZiIsInRyaSoiLCIya2VlcCIsIjNrZWVwIiwiY3VycmllZCIsIjJrZWVwZCIsIndoZW4iLCIyYmkqIiwiMnRyaSoiLCI0a2VlcCIsImJpQCIsImtlZXBkZCIsImRvIiwidW5sZXNzKiIsInRyaS1jdXJyeSIsImlmKiIsImxvb3AiLCJiaS1jdXJyeSoiLCJ3aGVuKiIsIjJiaUAiLCIydHJpQCIsIndpdGgiLCIyd2l0aCIsImVpdGhlcj8iLCJiaSIsInVudGlsIiwiM2RpcCIsIjNjdXJyeSIsInRyaS1jdXJyeSoiLCJ0cmktY3VycnlAIiwiYmktY3VycnkiLCJrZWVwZCIsImNvbXBvc2UiLCIyZGlwIiwiaWYiLCIzdHJpIiwidW5sZXNzIiwidHVwbGUiLCJrZWVwIiwiMmN1cnJ5IiwidHJpIiwibW9zdCIsIndoaWxlKiIsImRpcCIsImNvbXBvc2VkIiwiYmktY3VycnlAIiwiZmluZC1sYXN0LWZyb20iLCJ0cmltLWhlYWQtc2xpY2UiLCJtYXAtYXMiLCJlYWNoLWZyb20iLCJub25lPyIsInRyaW0tdGFpbCIsInBhcnRpdGlvbiIsImlmLWVtcHR5IiwiYWNjdW11bGF0ZSoiLCJyZWplY3QhIiwiZmluZC1mcm9tIiwiYWNjdW11bGF0ZS1hcyIsImNvbGxlY3Rvci1mb3ItYXMiLCJyZWplY3QiLCJtYXAiLCJtYXAtc3VtIiwiYWNjdW11bGF0ZSEiLCIyZWFjaC1mcm9tIiwiZm9sbG93Iiwic3VwcmVtdW0tYnkiLCJtYXAhIiwidW5sZXNzLWVtcHR5IiwiY29sbGVjdG9yIiwicGFkZGluZyIsInJlZHVjZS1pbmRleCIsInJlcGxpY2F0ZS1hcyIsImluZmltdW0tYnkiLCJ0cmltLXRhaWwtc2xpY2UiLCJjb3VudCIsImZpbmQtaW5kZXgiLCJmaWx0ZXIiLCJhY2N1bXVsYXRlKiEiLCJyZWplY3QtYXMiLCJtYXAtaW50ZWdlcnMiLCJtYXAtZmluZCIsInJlZHVjZSIsInNlbGVjdG9yIiwiaW50ZXJsZWF2ZSIsIjJtYXAiLCJmaWx0ZXItYXMiLCJiaW5hcnktcmVkdWNlIiwibWFwLWluZGV4LWFzIiwiZmluZCIsInByb2R1Y2UiLCJmaWx0ZXIhIiwicmVwbGljYXRlIiwiY2FydGVzaWFuLW1hcCIsImNhcnRlc2lhbi1lYWNoIiwiZmluZC1pbmRleC1mcm9tIiwibWFwLWZpbmQtbGFzdCIsIjNtYXAtYXMiLCIzbWFwIiwiZmluZC1sYXN0Iiwic2VsZWN0b3ItYXMiLCIybWFwLWFzIiwiMm1hcC1yZWR1Y2UiLCJhY2N1bXVsYXRlIiwiZWFjaCIsImVhY2gtaW5kZXgiLCJhY2N1bXVsYXRlKi1hcyIsIndoZW4tZW1wdHkiLCJhbGw/IiwiY29sbGVjdG9yLWFzIiwicHVzaC1laXRoZXIiLCJuZXctbGlrZSIsImNvbGxlY3Rvci1mb3IiLCIyc2VsZWN0b3IiLCJwdXNoLWlmIiwiMmFsbD8iLCJtYXAtcmVkdWNlIiwiM2VhY2giLCJhbnk/IiwidHJpbS1zbGljZSIsIjJyZWR1Y2UiLCJjaGFuZ2UtbnRoIiwicHJvZHVjZS1hcyIsIjJlYWNoIiwidHJpbSIsInRyaW0taGVhZCIsImNhcnRlc2lhbi1maW5kIiwibWFwLWluZGV4IiwiaWYtemVybyIsImVhY2gtaW50ZWdlciIsInVubGVzcy16ZXJvIiwiKGZpbmQtaW50ZWdlcikiLCJ3aGVuLXplcm8iLCJmaW5kLWxhc3QtaW50ZWdlciIsIihhbGwtaW50ZWdlcnM/KSIsInRpbWVzIiwiKGVhY2gtaW50ZWdlcikiLCJmaW5kLWludGVnZXIiLCJhbGwtaW50ZWdlcnM/IiwidW5sZXNzLW5lZ2F0aXZlIiwiaWYtcG9zaXRpdmUiLCJ3aGVuLXBvc2l0aXZlIiwid2hlbi1uZWdhdGl2ZSIsInVubGVzcy1wb3NpdGl2ZSIsImlmLW5lZ2F0aXZlIiwiY2FzZSIsIjJjbGVhdmUiLCJjb25kPnF1b3QiLCJjYXNlPnF1b3QiLCIzY2xlYXZlIiwid3JvbmctdmFsdWVzIiwidG8tZml4ZWQtcG9pbnQiLCJhbGlzdD5xdW90IiwiY29uZCIsImNsZWF2ZSIsImNhbGwtZWZmZWN0IiwicmVjdXJzaXZlLWhhc2hjb2RlIiwic3ByZWFkIiwiZGVlcC1zcHJlYWQ+cXVvdCIsIjJ8fCIsIjB8fCIsIm58fCIsIjAmJiIsIjImJiIsIjN8fCIsIjF8fCIsIjEmJiIsIm4mJiIsIjMmJiIsInNtYXJ0LXVubGVzcyoiLCJrZWVwLWlucHV0cyIsInJlZHVjZS1vdXRwdXRzIiwic21hcnQtd2hlbioiLCJjbGVhdmU+YXJyYXkiLCJzbWFydC13aXRoIiwic21hcnQtYXBwbHkiLCJzbWFydC1pZiIsImlucHV0cy9vdXRwdXRzIiwib3V0cHV0PnNlcXVlbmNlLW4iLCJtYXAtb3V0cHV0cyIsIm1hcC1yZWR1Y2Utb3V0cHV0cyIsImRyb3BwaW5nIiwib3V0cHV0PmFycmF5Iiwic21hcnQtbWFwLXJlZHVjZSIsInNtYXJ0LTJtYXAtcmVkdWNlIiwib3V0cHV0PmFycmF5LW4iLCJudWxsYXJ5IiwiaW5wdXQ8c2VxdWVuY2UiLCJhcHBlbmQtb3V0cHV0cyIsImRyb3AtaW5wdXRzIiwiaW5wdXRzIiwic21hcnQtMnJlZHVjZSIsImRyb3Atb3V0cHV0cyIsInNtYXJ0LXJlZHVjZSIsInByZXNlcnZpbmciLCJzbWFydC13aGVuIiwib3V0cHV0cyIsImFwcGVuZC1vdXRwdXRzLWFzIiwic21hcnQtdW5sZXNzIiwic21hcnQtaWYqIiwic3VtLW91dHB1dHMiLCJpbnB1dDxzZXF1ZW5jZS11bnNhZmUiLCJvdXRwdXQ+c2VxdWVuY2UiXTtpLmNvbWJpbmF0b3JzLnBhdHRlcm49cyh1KSxuLmxhbmd1YWdlcy5mYWN0b3I9aX0pKHQpfXJldHVybiB2Y312YXIgRWMsZVQ7ZnVuY3Rpb24gQ0goKXtpZihlVClyZXR1cm4gRWM7ZVQ9MSxFYz1lLGUuZGlzcGxheU5hbWU9IiRmYWxzZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe24ubGFuZ3VhZ2VzLmZhbHNlPXtjb21tZW50OntwYXR0ZXJuOi9ce1tefV0qXH0vfSxzdHJpbmc6e3BhdHRlcm46LyJbXiJdKiIvLGdyZWVkeTohMH0sImNoYXJhY3Rlci1jb2RlIjp7cGF0dGVybjovJyg/OlteXHJdfFxyXG4/KS8sYWxpYXM6Im51bWJlciJ9LCJhc3NlbWJsZXItY29kZSI6e3BhdHRlcm46L1xkK2AvLGFsaWFzOiJpbXBvcnRhbnQifSxudW1iZXI6L1xkKy8sb3BlcmF0b3I6L1stISMkJSYnKissLi86Oz0+P0BcXF5fYHx+w5/DuF0vLHB1bmN0dWF0aW9uOi9cW3xcXS8sdmFyaWFibGU6L1thLXpdLywibm9uLXN0YW5kYXJkIjp7cGF0dGVybjovWygpPEJET8KuXS8sYWxpYXM6ImJvbGQifX19KSh0KX1yZXR1cm4gRWN9dmFyIFNjLHRUO2Z1bmN0aW9uIE9IKCl7aWYodFQpcmV0dXJuIFNjO3RUPTEsU2M9ZSxlLmRpc3BsYXlOYW1lPSJmaXJlc3RvcmVTZWN1cml0eVJ1bGVzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlc1siZmlyZXN0b3JlLXNlY3VyaXR5LXJ1bGVzIl09dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6L1wvXC8uKi8sa2V5d29yZDovXGIoPzphbGxvd3xmdW5jdGlvbnxpZnxtYXRjaHxudWxsfHJldHVybnxydWxlc192ZXJzaW9ufHNlcnZpY2UpXGIvLG9wZXJhdG9yOi8mJnxcfFx8fFs8PiE9XT0/fFstKyovJV18XGIoPzppbnxpcylcYi99KSxkZWxldGUgdC5sYW5ndWFnZXNbImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlcyJdWyJjbGFzcy1uYW1lIl0sdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXMiLCJrZXl3b3JkIix7cGF0aDp7cGF0dGVybjovKF58W1xzKCksXSkoPzpcLyg/Oltcd1x4QTAtXHVGRkZGXSt8XHtbXHdceEEwLVx1RkZGRl0rKD86PVwqXCopP1x9fFwkXChbXHdceEEwLVx1RkZGRi5dK1wpKSkrLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3ZhcmlhYmxlOntwYXR0ZXJuOi9ce1tcd1x4QTAtXHVGRkZGXSsoPzo9XCpcKik/XH18XCRcKFtcd1x4QTAtXHVGRkZGLl0rXCkvLGluc2lkZTp7b3BlcmF0b3I6Lz0vLGtleXdvcmQ6L1wqXCovLHB1bmN0dWF0aW9uOi9bLiQoKXt9XS99fSxwdW5jdHVhdGlvbjovXC8vfX0sbWV0aG9kOntwYXR0ZXJuOi8oXGJhbGxvd1xzKylbYS16XSsoPzpccyosXHMqW2Etel0rKSooPz1ccypbOjtdKS8sbG9va2JlaGluZDohMCxhbGlhczoiYnVpbHRpbiIsaW5zaWRlOntwdW5jdHVhdGlvbjovLC99fX0pfXJldHVybiBTY312YXIgd2MsblQ7ZnVuY3Rpb24gTEgoKXtpZihuVClyZXR1cm4gd2M7blQ9MSx3Yz1lLGUuZGlzcGxheU5hbWU9ImZsb3ciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5mbG93PW4ubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YXNjcmlwdCIse30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZmxvdyIsImtleXdvcmQiLHt0eXBlOlt7cGF0dGVybjovXGIoPzpbQmJdb29sZWFufEZ1bmN0aW9ufFtObl11bWJlcnxbU3NddHJpbmd8YW55fG1peGVkfG51bGx8dm9pZClcYi8sYWxpYXM6InRhZyJ9XX0pLG4ubGFuZ3VhZ2VzLmZsb3dbImZ1bmN0aW9uLXZhcmlhYmxlIl0ucGF0dGVybj0vKD8hXHMpW18kYS16XHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqPVxzKig/OmZ1bmN0aW9uXGJ8KD86XChbXigpXSpcKSg/OlxzKjpccypcdyspP3woPyFccylbXyRhLXpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSopXHMqPT4pKS9pLGRlbGV0ZSBuLmxhbmd1YWdlcy5mbG93LnBhcmFtZXRlcixuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImZsb3ciLCJvcGVyYXRvciIseyJmbG93LXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXHtcfHxcfFx9LyxhbGlhczoicHVuY3R1YXRpb24ifX0pLEFycmF5LmlzQXJyYXkobi5sYW5ndWFnZXMuZmxvdy5rZXl3b3JkKXx8KG4ubGFuZ3VhZ2VzLmZsb3cua2V5d29yZD1bbi5sYW5ndWFnZXMuZmxvdy5rZXl3b3JkXSksbi5sYW5ndWFnZXMuZmxvdy5rZXl3b3JkLnVuc2hpZnQoe3BhdHRlcm46LyhefFteJF1cYikoPzpDbGFzc3xkZWNsYXJlfG9wYXF1ZXx0eXBlKVxiKD8hXCQpLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W14kXVxCKVwkKD86RGlmZnxFbnVtfEV4YWN0fEtleXN8T2JqTWFwfFByb3BlcnR5VHlwZXxSZWNvcmR8U2hhcGV8U3VidHlwZXxTdXBlcnR5cGV8YXdhaXQpXGIoPyFcJCkvLGxvb2tiZWhpbmQ6ITB9KX0pKHQpfXJldHVybiB3Y312YXIgVGMsclQ7ZnVuY3Rpb24gREgoKXtpZihyVClyZXR1cm4gVGM7clQ9MSxUYz1lLGUuZGlzcGxheU5hbWU9ImZvcnRyYW4iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmZvcnRyYW49eyJxdW90ZWQtbnVtYmVyIjp7cGF0dGVybjovW0JPWl0oWyciXSlbQS1GMC05XStcMS9pLGFsaWFzOiJudW1iZXIifSxzdHJpbmc6e3BhdHRlcm46Lyg/OlxiXHcrXyk/KFsnIl0pKD86XDFcMXwmKD86XHJcbj98XG4pKD86WyBcdF0qIS4qKD86XHJcbj98XG4pfCg/IVsgXHRdKiEpKXwoPyFcMSkuKSooPzpcMXwmKS8saW5zaWRlOntjb21tZW50OntwYXR0ZXJuOi8oJig/OlxyXG4/fFxuKVxzKikhLiovLGxvb2tiZWhpbmQ6ITB9fX0sY29tbWVudDp7cGF0dGVybjovIS4qLyxncmVlZHk6ITB9LGJvb2xlYW46L1wuKD86RkFMU0V8VFJVRSlcLig/Ol9cdyspPy9pLG51bWJlcjovKD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VEXVsrLV0/XGQrKT8oPzpfXHcrKT8vaSxrZXl3b3JkOlsvXGIoPzpDSEFSQUNURVJ8Q09NUExFWHxET1VCTEUgP1BSRUNJU0lPTnxJTlRFR0VSfExPR0lDQUx8UkVBTClcYi9pLC9cYig/OkVORCA/KT8oPzpCTE9DSyA/REFUQXxET3xGSUxFfEZPUkFMTHxGVU5DVElPTnxJRnxJTlRFUkZBQ0V8TU9EVUxFKD8hIFBST0NFRFVSRSl8UFJPR1JBTXxTRUxFQ1R8U1VCUk9VVElORXxUWVBFfFdIRVJFKVxiL2ksL1xiKD86QUxMT0NBVEFCTEV8QUxMT0NBVEV8QkFDS1NQQUNFfENBTEx8Q0FTRXxDTE9TRXxDT01NT058Q09OVEFJTlN8Q09OVElOVUV8Q1lDTEV8REFUQXxERUFMTE9DQVRFfERJTUVOU0lPTnxET3xFTkR8RVFVSVZBTEVOQ0V8RVhJVHxFWFRFUk5BTHxGT1JNQVR8R08gP1RPfElNUExJQ0lUKD86IE5PTkUpP3xJTlFVSVJFfElOVEVOVHxJTlRSSU5TSUN8TU9EVUxFIFBST0NFRFVSRXxOQU1FTElTVHxOVUxMSUZZfE9QRU58T1BUSU9OQUx8UEFSQU1FVEVSfFBPSU5URVJ8UFJJTlR8UFJJVkFURXxQVUJMSUN8UkVBRHxSRVRVUk58UkVXSU5EfFNBVkV8U0VMRUNUfFNUT1B8VEFSR0VUfFdISUxFfFdSSVRFKVxiL2ksL1xiKD86QVNTSUdOTUVOVHxERUZBVUxUfEVMRU1FTlRBTHxFTFNFfEVMU0VJRnxFTFNFV0hFUkV8RU5UUll8SU58SU5DTFVERXxJTk9VVHxLSU5EfE5VTEx8T05MWXxPUEVSQVRPUnxPVVR8UFVSRXxSRUNVUlNJVkV8UkVTVUxUfFNFUVVFTkNFfFNUQVR8VEhFTnxVU0UpXGIvaV0sb3BlcmF0b3I6Wy9cKlwqfFwvXC98PT58Wz1cL109fFs8Pl09P3w6OnxbK1wtKj0lXXxcLltBLVpdK1wuL2kse3BhdHRlcm46LyhefCg/IVwoKS4pXC8oPyFcKSkvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovXChcL3xcL1wpfFsoKSw7OiZdL319cmV0dXJuIFRjfXZhciBrYyxhVDtmdW5jdGlvbiBNSCgpe2lmKGFUKXJldHVybiBrYzthVD0xLGtjPWUsZS5kaXNwbGF5TmFtZT0iZnNoYXJwIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5mc2hhcnA9dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcKFwqKD8hXCkpW1xzXFNdKj9cKlwpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46LyhefFteXFw6XSlcL1wvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sc3RyaW5nOntwYXR0ZXJuOi8oPzoiIiJbXHNcU10qPyIiInxAIig/OiIifFteIl0pKiJ8Iig/OlxcW1xzXFNdfFteXFwiXSkqIilCPy8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmV4Y2VwdGlvbnxpbmhlcml0fGludGVyZmFjZXxuZXd8b2Z8dHlwZSlccyt8XHdccyo6XHMqfFxzOlw/Pz5ccyopWy5cd10rXGIoPzpccyooPzotPnxcKilccypbLlx3XStcYikqKD8hXHMqWzouXSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntvcGVyYXRvcjovLT58XCovLHB1bmN0dWF0aW9uOi9cLi99fSxrZXl3b3JkOi9cYig/OmxldHxyZXR1cm58dXNlfHlpZWxkKSg/OiFcQnxcYil8XGIoPzphYnN0cmFjdHxhbmR8YXN8YXNyfGFzc2VydHxhdG9taWN8YmFzZXxiZWdpbnxicmVha3xjaGVja2VkfGNsYXNzfGNvbXBvbmVudHxjb25zdHxjb25zdHJhaW50fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGRlZmF1bHR8ZGVsZWdhdGV8ZG98ZG9uZXxkb3duY2FzdHxkb3dudG98ZWFnZXJ8ZWxpZnxlbHNlfGVuZHxldmVudHxleGNlcHRpb258ZXh0ZXJufGV4dGVybmFsfGZhbHNlfGZpbmFsbHl8Zml4ZWR8Zm9yfGZ1bnxmdW5jdGlvbnxmdW5jdG9yfGdsb2JhbHxpZnxpbnxpbmNsdWRlfGluaGVyaXR8aW5saW5lfGludGVyZmFjZXxpbnRlcm5hbHxsYW5kfGxhenl8bG9yfGxzbHxsc3J8bHhvcnxtYXRjaHxtZW1iZXJ8bWV0aG9kfG1peGlufG1vZHxtb2R1bGV8bXV0YWJsZXxuYW1lc3BhY2V8bmV3fG5vdHxudWxsfG9iamVjdHxvZnxvcGVufG9yfG92ZXJyaWRlfHBhcmFsbGVsfHByaXZhdGV8cHJvY2Vzc3xwcm90ZWN0ZWR8cHVibGljfHB1cmV8cmVjfHNlYWxlZHxzZWxlY3R8c2lnfHN0YXRpY3xzdHJ1Y3R8dGFpbGNhbGx8dGhlbnx0b3x0cmFpdHx0cnVlfHRyeXx0eXBlfHVwY2FzdHx2YWx8dmlydHVhbHx2b2lkfHZvbGF0aWxlfHdoZW58d2hpbGV8d2l0aClcYi8sbnVtYmVyOlsvXGIweFtcZGEtZkEtRl0rKD86TEZ8bGZ8dW4pP1xiLywvXGIwYlswMV0rKD86dXl8eSk/XGIvLC8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbZm1dfGVbKy1dP1xkKyk/XGIvaSwvXGJcZCsoPzpbSWxMc3ldfFVMfHVbbHN5XT8pP1xiL10sb3BlcmF0b3I6LyhbPD5+Jl5dKVwxXDF8KFsqLjo8PiZdKVwyfDwtfC0+fFshPTpdPXw8P1x8ezEsM30+P3xcPz8oPzo8PXw+PXw8PnxbLSsqLyU9PD5dKVw/P3xbIT9eJl18flsrfi1dfDo+fDpcPz4/L30pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZnNoYXJwIiwia2V5d29yZCIse3ByZXByb2Nlc3Nvcjp7cGF0dGVybjovKF5bXHQgXSopIy4qL20sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkiLGluc2lkZTp7ZGlyZWN0aXZlOntwYXR0ZXJuOi8oXiMpXGIoPzplbHNlfGVuZGlmfGlmfGxpZ2h0fGxpbmV8bm93YXJuKVxiLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn19fX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZnNoYXJwIiwicHVuY3R1YXRpb24iLHsiY29tcHV0YXRpb24tZXhwcmVzc2lvbiI6e3BhdHRlcm46L1xiW19hLXpdXHcqKD89XHMqXHspL2ksYWxpYXM6ImtleXdvcmQifX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiZnNoYXJwIiwic3RyaW5nIix7YW5ub3RhdGlvbjp7cGF0dGVybjovXFs8Lis/PlxdLyxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlxbPHw+XF0kLywiY2xhc3MtbmFtZSI6e3BhdHRlcm46L15cdyskfChefDtccyopW0EtWl1cdyooPz1cKCkvLGxvb2tiZWhpbmQ6ITB9LCJhbm5vdGF0aW9uLWNvbnRlbnQiOntwYXR0ZXJuOi9bXHNcU10rLyxpbnNpZGU6dC5sYW5ndWFnZXMuZnNoYXJwfX19LGNoYXI6e3BhdHRlcm46LycoPzpbXlxcJ118XFwoPzoufFxkezN9fHhbYS1mQS1GXGRdezJ9fHVbYS1mQS1GXGRdezR9fFVbYS1mQS1GXGRdezh9KSknQj8vLGdyZWVkeTohMH19KX1yZXR1cm4ga2N9dmFyIEFjLGlUO2Z1bmN0aW9uIFBIKCl7aWYoaVQpcmV0dXJuIEFjO2lUPTE7dmFyIGU9bHQoKTtBYz10LHQuZGlzcGxheU5hbWU9ImZ0bCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtmb3IodmFyIGE9L1tePCgpIiddfFwoKD86PGV4cHI+KSpcKXw8KD8hIy0tKXw8Iy0tKD86W14tXXwtKD8hLT4pKSotLT58Iig/OlteXFwiXXxcXC4pKiJ8Jyg/OlteXFwnXXxcXC4pKicvLnNvdXJjZSxpPTA7aTwyO2krKylhPWEucmVwbGFjZSgvPGV4cHI+L2csZnVuY3Rpb24oKXtyZXR1cm4gYX0pO2E9YS5yZXBsYWNlKC88ZXhwcj4vZywvW15cc1xTXS8uc291cmNlKTt2YXIgbz17Y29tbWVudDovPCMtLVtcc1xTXSo/LS0+LyxzdHJpbmc6W3twYXR0ZXJuOi9cYnIoInwnKSg/Oig/IVwxKVteXFxdfFxcLikqXDEvLGdyZWVkeTohMH0se3BhdHRlcm46UmVnRXhwKC8oInwnKSg/Oig/IVwxfFwkXHspW15cXF18XFwufFwkXHsoPzooPyFcfSkoPzo8ZXhwcj4pKSpcfSkqXDEvLnNvdXJjZS5yZXBsYWNlKC88ZXhwcj4vZyxmdW5jdGlvbigpe3JldHVybiBhfSkpLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46UmVnRXhwKC8oKD86XnxbXlxcXSkoPzpcXFxcKSopXCRceyg/Oig/IVx9KSg/OjxleHByPikpKlx9Ly5zb3VyY2UucmVwbGFjZSgvPGV4cHI+L2csZnVuY3Rpb24oKXtyZXR1cm4gYX0pKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXCRce3xcfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJlc3Q6bnVsbH19fX1dLGtleXdvcmQ6L1xiKD86YXMpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sImJ1aWx0aW4tZnVuY3Rpb24iOntwYXR0ZXJuOi8oKD86XnxbXj9dKVw/XHMqKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxmdW5jdGlvbjovXGJcdysoPz1ccypcKCkvLG51bWJlcjovXGJcZCsoPzpcLlxkKyk/XGIvLG9wZXJhdG9yOi9cLlwuWzwqIV0/fC0+fC0tfFwrXCt8JiZ8XHxcfHxcP3sxLDJ9fFstKyovJSE9PD5dPT98XGIoPzpndHxndGV8bHR8bHRlKVxiLyxwdW5jdHVhdGlvbjovWyw7LjooKVtcXXt9XS99O28uc3RyaW5nWzFdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5yZXN0PW8sci5sYW5ndWFnZXMuZnRsPXsiZnRsLWNvbW1lbnQiOntwYXR0ZXJuOi9ePCMtLVtcc1xTXSovLGFsaWFzOiJjb21tZW50In0sImZ0bC1kaXJlY3RpdmUiOntwYXR0ZXJuOi9ePFtcc1xTXSs+JC8saW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LyhePFwvPylbI0BdW2Etel1cdyovaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0scHVuY3R1YXRpb246L148XC8/fFwvPz4kLyxjb250ZW50OntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGFsaWFzOiJmdGwiLGluc2lkZTpvfX19LCJmdGwtaW50ZXJwb2xhdGlvbiI6e3BhdHRlcm46L15cJFx7W1xzXFNdKlx9JC8saW5zaWRlOntwdW5jdHVhdGlvbjovXlwkXHt8XH0kLyxjb250ZW50OntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGFsaWFzOiJmdGwiLGluc2lkZTpvfX19fSxyLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihzKXt2YXIgbD1SZWdFeHAoLzwjLS1bXHNcU10qPy0tPnw8XC8/WyNAXVthLXpBLVpdKD86PGV4cHI+KSo/PnxcJFx7KD86PGV4cHI+KSo/XH0vLnNvdXJjZS5yZXBsYWNlKC88ZXhwcj4vZyxmdW5jdGlvbigpe3JldHVybiBhfSksImdpIik7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMocywiZnRsIixsKX0pLHIuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24ocyl7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMocywiZnRsIil9KX0obil9cmV0dXJuIEFjfXZhciB4YyxvVDtmdW5jdGlvbiBGSCgpe2lmKG9UKXJldHVybiB4YztvVD0xLHhjPWUsZS5kaXNwbGF5TmFtZT0iZ2FwIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5nYXA9e3NoZWxsOntwYXR0ZXJuOi9eZ2FwPltcc1xTXSo/KD89XmdhcD58JCg/IVtcc1xTXSkpL20sZ3JlZWR5OiEwLGluc2lkZTp7Z2FwOntwYXR0ZXJuOi9eKGdhcD4pLisoPzooPzpccig/OlxufCg/IVxuKSl8XG4pPi4qKSovLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LHB1bmN0dWF0aW9uOi9eZ2FwPi99fSxjb21tZW50OntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oXnxbXlxcJyJdKSg/OicoPzpbXlxyXG5cXCddfFxcLil7MSwxMH0nfCIoPzpbXlxyXG5cXCJdfFxcLikqIig/ISIpfCIiIltcc1xTXSo/IiIiKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntjb250aW51YXRpb246e3BhdHRlcm46LyhbXHJcbl0pPi8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifX19LGtleXdvcmQ6L1xiKD86QXNzZXJ0fEluZm98SXNCb3VuZHxRVUlUfFRyeU5leHRNZXRob2R8VW5iaW5kfGFuZHxhdG9taWN8YnJlYWt8Y29udGludWV8ZG98ZWxpZnxlbHNlfGVuZHxmaXxmb3J8ZnVuY3Rpb258aWZ8aW58bG9jYWx8bW9kfG5vdHxvZHxvcnxxdWl0fHJlYWRvbmx5fHJlYWR3cml0ZXxyZWN8cmVwZWF0fHJldHVybnx0aGVufHVudGlsfHdoaWxlKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pLG51bWJlcjp7cGF0dGVybjovKF58W15cdy5dfFwuXC4pKD86XGQrKD86XC5cZCopP3xcLlxkKykoPzpbZUVdWystXT9cZCspPyg/Ol9bYS16XT8pPyg/PSR8W15cdy5dfFwuXC4pLyxsb29rYmVoaW5kOiEwfSxjb250aW51YXRpb246e3BhdHRlcm46LyhbXHJcbl0pPi8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifSxvcGVyYXRvcjovLT58Wy0rKi9efj0hXXw8PnxbPD5dPT98Oj18XC5cLi8scHVuY3R1YXRpb246L1soKVtcXXt9LDsuOl0vfSx0Lmxhbmd1YWdlcy5nYXAuc2hlbGwuaW5zaWRlLmdhcC5pbnNpZGU9dC5sYW5ndWFnZXMuZ2FwfXJldHVybiB4Y312YXIgUmMsc1Q7ZnVuY3Rpb24gVUgoKXtpZihzVClyZXR1cm4gUmM7c1Q9MSxSYz1lLGUuZGlzcGxheU5hbWU9Imdjb2RlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5nY29kZT17Y29tbWVudDovOy4qfFxCXCguKj9cKVxCLyxzdHJpbmc6e3BhdHRlcm46LyIoPzoiInxbXiJdKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiW0dNXVxkKyg/OlwuXGQrKT9cYi8scHJvcGVydHk6L1xiW0EtWl0vLGNoZWNrc3VtOntwYXR0ZXJuOi8oXCopXGQrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxwdW5jdHVhdGlvbjovWzoqXS99fXJldHVybiBSY312YXIgX2MsbFQ7ZnVuY3Rpb24gQkgoKXtpZihsVClyZXR1cm4gX2M7bFQ9MSxfYz1lLGUuZGlzcGxheU5hbWU9Imdkc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5nZHNjcmlwdD17Y29tbWVudDovIy4qLyxzdHJpbmc6e3BhdHRlcm46L0A/KD86KCJ8JykoPzooPyFcMSlbXlxuXFxdfFxcW1xzXFNdKSpcMSg/ISJ8Jyl8IiIiKD86W15cXF18XFxbXHNcU10pKj8iIiIpLyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKF4oPzpjbGFzc3xjbGFzc19uYW1lfGV4dGVuZHMpWyBcdF0rfF5leHBvcnRcKFsgXHRdKnxcYmFzWyBcdF0rfCg/OlxiKD86Y29uc3R8dmFyKVsgXHRdfFssKF0pWyBcdF0qXHcrWyBcdF0qOlsgXHRdKnwtPlsgXHRdKilbYS16QS1aX11cdyovbSxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/OmFuZHxhc3xhc3NlcnR8YnJlYWt8YnJlYWtwb2ludHxjbGFzc3xjbGFzc19uYW1lfGNvbnN0fGNvbnRpbnVlfGVsaWZ8ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZvcnxmdW5jfGlmfGlufGlzfG1hc3RlcnxtYXN0ZXJzeW5jfG1hdGNofG5vdHxudWxsfG9ucmVhZHl8b3J8cGFzc3xwcmVsb2FkfHB1cHBldHxwdXBwZXRzeW5jfHJlbW90ZXxyZW1vdGVzeW5jfHJldHVybnxzZWxmfHNldGdldHxzaWduYWx8c3RhdGljfHRvb2x8dmFyfHdoaWxlfHlpZWxkKVxiLyxmdW5jdGlvbjovXGJbYS16X11cdyooPz1bIFx0XSpcKCkvaSx2YXJpYWJsZTovXCRcdysvLG51bWJlcjpbL1xiMGJbMDFfXStcYnxcYjB4W1xkYS1mQS1GX10rXGJ8KD86XGJcZFtcZF9dKig/OlwuW1xkX10qKT98XEJcLltcZF9dKykoPzplWystXT9bXGRfXSspP1xiLywvXGIoPzpJTkZ8TkFOfFBJfFRBVSlcYi9dLGNvbnN0YW50Oi9cYltBLVpdW0EtWl9cZF0qXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6Ly0+fDo9fCYmfFx8XHx8PDx8Pj58Wy0rKi8lJnwhPD49XT0/fFt+Xl0vLHB1bmN0dWF0aW9uOi9bLjosOygpW1xde31dL319cmV0dXJuIF9jfXZhciBJYyx1VDtmdW5jdGlvbiAkSCgpe2lmKHVUKXJldHVybiBJYzt1VD0xLEljPWUsZS5kaXNwbGF5TmFtZT0iZ2VkY29tIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5nZWRjb209eyJsaW5lLXZhbHVlIjp7cGF0dGVybjovKF5bXHQgXSpcZCsgKyg/OkBcd1tcdyEiJCUmJygpKissXC0uLzo7PD0+P1tcXFxdXmB7fH1+XHg4MC1ceGZlICNdKkAgKyk/XHcrICkuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwb2ludGVyOntwYXR0ZXJuOi9eQFx3W1x3ISIkJSYnKCkqKyxcLS4vOjs8PT4/W1xcXF1eYHt8fX5ceDgwLVx4ZmUgI10qQCQvLGFsaWFzOiJ2YXJpYWJsZSJ9fX0sdGFnOntwYXR0ZXJuOi8oXltcdCBdKlxkKyArKD86QFx3W1x3ISIkJSYnKCkqKyxcLS4vOjs8PT4/W1xcXF1eYHt8fX5ceDgwLVx4ZmUgI10qQCArKT8pXHcrL20sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0sbGV2ZWw6e3BhdHRlcm46LyheW1x0IF0qKVxkKy9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LHBvaW50ZXI6e3BhdHRlcm46L0Bcd1tcdyEiJCUmJygpKissXC0uLzo7PD0+P1tcXFxdXmB7fH1+XHg4MC1ceGZlICNdKkAvLGFsaWFzOiJ2YXJpYWJsZSJ9fX1yZXR1cm4gSWN9dmFyIE5jLGNUO2Z1bmN0aW9uIHpIKCl7aWYoY1QpcmV0dXJuIE5jO2NUPTEsTmM9ZSxlLmRpc3BsYXlOYW1lPSJnaGVya2luIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9Lyg/OlxyP1xufFxyKVsgXHRdKlx8LitcfCg/Oig/IVx8KS4pKi8uc291cmNlO24ubGFuZ3VhZ2VzLmdoZXJraW49e3B5c3RyaW5nOntwYXR0ZXJuOi8oIiIifCcnJylbXHNcU10rP1wxLyxhbGlhczoic3RyaW5nIn0sY29tbWVudDp7cGF0dGVybjovKF5bIFx0XSopIy4qL20sbG9va2JlaGluZDohMH0sdGFnOntwYXR0ZXJuOi8oXlsgXHRdKilAXFMqL20sbG9va2JlaGluZDohMH0sZmVhdHVyZTp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpWyBcdF0qKSg/OkFiaWxpdHl8QWhveSBtYXRleSF8QXJ3ZWRkfEFzcGVrdHxCZXNpZ2hlaWQgQmVob2VmdGV8QnVzaW5lc3MgTmVlZHxDYXJhY3RlcmlzdGljYXxDYXJhY3RlcsOtc3RpY2F8RWdlbnNrYWJ8RWdlbnNrYXB8RWlnaW5sZWlraXxGZWF0dXJlfEbEq8SNYXxGaXR1cnxGb25jdGlvbm5hbGl0w6l8Rm9ua3N5b25hbGl0ZXxGdW5jaW9uYWxpZGFkZXxGdW5jaW9uYWxpdGF0fEZ1bmN0aW9uYWxpdGF0ZXxGdW5jxaNpb25hbGl0YXRlfEZ1bmPIm2lvbmFsaXRhdGV8RnVuY3Rpb25hbGl0ZWl0fEZ1bmdzaXxGdW5rY2lhfEZ1bmtjaWphfEZ1bmtjaW9uYWxpdMSBdGV8RnVua2Npb25hbG5vc3R8RnVua2NqYXxGdW5rc2llfEZ1bmt0aW9uYWxpdMOkdHxGdW5rdGlvbmFsaXTDqWl0fEZ1bnppb25hbGl0w6B8SHdhZXR8SHfDpnR8SmVsbGVtesWRfEthcmFrdGVyaXN0aWt8TGFzdG5vc3R8TWFrfE1vZ3Vjbm9zdHxsYUh8TW9ndcSHbm9zdHxNb3pub3N0aXxNb8W+bm9zdGl8T0ggSEFJfE9tYWR1c3xPbWluYWlzdXVzfE9zb2JpbmF8w5Z6ZWxsaWt8UG90cnplYmEgYml6bmVzb3dhfHBlcmJvZ2h8cG9RYm9naCBtYWxqYSd8UG/FvmFkYXZla3xQb8W+aWFkYXZrYXxQcmV0dHkgbXVjaHxRYXB8UXUnbWVIICd1dHxTYXZ5YsSXfFTDrW5oIG7Eg25nfFRyYWp0b3xWZXJtb8OrfFZsYXN0bm9zxaV8V8WCYcWbY2l3b8WbxId8Wm5hxI1pbG5vc3R8zpTPhc69zrHPhM+Mz4TOt8+EzrF8zpvOtc65z4TOv8+Fz4HOs86vzrF80JzQvtCz0YPRm9C90L7RgdGCfNCc06nQvNC60LjQvdC70LXQunzQntGB0L7QsdC40L3QsHzQodCy0L7QudGB0YLQstC+fNKu0LfQtdC90YfTmdC70LXQutC70LXQu9C10Lp80KTRg9C90LrRhtC40L7QvdCw0Lt80KTRg9C90LrRhtC40L7QvdCw0LvQvdC+0YHRgnzQpNGD0L3QutGG0LjRj3zQpNGD0L3QutGG0ZbQvtC90LDQu3zXqteb15XXoNeUfNiu2KfYtdmK2Kl82K7YtdmI2LXbjNiqfNi12YTYp9it24zYqnzaqdin2LHZiNio2KfYsSDaqduMINi22LHZiNix2Kp82YjZkNuM2pjar9uMfOCksOClguCkqiDgpLLgpYfgpJZ84KiW4Ki+4Ki44KmA4KiF4KikfOCoqOColeCotiDgqKjgqYHgqLngqL7gqLB84Kiu4KmB4Ki54Ki+4KiC4Kim4Kiw4Ki+fOCwl+CxgeCwo+CwruCxgXzgsrngs4bgsprgs43gsprgsrN84LiE4Lin4Liy4Lih4LiV4LmJ4Lit4LiH4LiB4Liy4Lij4LiX4Liy4LiH4LiY4Li44Lij4LiB4Li04LiIfOC4hOC4p+C4suC4oeC4quC4suC4oeC4suC4o+C4lnzguYLguITguKPguIfguKvguKXguLHguIF86riw64qlfOODleOCo+ODvOODgeODo3zlip/og7185qmf6IO9KTooPzpbXjpcclxuXSsoPzpccj9cbnxccnwkKSkqLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7aW1wb3J0YW50OntwYXR0ZXJuOi8oOilbXlxyXG5dKy8sbG9va2JlaGluZDohMH0sa2V5d29yZDovW146XHJcbl0rOi99fSxzY2VuYXJpbzp7cGF0dGVybjovKF5bIFx0XSopKD86QWJzdHJhY3QgU2NlbmFyaW98QWJzdHJha3QgU2NlbmFyaW98QWNodGVyZ3JvbmR8QWVyfMOGcnxBZ3Rlcmdyb25kfEFsbCB5J2FsbHxBbnRlY2VkZW50ZXN8QW50ZWNlZGVudHN8QXRidXLDsGFyw6FzfEF0YnVyw7BhcsOhc2lyfEF3d3csIGxvb2sgbWF0ZXxCNHxCYWNrZ3JvdW5kfEJhZ2dydW5kfEJha2dydW5kfEJha2dydW5ufEJha2dydW5udXJ8QmVpc3BpZWxlfEJlaXNwaWxsZXJ8QuG7kWkgY+G6o25ofENlZm5kaXJ8Q2VuYXJpb3xDZW7DoXJpb3xDZW5hcmlvIGRlIEZ1bmRvfENlbsOhcmlvIGRlIEZ1bmRvfENlbmFyaW9zfENlbsOhcmlvc3xDb250ZXN0b3xDb250ZXh0fENvbnRleHRlfENvbnRleHRvfENvbnRvfENvbnRvaHxDb250b25lfETDpm1pfERhc2FyfERlYWQgbWVuIHRlbGwgbm8gdGFsZXN8RGVsaW5lYWNhbyBkbyBDZW5hcmlvfERlbGluZWHDp8OjbyBkbyBDZW7DoXJpb3xEaXMgaXMgd2hhdCB3ZW50IGRvd258ROG7ryBsaeG7h3V8RHlhZ3JhbSBTZW5hcnlvfER5YWdyYW0gc2VuYXJ5b3xFZ3phbnB8RWplbXBsb3N8RWtzZW1wbGVyfEVremVtcGxvanxFbmdocmVpZmZ0aWF1fEVzYm96byBkbyBlc2NlbmFyaW98RXNjZW5hcml8RXNjZW5hcmlvfEVzZW1waXxFc3F1ZW1hIGRlIGwnZXNjZW5hcml8RXNxdWVtYSBkZWwgZXNjZW5hcmlvfEVzcXVlbWEgZG8gQ2VuYXJpb3xFc3F1ZW1hIGRvIENlbsOhcmlvfEVYQU1QTFp8RXhhbXBsZXN8RXhlbXBlbHxFeGVtcGxlfEV4ZW1wbGVzfEV4ZW1wbG9zfEZpcnN0IG9mZnxGb25vfEZvcmdhdMOza8O2bnl2fEZvcmdhdMOza8O2bnl2IHbDoXpsYXR8RnVuZG98R2XDp21pxZ98R3J1bmRsYWdlfEhhbm5lcmdyb25kfGdoYW50b0h8SMOhdHTDqXJ8SGVhdmUgdG98SXN0b3Jpa3xKdWh0dW1pZHxLZWFkYWFufEtodW5nIGvhu4tjaCBi4bqjbnxLaHVuZyB0w6xuaCBodeG7kW5nfEvhu4tjaCBi4bqjbnxLb25jZXB0fEtvbnNlcCBza2VuYXJpb3xLb250w6hrc3xLb250ZWtzdHxLb250ZWtzdGFzfEtvbnRla3N0c3xLb250ZXh0fEtvbnR1cm8gZGUgbGEgc2NlbmFyb3xMYXRhciBCZWxha2FuZ3xsdXQgY2hvdm5hdGxofGx1dHxsdXRtZXl8TMO9c2luZyBBdGJ1csOwYXLDoXNhcnxMw71zaW5nIETDpm1hfE1JU0hVTiBTUlNMWXxNSVNIVU58TWVuZ2dhcmlza2FuIFNlbmFyaW98bW8nfE7DocSNcnQgU2NlbsOhcmF8TsOhxI1ydCBTY8OpbsOhxZllfE7DocSNcnQgU2NlbsOhcnV8T3JpcyBzY2VuYXJpamF8w5ZybmVrbGVyfE9zbm92YXxPc25vdmEgU2NlbsOhcmF8T3Nub3ZhIHNjw6luw6HFmWV8T3NudXRla3xPemFkamV8UGFyYXVnc3xQYXZ5emTFvmlhaXxQw6lsZMOha3xQaWVtxJNyaXxQbGFuIGR1IHNjw6luYXJpb3xQbGFuIGR1IFNjw6luYXJpb3xQbGFuIFNlbmFyeW98UGxhbiBzZW5hcnlvfFBsYW5nIHZ1bSBTemVuYXJpb3xQb3phZMOtfFBvemFkaWV8UG96YWRpbmF8UHLDrWtsYWR5fFDFmcOta2xhZHl8UHJpbWVyfFByaW1lcml8UHJpbWplcml8UHJ6eWvFgmFkeXxSYWFtc3RzZW5hYXJpdW18UmVja29uIGl0J3MgbGlrZXxSZXJlZm9uc3xTY2Vuw6FyfFNjw6luw6HFmXxTY2VuYXJpZXxTY2VuYXJpanxTY2VuYXJpamFpfFNjZW5hcmlqYXVzIMWhYWJsb25hc3xTY2VuYXJpaml8U2NlbsSBcmlqc3xTY2VuxIFyaWpzIHDEk2MgcGFyYXVnYXxTY2VuYXJpanVzfFNjZW5hcmlvfFNjw6luYXJpb3xTY2VuYXJpbyBBbWxpbmVsbG9sfFNjZW5hcmlvIE91dGxpbmV8U2NlbmFyaW8gVGVtcGxhdGV8U2NlbmFyaW9tYWx8U2NlbmFyaW9tYWxsfFNjZW5hcmlvc3xTY2VuYXJpdXxTY2VuYXJpdXN6fFNjZW5hcm98U2NoZW1hIGRlbGxvIHNjZW5hcmlvfFNlIMOwZXxTZSB0aGV8U2Ugw75lfFNlbmFyaW98U2VuYXJ5byBEZXNrcmlwc3lvbnxTZW5hcnlvIGRlc2tyaXBzeW9ufFNlbmFyeW98U2VuYXJ5byB0YXNsYcSfxLF8U2hpdmVyIG1lIHRpbWJlcnN8U2l0dcSBY2lqYXxTaXR1YWl8U2l0dWFzaWUgVWl0ZWVuc2V0dGluZ3xTaXR1YXNpZXxTa2VuYXJpbyBrb25zZXB8U2tlbmFyaW98U2tpY2F8U3RydWN0dXJhIHNjZW5hcml1fFN0cnVjdHVyxIMgc2NlbmFyaXV8U3RydWt0dXJhIHNjZW5hcmlqYXxTdHNlbmFhcml1bXxTd2EgaHdhZXIgc3dhfFN3YXxTd2EgaHfDpnIgc3dhfFN6YWJsb24gc2NlbmFyaXVzemF8U3plbmFyaW98U3plbmFyaW9ncnVuZHJpc3N8VGFwYXVrc2V0fFRhcGF1c3xUYXBhdXNhaWhpb3xUYXVzdHxUYXVzdGF8VGVtcGxhdGUgS2VhZGFhbnxUZW1wbGF0ZSBTZW5hcmlvfFRlbXBsYXRlIFNpdHVhaXxUaGUgdGhpbmcgb2YgaXQgaXN8VMOsbmggaHXhu5FuZ3xWYXJpYW50YWl8Vm9vcmJlZWxkZXxWb29yYmVlbGRlbnxXaGFycmltZWFuIGlzfFlvLWhvLWhvfFlvdSdsbCB3YW5uYXxaYcWCb8W8ZW5pYXzOoM6xz4HOsc60zrXOr86zzrzOsc+EzrF8zqDOtc+BzrnOs8+BzrHPhs6uIM6jzrXOvc6xz4HOr86/z4V8zqPOtc69zqzPgc65zrF8zqPOtc69zqzPgc65zr98zqXPgM+MzrLOsc64z4HOv3zQmtC10YDQtdGIfNCa0L7QvdGC0LXQutGB0YJ80JrQvtC90YbQtdC/0YJ80JzQuNGB0LDQu9C70LDRgHzQnNC40YHQvtC70LvQsNGAfNCe0YHQvdC+0LLQsHzQn9C10YDQtdC00YPQvNC+0LLQsHzQn9C+0LfQsNC00LjQvdCwfNCf0YDQtdC00LjRgdGC0L7RgNC40Y980J/RgNC10LTRi9GB0YLQvtGA0LjRj3zQn9GA0LjQutC70LDQtNC4fNCf0YDQuNC80LXRgHzQn9GA0LjQvNC10YDQuHzQn9GA0LjQvNC10YDRi3zQoNCw0LzQutCwINC90LAg0YHRhtC10L3QsNGA0LjQuXzQodC60LjRhtCwfNCh0YLRgNGD0LrRgtGD0YDQsCDRgdGG0LXQvdCw0YDQuNGY0LB80KHRgtGA0YPQutGC0YPRgNCwINGB0YbQtdC90LDRgNC40Y980KHRgtGA0YPQutGC0YPRgNCwINGB0YbQtdC90LDRgNGW0Y580KHRhtC10L3QsNGA0LjQuXzQodGG0LXQvdCw0YDQuNC5INGB0YLRgNGD0LrRgtGD0YDQsNGB0Lh80KHRhtC10L3QsNGA0LjQudC90YvSoyDRgtOp0LfQtdC70LXRiNC1fNCh0YbQtdC90LDRgNC40ZjQuHzQodGG0LXQvdCw0YDQuNC+fNCh0YbQtdC90LDRgNGW0Ll80KLQsNGA0LjRhXzSrtGA0L3TmdC60LvTmdGAfNeT15XXktee15DXldeqfNeo16fXonzXqteR16DXmdeqINeq16jXl9eZ16l816rXqNeX15nXqXzYp9mE2K7ZhNmB2YrYqXzYp9mE2q/ZiNuMINiz2YbYp9ix24zZiHzYp9mF2KvZhNipfNm+2LMg2YXZhti42LF82LLZhduM2YbZh3zYs9mG2KfYsduM2Yh82LPZitmG2KfYsdmK2Yh82LPZitmG2KfYsdmK2Ygg2YXYrti32Ld82YXYq9in2YTbjNq6fNmF2YbYuNixINmG2KfZhduSINqp2Kcg2K7Yp9qp24F82YXZhti42LHZhtin2YXbgXzZhtmF2YjZhtmHINmH2Kd84KSJ4KSm4KS+4KS54KSw4KSjfOCkquCksOCkv+CkpuClg+CktuCljeCkr3zgpKrgpLDgpL/gpKbgpYPgpLbgpY3gpK8g4KSw4KWC4KSq4KSw4KWH4KSW4KS+fOCkquClg+Ckt+CljeCkoOCkreClguCkruCkv3zgqIngqKbgqL7gqLngqLDgqKjgqL7gqIJ84Kiq4Kif4KiV4Kil4Ki+fOCoquCon+ColeCopeCoviDgqKLgqL7gqILgqJrgqL584Kiq4Kif4KiV4Kil4Ki+IOCosOCpguCoqiDgqLDgqYfgqJbgqL584Kiq4Ki/4Kib4KmL4KiV4KmcfOCwieCwpuCwvuCwueCwsOCwo+CwsuCxgXzgsJXgsKXgsKjgsIJ84LCo4LGH4LCq4LCl4LGN4LCv4LCCfOCwuOCwqOCxjeCwqOCwv+CwteCxh+CwtuCwgnzgsongsqbgsr7gsrngsrDgsqPgs4bgspfgsrPgs4F84LKV4LKl4LK+4LK44LK+4LKw4LK+4LKC4LK2fOCyteCyv+CyteCysOCyo+Czhnzgsrngsr/gsqjgs43gsqjgs4bgsrLgs4Z84LmC4LiE4Lij4LiH4Liq4Lij4LmJ4Liy4LiH4LiC4Lit4LiH4LmA4Lir4LiV4Li44LiB4Liy4Lij4LiT4LmMfOC4iuC4uOC4lOC4guC4reC4h+C4leC4seC4p+C4reC4ouC5iOC4suC4h3zguIrguLjguJTguILguK3guIfguYDguKvguJXguLjguIHguLLguKPguJPguYx84LmB4LiZ4Lin4LiE4Li04LiUfOC4quC4o+C4uOC4m+C5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jHzguYDguKvguJXguLjguIHguLLguKPguJPguYx867Cw6rK9fOyLnOuCmOumrOyYpHzsi5zrgpjrpqzsmKQg6rCc7JqUfOyYiHzjgrXjg7Pjg5fjg6t844K344OK44Oq44KqfOOCt+ODiuODquOCquOCouOCpuODiOODqeOCpOODs3zjgrfjg4rjg6rjgqrjg4bjg7Pjg5fjg6x844K344OK44Oq44Kq44OG44Oz44OX44Os44O844OIfOODhuODs+ODl+ODrHzkvot85L6L5a2QfOWJp+acrHzliafmnKzlpKfnurJ85YqH5pysfOWKh+acrOWkp+e2sXzlnLrmma985Zy65pmv5aSn57qyfOWgtOaZr3zloLTmma/lpKfntrF86IOM5pmvKTpbXjpcclxuXSovbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7aW1wb3J0YW50OntwYXR0ZXJuOi8oOilbXlxyXG5dKi8sbG9va2JlaGluZDohMH0sa2V5d29yZDovW146XHJcbl0rOi99fSwidGFibGUtYm9keSI6e3BhdHRlcm46UmVnRXhwKCIoIityKyIpKD86IityKyIpKyIpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntvdXRsaW5lOntwYXR0ZXJuOi88W14+XSs+LyxhbGlhczoidmFyaWFibGUifSx0ZDp7cGF0dGVybjovXHMqW15cc3xdW158XSovLGFsaWFzOiJzdHJpbmcifSxwdW5jdHVhdGlvbjovXHwvfX0sInRhYmxlLWhlYWQiOntwYXR0ZXJuOlJlZ0V4cChyKSxpbnNpZGU6e3RoOntwYXR0ZXJuOi9ccypbXlxzfF1bXnxdKi8sYWxpYXM6InZhcmlhYmxlIn0scHVuY3R1YXRpb246L1x8L319LGF0cnVsZTp7cGF0dGVybjovKF5bIFx0XSspKD86J2F8J2FjaHwnZWp8N3xhfEEgdGFrw6l8QSB0YWt0aWXFvnxBIHRpZcW+fEEgesOhcm92ZcWIfEFiZXJ8QWN8QWRvdHR8QWtrb3J8QWt8QWxlc2hvcmVzfEFsZXxBbGl8QWxsb3JhfEFsb3JzfEFsc3xBbWF8QW1lbm55aWJlbnxBbWlrb3J8QW1wYWt8YW58QU58QW5hbmdpbmd8QW5kIHknYWxsfEFuZHxBbmdlbm9tbWVufEFucmhlZ2VkaWcgYXxBbnxBcGFiaWxhfEF0w6hzfEF0ZXNhfEF0dW5jaXxBdmFzdCF8QXllfEF8YXdlcnxCYWdpfEJhbmp1cnxCZXR8Qmnhur90fEJsaW1leSF8QnVofEJ1dCBhdCB0aGUgZW5kIG9mIHRoZSBkYXkgSSByZWNrb258QnV0IHknYWxsfEJ1dHxCVVR8Q2FsfEPDom5kfENhbmR8Q2FuZG98Q2V8Q3VhbmRvfMSMZXzDkGEgw7BlfMOQYXxEYWRhc3xEYWRhfERhZG9zfERhZG98RGFIIGdodScgYmVqbHUnfGRhbm58RGFubnxEYW5vfERhbnxEYXJ8RGF0IGZpaW5kfERhdGF8RGF0ZSBmaWluZHxEYXRlfERhdGkgZmlpbmR8RGF0aXxEYcWjaSBmaWluZHxEYcibaSBmaWluZHxERU58RGF0b3xEZXxEZW4geW91c2UgZ290dGF8RGVuZ2FufERpYmVyaXxEaXllbGltIGtpfERvbmFkYXxEb25hdHxEb25pdGHEtW98RG98RHVufER1b3RhfMOQdXJofEVlbGRhZGVzfEVmfEXEn2VyIGtpfEVudGFvfEVudMOjb3xFbnTDs258RXxFbnxFbnRvbmNlc3xFcGl8w4lzfEV0YW50IGRvbm7DqWV8RXRhbnQgZG9ubsOpfEV0fMOJdGFudCBkb25uw6llc3zDiXRhbnQgZG9ubsOpZXzDiXRhbnQgZG9ubsOpfEV0YW50IGRvbm7DqWVzfEV0YW50IGRvbm7DqXN8w4l0YW50IGRvbm7DqXN8RmFrYXR8R2FuZ3dheSF8R2R5fEdlZ2ViZW4gc2VpZW58R2VnZWJlbiBzZWl8R2VnZXZlbnxHZWdld2V8Z2h1JyBub2JsdSd8R2l0dHxHaXZlbiB5J2FsbHxHaXZlbnxHaXZldHxHaXZ1bnxIYXxDaG98SSBDQU4gSEFafElufElyfEl0J3MganVzdCB1bmJlbGlldmFibGV8SXxKYXxKZcWbbGl8SmXFvGVsaXxLYWR8S2FkYXxLYWRhcnxLYWl8S2FqfEtkecW+fEtlxI98S2VtdWRpYW58S2V0aWthfEtoaXxLaWVkeXxLb3xLdWlkfEt1aXxLdW58TGFufGxhdGxofExlIHNhIGF8TGV0IGdvIGFuZCBoYXVsfExlfEzDqCBzYSBhfEzDqHxMb2dvfExvcnNxdSc8fExvcnNxdWV8bcOkfE1hYXJ8TWFpc3xNYWrEhWN8TWF8TWFqZHxNYWthfE1hbmF3YXxNYXN8TWVufE1lbmF3YXxNdXR0YXxOYWxpa2F8TmFsaWthbmluZ3xOYW5naW5nfE7DpXJ8TsOkcnxOYXRvfE5oxrBuZ3xOaWlufE5qdWt8TyB6YW1hbnxPY2h8T2d8T2xldGV0YWFufE9uZHxPbmRhfE9yYXp8UGFrfFBlcm98UGVyw7J8UG9kYW5vfFBva2lhxL58UG9rdWR8UG90ZW18UG90b218UHJpdnpldG98UHJ5ZHxRdWFufFF1YW5kfFF1YW5kb3xxYVNESSd8U8OlfFNlZHxTZXxTaWlzfFNpcG96ZSBrZXxTaXBvemUgS2V8U2lwb3plfFNpfMWeaXzImGl8U29pdHxTdGVsfFRhZGF8VGFkfFRha3JhdHxUYWt8VGFwaXxUZXJ8VGV0YXBpfFRoYSB0aGV8VGhhfFRoZW4geSdhbGx8VGhlbnxUaMOsfFRodXJofFRvZGF8VG9vIHJpZ2h0fFVufFVuZHx1Z2Vob2xsfFbDoHx2YWp8VmVuZGFyfFZlfHdhbm58V2FubmVlcnxXRU58V2VubnxXaGVuIHknYWxsfFdoZW58V3RlZHl8V3VufFkna25vd3xZZWFoIG5haHxZbmF8WW91c2Uga25vdyBsaWtlIHdoZW58WW91c2Uga25vdyB3aGVuIHlvdXNlIGdvdHxZfFphIHByZWRwb2tsYWR1fFphIHDFmWVkcG9rbGFkdXxaYWRhbnxaYWRhbml8WmFkYW5vfFphZGF0ZXxaYWRhdG98WmFrxYJhZGFqxIVjfFphcmFkaXxaYXRhdGl8w55hIMO+ZXzDnmF8w57DoXzDnmVnYXJ8w551cmh8zpHOu867zqx8zpTOtc60zr/OvM6tzr3Ov8+FfM6azrHOuXzOjM+EzrHOvXzOpM+Mz4TOtXzQkCDRgtCw0LrQvtC2fNCQ0LPQsNGAfNCQ0LvQtXzQkNC70Lh80JDQvNC80L580JB805jQs9OZ0YB805jQudGC0LjQunzTmNC80LzQsHzQkdC40YDQvtC6fNCS0LB80JLTmXzQlNCw0LTQtdC90L580JTQsNC90L580JTQvtC/0YPRgdGC0LjQvHzQldGB0LvQuHzQl9Cw0LTQsNGC0LV80JfQsNC00LDRgtC4fNCX0LDQtNCw0YLQvnzQmHzQhnzQmiDRgtC+0LzRgyDQttC1fNCa0LDQtNCwfNCa0LDQtHzQmtC+0LPQsNGC0L580JrQvtCz0LTQsHzQmtC+0LvQuHzQm9OZ0LrQuNC9fNCb0LXQutC40L180J3TmdGC0LjSl9OZ0LTTmXzQndC10YXQsNC5fNCd0L580J7QvdC00LB80J/RgNC40L/Rg9GB0YLQuNC80L4sINGJ0L580J/RgNC40L/Rg9GB0YLQuNC80L580J/Rg9GB0YLRjHzQotCw0LrQttC1fNCi0LB80KLQvtCz0LTQsHzQotC+0LTRlnzQotC+fNCj0L3QtNCwfNK605nQvHzQr9C60YnQvnzXkNeR15x815DXlteZfNeQ15Z815HXlNeZ16DXqteffNeV15LXnXzXm9eQ16nXqHzYotmG2q/Yp9mHfNin2LDYp9mLfNin2q/YsXzYp9mF2Kd82KfZiNixfNio2Kcg2YHYsdi2fNio2KfZhNmB2LHYtnzYqNmB2LHYtnzZvtq+2LF82KrYqHzYq9mFfNis2Kh82LnZhtiv2YXYp3zZgdix2LYg2qnbjNinfNmE2YPZhnzZhNuM2qnZhnzZhdiq2Yl82YfZhtqv2KfZhduMfNmIfOCkheCkl+CksHzgpJTgpLB84KSV4KSm4KS+fOCkleCkv+CkqOCljeCkpOClgXzgpJrgpYLgpILgpJXgpL984KSc4KSsfOCkpOCkpeCkvnzgpKTgpKbgpL584KSk4KSsfOCkquCksOCkqOCljeCkpOClgXzgpKrgpLB84KSv4KSm4KS/fOCoheCopOCph3zgqJzgqKbgqYvgqIJ84Kic4Ki/4Ki14KmH4KiCIOColeCov3zgqJzgqYfgqJXgqLB84Kik4KimfOCoquCosHzgsIXgsKrgsY3gsKrgsYHgsKHgsYF84LCIIOCwquCwsOCwv+CwuOCxjeCwpeCwv+CwpOCwv+CwsuCxi3zgsJXgsL7gsKjgsL984LCa4LGG4LCq4LGN4LCq4LCs4LCh4LC/4LCo4LCm4LC/fOCwruCwsOCwv+Cwr+CxgXzgsobgsqbgsrDgs4Z84LKo4LKC4LKk4LKwfOCyqOCyv+CzleCyoeCyv+Cypnzgsq7gsqTgs43gsqTgs4F84LK44LON4LKl4LK/4LKk4LK/4LKv4LKo4LON4LKo4LOBfOC4geC4s+C4q+C4meC4lOC5g+C4q+C5iXzguJTguLHguIfguJnguLHguYnguJl84LmB4LiV4LmIfOC5gOC4oeC4t+C5iOC4rXzguYHguKXguLB86re465+s66m0PHzqt7jrpqzqs6A8fOuLqDx866eM7JW9PHzrp4zsnbw8fOuovOyggDx87KGw6rG0PHztlZjsp4Drp4w8fOOBi+OBpDx844GX44GL44GXPHzjgZ/jgaDjgZc8fOOBquOCieOBsDx844KC44GXPHzkuKbkuJQ8fOS9huOBlzx85L2G5pivPHzlgYflpoI8fOWBh+Wumjx85YGH6KitPHzlgYforr48fOWJjeaPkDx85ZCM5pe2PHzlkIzmmYI8fOW5tuS4lDx85b2TPHznlbY8fOiAjOS4lDx86YKj5LmIPHzpgqPpurw8KSg/PVsgXHRdKS9tLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoifCcoPzpcXC58W14nXFxcclxuXSkqJy8saW5zaWRlOntvdXRsaW5lOntwYXR0ZXJuOi88W14+XSs+LyxhbGlhczoidmFyaWFibGUifX19LG91dGxpbmU6e3BhdHRlcm46LzxbXj5dKz4vLGFsaWFzOiJ2YXJpYWJsZSJ9fX0pKHQpfXJldHVybiBOY312YXIgQ2MsZFQ7ZnVuY3Rpb24gakgoKXtpZihkVClyZXR1cm4gQ2M7ZFQ9MSxDYz1lLGUuZGlzcGxheU5hbWU9ImdpdCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZ2l0PXtjb21tZW50Oi9eIy4qL20sZGVsZXRlZDovXlst4oCTXS4qL20saW5zZXJ0ZWQ6L15cKy4qL20sc3RyaW5nOi8oInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxjb21tYW5kOntwYXR0ZXJuOi9eLipcJCBnaXQgLiokL20saW5zaWRlOntwYXJhbWV0ZXI6L1xzLS0/XHcrL319LGNvb3JkOi9eQEAuKkBAJC9tLCJjb21taXQtc2hhMSI6L15jb21taXQgXHd7NDB9JC9tfX1yZXR1cm4gQ2N9dmFyIE9jLHBUO2Z1bmN0aW9uIEdIKCl7aWYocFQpcmV0dXJuIE9jO3BUPTE7dmFyIGU9RXIoKTtPYz10LHQuZGlzcGxheU5hbWU9Imdsc2wiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksbi5sYW5ndWFnZXMuZ2xzbD1uLmxhbmd1YWdlcy5leHRlbmQoImMiLHtrZXl3b3JkOi9cYig/OmFjdGl2ZXxhc218YXRvbWljX3VpbnR8YXR0cmlidXRlfFtpYmR1XT92ZWNbMjM0XXxib29sfGJyZWFrfGJ1ZmZlcnxjYXNlfGNhc3R8Y2VudHJvaWR8Y2xhc3N8Y29oZXJlbnR8Y29tbW9ufGNvbnN0fGNvbnRpbnVlfGQ/bWF0WzIzNF0oPzp4WzIzNF0pP3xkZWZhdWx0fGRpc2NhcmR8ZG98ZG91YmxlfGVsc2V8ZW51bXxleHRlcm58ZXh0ZXJuYWx8ZmFsc2V8ZmlsdGVyfGZpeGVkfGZsYXR8ZmxvYXR8Zm9yfGZ2ZWNbMjM0XXxnb3RvfGhhbGZ8aGlnaHB8aHZlY1syMzRdfFtpdV0/c2FtcGxlcjJETVMoPzpBcnJheSk/fFtpdV0/c2FtcGxlcjJEUmVjdHxbaXVdP3NhbXBsZXJCdWZmZXJ8W2l1XT9zYW1wbGVyQ3ViZXxbaXVdP3NhbXBsZXJDdWJlQXJyYXl8W2l1XT9zYW1wbGVyWzEyM11EfFtpdV0/c2FtcGxlclsxMl1EQXJyYXl8W2l1XT9pbWFnZTJETVMoPzpBcnJheSk/fFtpdV0/aW1hZ2UyRFJlY3R8W2l1XT9pbWFnZUJ1ZmZlcnxbaXVdP2ltYWdlQ3ViZXxbaXVdP2ltYWdlQ3ViZUFycmF5fFtpdV0/aW1hZ2VbMTIzXUR8W2l1XT9pbWFnZVsxMl1EQXJyYXl8aWZ8aW58aW5saW5lfGlub3V0fGlucHV0fGludHxpbnRlcmZhY2V8aW52YXJpYW50fGxheW91dHxsb25nfGxvd3B8bWVkaXVtcHxuYW1lc3BhY2V8bm9pbmxpbmV8bm9wZXJzcGVjdGl2ZXxvdXR8b3V0cHV0fHBhcnRpdGlvbnxwYXRjaHxwcmVjaXNlfHByZWNpc2lvbnxwdWJsaWN8cmVhZG9ubHl8cmVzb3VyY2V8cmVzdHJpY3R8cmV0dXJufHNhbXBsZXxzYW1wbGVyWzEyXURBcnJheVNoYWRvd3xzYW1wbGVyWzEyXURTaGFkb3d8c2FtcGxlcjJEUmVjdFNoYWRvd3xzYW1wbGVyM0RSZWN0fHNhbXBsZXJDdWJlQXJyYXlTaGFkb3d8c2FtcGxlckN1YmVTaGFkb3d8c2hhcmVkfHNob3J0fHNpemVvZnxzbW9vdGh8c3RhdGljfHN0cnVjdHxzdWJyb3V0aW5lfHN1cGVycHxzd2l0Y2h8dGVtcGxhdGV8dGhpc3x0cnVlfHR5cGVkZWZ8dWludHx1bmlmb3JtfHVuaW9ufHVuc2lnbmVkfHVzaW5nfHZhcnlpbmd8dm9pZHx2b2xhdGlsZXx3aGlsZXx3cml0ZW9ubHkpXGIvfSl9cmV0dXJuIE9jfXZhciBMYyxmVDtmdW5jdGlvbiBxSCgpe2lmKGZUKXJldHVybiBMYztmVD0xLExjPWUsZS5kaXNwbGF5TmFtZT0iZ21sIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5nYW1lbWFrZXJsYW5ndWFnZT10Lmxhbmd1YWdlcy5nbWw9dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2tleXdvcmQ6L1xiKD86YnJlYWt8Y2FzZXxjb250aW51ZXxkZWZhdWx0fGRvfGVsc2V8ZW51bXxleGl0fGZvcnxnbG9iYWx2YXJ8aWZ8cmVwZWF0fHJldHVybnxzd2l0Y2h8dW50aWx8dmFyfHdoaWxlKVxiLyxudW1iZXI6Lyg/OlxiMHhbXGRhLWZdK3woPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplWystXT9cZCspPylbdWxmXXswLDR9L2ksb3BlcmF0b3I6Ly0tfFwrXCt8Wy0rJS89XT0/fCE9fFwqXCo/PT98PFs8PT5dP3w+Wz0+XT98JiY/fFxeXF4/fFx8XHw/fH58XGIoPzphbmR8YXR8bm90fG9yfHdpdGh8eG9yKVxiLyxjb25zdGFudDovXGIoPzpHTV9idWlsZF9kYXRlfEdNX3ZlcnNpb258YWN0aW9uXyg/OmNvbnRpbnVlfHJlc3RhcnR8cmV2ZXJzZXxzdG9wKXxhbGx8Z2FtZXNwZWVkXyg/OmZwc3xtaWNyb3NlY29uZHMpfGdsb2JhbHxsb2NhbHxub29uZXxvdGhlcnxwaXxwb2ludGVyXyg/OmludmFsaWR8bnVsbCl8c2VsZnx0aW1lem9uZV8oPzpsb2NhbHx1dGMpfHVuZGVmaW5lZHxldl8oPzpjcmVhdGV8ZGVzdHJveXxzdGVwfGFsYXJtfGtleWJvYXJkfG1vdXNlfGNvbGxpc2lvbnxvdGhlcnxkcmF3fGRyYXdfKD86YmVnaW58ZW5kfHBvc3R8cHJlKXxrZXlwcmVzc3xrZXlyZWxlYXNlfHRyaWdnZXJ8KD86bGVmdHxtaWRkbGV8bm98cmlnaHQpX2J1dHRvbnwoPzpsZWZ0fG1pZGRsZXxyaWdodClfcHJlc3N8KD86bGVmdHxtaWRkbGV8cmlnaHQpX3JlbGVhc2V8bW91c2VfKD86ZW50ZXJ8bGVhdmV8d2hlZWxfZG93bnx3aGVlbF91cCl8Z2xvYmFsXyg/OmxlZnR8bWlkZGxlfHJpZ2h0KV9idXR0b258Z2xvYmFsXyg/OmxlZnR8bWlkZGxlfHJpZ2h0KV9wcmVzc3xnbG9iYWxfKD86bGVmdHxtaWRkbGV8cmlnaHQpX3JlbGVhc2V8am95c3RpY2soPzoxfDIpXyg/OmJ1dHRvbjF8YnV0dG9uMnxidXR0b24zfGJ1dHRvbjR8YnV0dG9uNXxidXR0b242fGJ1dHRvbjd8YnV0dG9uOHxkb3dufGxlZnR8cmlnaHR8dXApfG91dHNpZGV8Ym91bmRhcnl8Z2FtZV9zdGFydHxnYW1lX2VuZHxyb29tX3N0YXJ0fHJvb21fZW5kfG5vX21vcmVfbGl2ZXN8YW5pbWF0aW9uX2VuZHxlbmRfb2ZfcGF0aHxub19tb3JlX2hlYWx0aHx1c2VyXGR8Z3VpfGd1aV9iZWdpbnxndWlfZW5kfHN0ZXBfKD86YmVnaW58ZW5kfG5vcm1hbCkpfHZrXyg/OmFsdHxhbnlrZXl8YmFja3NwYWNlfGNvbnRyb2x8ZGVsZXRlfGRvd258ZW5kfGVudGVyfGVzY2FwZXxob21lfGluc2VydHxsZWZ0fG5va2V5fHBhZ2Vkb3dufHBhZ2V1cHxwYXVzZXxwcmludHNjcmVlbnxyZXR1cm58cmlnaHR8c2hpZnR8c3BhY2V8dGFifHVwfGZcZHxudW1wYWRcZHxhZGR8ZGVjaW1hbHxkaXZpZGV8bGFsdHxsY29udHJvbHxsc2hpZnR8bXVsdGlwbHl8cmFsdHxyY29udHJvbHxyc2hpZnR8c3VidHJhY3QpfGFjaGlldmVtZW50Xyg/OmZpbHRlcl8oPzphbGxfcGxheWVyc3xmYXZvcml0ZXNfb25seXxmcmllbmRzX29ubHkpfGZyaWVuZHNfaW5mb3xpbmZvfGxlYWRlcmJvYXJkX2luZm98b3VyX2luZm98cGljX2xvYWRlZHxzaG93Xyg/OmFjaGlldmVtZW50fGJhbmt8ZnJpZW5kX3BpY2tlcnxsZWFkZXJib2FyZHxwcm9maWxlfHB1cmNoYXNlX3Byb21wdHx1aSl8dHlwZV9jaGFsbGVuZ2V8dHlwZV9zY29yZV9jaGFsbGVuZ2UpfGFzc2V0Xyg/OmZvbnR8b2JqZWN0fHBhdGh8cm9vbXxzY3JpcHR8c2hhZGVyfHNvdW5kfHNwcml0ZXx0aWxlc3x0aW1lbGluZXx1bmtub3duKXxhdWRpb18oPzozZHxmYWxsb2ZmXyg/OmV4cG9uZW50X2Rpc3RhbmNlfGV4cG9uZW50X2Rpc3RhbmNlX2NsYW1wZWR8aW52ZXJzZV9kaXN0YW5jZXxpbnZlcnNlX2Rpc3RhbmNlX2NsYW1wZWR8bGluZWFyX2Rpc3RhbmNlfGxpbmVhcl9kaXN0YW5jZV9jbGFtcGVkfG5vbmUpfG1vbm98bmV3X3N5c3RlbXxvbGRfc3lzdGVtfHN0ZXJlbyl8Ym1fKD86YWRkfGNvbXBsZXh8ZGVzdF9hbHBoYXxkZXN0X2NvbG9yfGRlc3RfY29sb3VyfGludl9kZXN0X2FscGhhfGludl9kZXN0X2NvbG9yfGludl9kZXN0X2NvbG91cnxpbnZfc3JjX2FscGhhfGludl9zcmNfY29sb3J8aW52X3NyY19jb2xvdXJ8bWF4fG5vcm1hbHxvbmV8c3JjX2FscGhhfHNyY19hbHBoYV9zYXR8c3JjX2NvbG9yfHNyY19jb2xvdXJ8c3VidHJhY3R8emVybyl8YnJvd3Nlcl8oPzpjaHJvbWV8ZmlyZWZveHxpZXxpZV9tb2JpbGV8bm90X2FfYnJvd3NlcnxvcGVyYXxzYWZhcml8c2FmYXJpX21vYmlsZXx0aXplbnx1bmtub3dufHdpbmRvd3Nfc3RvcmUpfGJ1ZmZlcl8oPzpib29sfGYxNnxmMzJ8ZjY0fGZhc3R8Zml4ZWR8Z2VuZXJhbGVycm9yfGdyb3d8aW52YWxpZHR5cGV8bmV0d29ya3xvdXRvZmJvdW5kc3xvdXRvZnNwYWNlfHMxNnxzMzJ8czh8c2Vla19lbmR8c2Vla19yZWxhdGl2ZXxzZWVrX3N0YXJ0fHN0cmluZ3x0ZXh0fHUxNnx1MzJ8dTY0fHU4fHZidWZmZXJ8d3JhcCl8Y18oPzphcXVhfGJsYWNrfGJsdWV8ZGtncmF5fGZ1Y2hzaWF8Z3JheXxncmVlbnxsaW1lfGx0Z3JheXxtYXJvb258bmF2eXxvbGl2ZXxvcmFuZ2V8cHVycGxlfHJlZHxzaWx2ZXJ8dGVhbHx3aGl0ZXx5ZWxsb3cpfGNtcGZ1bmNfKD86YWx3YXlzfGVxdWFsfGdyZWF0ZXJ8Z3JlYXRlcmVxdWFsfGxlc3N8bGVzc2VxdWFsfG5ldmVyfG5vdGVxdWFsKXxjcl8oPzphcHBzdGFydHxhcnJvd3xiZWFtfGNyb3NzfGRlZmF1bHR8ZHJhZ3xoYW5kcG9pbnR8aG91cmdsYXNzfG5vbmV8c2l6ZV9hbGx8c2l6ZV9uZXN3fHNpemVfbnN8c2l6ZV9ud3NlfHNpemVfd2V8dXBhcnJvdyl8Y3VsbF8oPzpjbG9ja3dpc2V8Y291bnRlcmNsb2Nrd2lzZXxub2N1bGxpbmcpfGRldmljZV8oPzplbXVsYXRvcnx0YWJsZXQpfGRldmljZV9pb3NfKD86aXBhZHxpcGFkX3JldGluYXxpcGhvbmV8aXBob25lNXxpcGhvbmU2fGlwaG9uZTZwbHVzfGlwaG9uZV9yZXRpbmF8dW5rbm93bil8ZGlzcGxheV8oPzpsYW5kc2NhcGV8bGFuZHNjYXBlX2ZsaXBwZWR8cG9ydHJhaXR8cG9ydHJhaXRfZmxpcHBlZCl8ZGxsXyg/OmNkZWNsfGNkZWx8c3RkY2FsbCl8ZHNfdHlwZV8oPzpncmlkfGxpc3R8bWFwfHByaW9yaXR5fHF1ZXVlfHN0YWNrKXxlZl8oPzpjbG91ZHxlbGxpcHNlfGV4cGxvc2lvbnxmaXJld29ya3xmbGFyZXxyYWlufHJpbmd8c21va2V8c21va2V1cHxzbm93fHNwYXJrfHN0YXIpfGZhXyg/OmFyY2hpdmV8Ym90dG9tfGNlbnRlcnxkaXJlY3Rvcnl8aGlkZGVufGxlZnR8bWlkZGxlfHJlYWRvbmx5fHJpZ2h0fHN5c2ZpbGV8dG9wfHZvbHVtZWlkKXxmYl9sb2dpbl8oPzpkZWZhdWx0fGZhbGxiYWNrX3RvX3dlYnZpZXd8Zm9yY2luZ19zYWZhcml8Zm9yY2luZ193ZWJ2aWV3fG5vX2ZhbGxiYWNrX3RvX3dlYnZpZXd8dXNlX3N5c3RlbV9hY2NvdW50KXxpYXBfKD86YXZhaWxhYmxlfGNhbmNlbGVkfGV2X2NvbnN1bWV8ZXZfcHJvZHVjdHxldl9wdXJjaGFzZXxldl9yZXN0b3JlfGV2X3N0b3JlbG9hZHxmYWlsZWR8cHVyY2hhc2VkfHJlZnVuZGVkfHN0YXR1c19hdmFpbGFibGV8c3RhdHVzX2xvYWRpbmd8c3RhdHVzX3Byb2Nlc3Npbmd8c3RhdHVzX3Jlc3RvcmluZ3xzdGF0dXNfdW5hdmFpbGFibGV8c3RhdHVzX3VuaW5pdGlhbGlzZWR8c3RvcmVsb2FkX2ZhaWxlZHxzdG9yZWxvYWRfb2t8dW5hdmFpbGFibGUpfGxlYWRlcmJvYXJkX3R5cGVfKD86bnVtYmVyfHRpbWVfbWluc19zZWNzKXxsaWdodHR5cGVfKD86ZGlyfHBvaW50KXxtYXRyaXhfKD86cHJvamVjdGlvbnx2aWV3fHdvcmxkKXxtYl8oPzphbnl8bGVmdHxtaWRkbGV8bm9uZXxyaWdodCl8bmV0d29ya18oPzpjb25maWdfKD86Y29ubmVjdF90aW1lb3V0fGRpc2FibGVfcmVsaWFibGVfdWRwfGVuYWJsZV9yZWxpYWJsZV91ZHB8dXNlX25vbl9ibG9ja2luZ19zb2NrZXQpfHNvY2tldF8oPzpibHVldG9vdGh8dGNwfHVkcCl8dHlwZV8oPzpjb25uZWN0fGRhdGF8ZGlzY29ubmVjdHxub25fYmxvY2tpbmdfY29ubmVjdCkpfG9mX2NoYWxsZW5nZV8oPzpsb3NlfHRpZXx3aW4pfG9zXyg/OmFuZHJvaWR8aW9zfGxpbnV4fG1hY29zeHxwczN8cHM0fHBzdml0YXx1bmtub3dufHV3cHx3aW4zMnx3aW44bmF0aXZlfHdpbmRvd3N8d2lucGhvbmV8eGJveG9uZSl8cGh5X2RlYnVnX3JlbmRlcl8oPzphYWJifGNvbGxpc2lvbl9wYWlyc3xjb21zfGNvcmVfc2hhcGVzfGpvaW50c3xvYmJ8c2hhcGVzKXxwaHlfam9pbnRfKD86YW5jaG9yXzFfeHxhbmNob3JfMV95fGFuY2hvcl8yX3h8YW5jaG9yXzJfeXxhbmdsZXxhbmdsZV9saW1pdHN8ZGFtcGluZ19yYXRpb3xmcmVxdWVuY3l8bGVuZ3RoXzF8bGVuZ3RoXzJ8bG93ZXJfYW5nbGVfbGltaXR8bWF4X2ZvcmNlfG1heF9sZW5ndGh8bWF4X21vdG9yX2ZvcmNlfG1heF9tb3Rvcl90b3JxdWV8bWF4X3RvcnF1ZXxtb3Rvcl9mb3JjZXxtb3Rvcl9zcGVlZHxtb3Rvcl90b3JxdWV8cmVhY3Rpb25fZm9yY2VfeHxyZWFjdGlvbl9mb3JjZV95fHJlYWN0aW9uX3RvcnF1ZXxzcGVlZHx0cmFuc2xhdGlvbnx1cHBlcl9hbmdsZV9saW1pdCl8cGh5X3BhcnRpY2xlX2RhdGFfZmxhZ18oPzpjYXRlZ29yeXxjb2xvcnxjb2xvdXJ8cG9zaXRpb258dHlwZWZsYWdzfHZlbG9jaXR5KXxwaHlfcGFydGljbGVfZmxhZ18oPzpjb2xvcm1peGluZ3xjb2xvdXJtaXhpbmd8ZWxhc3RpY3xwb3dkZXJ8c3ByaW5nfHRlbnNpbGV8dmlzY291c3x3YWxsfHdhdGVyfHpvbWJpZSl8cGh5X3BhcnRpY2xlX2dyb3VwX2ZsYWdfKD86cmlnaWR8c29saWQpfHByXyg/OmxpbmVsaXN0fGxpbmVzdHJpcHxwb2ludGxpc3R8dHJpYW5nbGVmYW58dHJpYW5nbGVsaXN0fHRyaWFuZ2xlc3RyaXApfHBzXyg/OmRpc3RyfHNoYXBlKV8oPzpkaWFtb25kfGVsbGlwc2V8Z2F1c3NpYW58aW52Z2F1c3NpYW58bGluZXxsaW5lYXJ8cmVjdGFuZ2xlKXxwdF9zaGFwZV8oPzpjaXJjbGV8Y2xvdWR8ZGlza3xleHBsb3Npb258ZmxhcmV8bGluZXxwaXhlbHxyaW5nfHNtb2tlfHNub3d8c3Bhcmt8c3BoZXJlfHNxdWFyZXxzdGFyKXx0eV8oPzpyZWFsfHN0cmluZyl8Z3BfKD86ZmFjZVxkfGF4aXNsaHxheGlzbHZ8YXhpc3JofGF4aXNydnxwYWRkfHBhZGx8cGFkcnxwYWR1fHNlbGVjdHxzaG91bGRlcmx8c2hvdWxkZXJsYnxzaG91bGRlcnJ8c2hvdWxkZXJyYnxzdGFydHxzdGlja2x8c3RpY2tyKXxsYl9kaXNwXyg/Om5vbmV8bnVtZXJpY3x0aW1lX21zfHRpbWVfc2VjKXxsYl9zb3J0Xyg/OmFzY2VuZGluZ3xkZXNjZW5kaW5nfG5vbmUpfG92Xyg/OmFjaGlldmVtZW50c3xjb21tdW5pdHl8ZnJpZW5kc3xnYW1lZ3JvdXB8cGxheWVyc3xzZXR0aW5ncyl8dWdjXyg/OmZpbGV0eXBlXyg/OmNvbW11bml0eXxtaWNyb3RyYW5zKXxsaXN0Xyg/OkZhdm9yaXRlZHxGb2xsb3dlZHxQdWJsaXNoZWR8U3Vic2NyaWJlZHxVc2VkT3JQbGF5ZWR8Vm90ZWREb3dufFZvdGVkT258Vm90ZWRVcHxXaWxsVm90ZUxhdGVyKXxtYXRjaF8oPzpBbGxHdWlkZXN8QXJ0d29ya3xDb2xsZWN0aW9uc3xDb250cm9sbGVyQmluZGluZ3N8SW50ZWdyYXRlZEd1aWRlc3xJdGVtc3xJdGVtc19NdHh8SXRlbXNfUmVhZHlUb1VzZXxTY3JlZW5zaG90c3xVc2FibGVJbkdhbWV8VmlkZW9zfFdlYkd1aWRlcyl8cXVlcnlfKD86QWNjZXB0ZWRGb3JHYW1lUmFua2VkQnlBY2NlcHRhbmNlRGF0ZXxDcmVhdGVkQnlGcmllbmRzUmFua2VkQnlQdWJsaWNhdGlvbkRhdGV8RmF2b3JpdGVkQnlGcmllbmRzUmFua2VkQnlQdWJsaWNhdGlvbkRhdGV8Tm90WWV0UmF0ZWQpfHF1ZXJ5X1JhbmtlZEJ5KD86TnVtVGltZXNSZXBvcnRlZHxQdWJsaWNhdGlvbkRhdGV8VGV4dFNlYXJjaHxUb3RhbFZvdGVzQXNjfFRyZW5kfFZvdGV8Vm90ZXNVcCl8cmVzdWx0X3N1Y2Nlc3N8c29ydG9yZGVyX0NyZWF0aW9uT3JkZXIoPzpBc2N8RGVzYyl8c29ydG9yZGVyXyg/OkZvck1vZGVyYXRpb258TGFzdFVwZGF0ZWREZXNjfFN1YnNjcmlwdGlvbkRhdGVEZXNjfFRpdGxlQXNjfFZvdGVTY29yZURlc2MpfHZpc2liaWxpdHlfKD86ZnJpZW5kc19vbmx5fHByaXZhdGV8cHVibGljKSl8dmVydGV4X3VzYWdlXyg/OmJpbm9ybWFsfGJsZW5kaW5kaWNlc3xibGVuZHdlaWdodHxjb2xvcnxjb2xvdXJ8ZGVwdGh8Zm9nfG5vcm1hbHxwb3NpdGlvbnxwc2l6ZXxzYW1wbGV8dGFuZ2VudHx0ZXhjb29yZHx0ZXh0Y29vcmQpfHZlcnRleF90eXBlXyg/OmZsb2F0XGR8Y29sb3J8Y29sb3VyfHVieXRlNCl8aW5wdXRfdHlwZXxsYXllcmVsZW1lbnR0eXBlXyg/OmJhY2tncm91bmR8aW5zdGFuY2V8b2xkdGlsZW1hcHxwYXJ0aWNsZXN5c3RlbXxzcHJpdGV8dGlsZXx0aWxlbWFwfHVuZGVmaW5lZCl8c2VfKD86Y2hvcnVzfGNvbXByZXNzb3J8ZWNob3xlcXVhbGl6ZXJ8ZmxhbmdlcnxnYXJnbGV8bm9uZXxyZXZlcmIpfHRleHRfdHlwZXx0aWxlXyg/OmZsaXB8aW5kZXhfbWFza3xtaXJyb3J8cm90YXRlKXwoPzpvYmp8cm18c2NyfHNwcilcdyspXGIvLHZhcmlhYmxlOi9cYig/OmFsYXJtfGFwcGxpY2F0aW9uX3N1cmZhY2V8YXN5bmNfbG9hZHxiYWNrZ3JvdW5kXyg/OmFscGhhfGJsZW5kfGNvbG9yfGNvbG91cnxmb3JlZ3JvdW5kfGhlaWdodHxoc3BlZWR8aHRpbGVkfGluZGV4fHNob3djb2xvcnxzaG93Y29sb3VyfHZpc2libGV8dnNwZWVkfHZ0aWxlZHx3aWR0aHx4fHhzY2FsZXx5fHlzY2FsZSl8YmJveF8oPzpib3R0b218bGVmdHxyaWdodHx0b3ApfGJyb3dzZXJfKD86aGVpZ2h0fHdpZHRoKXxjYXB0aW9uXyg/OmhlYWx0aHxsaXZlc3xzY29yZSl8Y3VycmVudF8oPzpkYXl8aG91cnxtaW51dGV8bW9udGh8c2Vjb25kfHRpbWV8d2Vla2RheXx5ZWFyKXxjdXJzb3Jfc3ByaXRlfGRlYnVnX21vZGV8ZGVsdGFfdGltZXxkaXJlY3Rpb258ZGlzcGxheV9hYXxlcnJvcl8oPzpsYXN0fG9jY3VycmVkKXxldmVudF8oPzphY3Rpb258bnVtYmVyfG9iamVjdHx0eXBlKXxmcHN8ZnBzX3JlYWx8ZnJpY3Rpb258Z2FtZV8oPzpkaXNwbGF5fHByb2plY3R8c2F2ZSlfKD86aWR8bmFtZSl8Z2FtZW1ha2VyXyg/OnByb3xyZWdpc3RlcmVkfHZlcnNpb24pfGdyYXZpdHl8Z3Jhdml0eV9kaXJlY3Rpb258KD86aHx2KXNwZWVkfGhlYWx0aHxpYXBfZGF0YXxpZHxpbWFnZV8oPzphbHBoYXxhbmdsZXxibGVuZHxkZXB0aHxpbmRleHxudW1iZXJ8c3BlZWR8eHNjYWxlfHlzY2FsZSl8aW5zdGFuY2VfKD86Y291bnR8aWQpfGtleWJvYXJkXyg/OmtleXxsYXN0Y2hhcnxsYXN0a2V5fHN0cmluZyl8bGF5ZXJ8bGl2ZXN8bWFza19pbmRleHxtb3VzZV8oPzpidXR0b258bGFzdGJ1dHRvbnx4fHkpfG9iamVjdF9pbmRleHxvc18oPzpicm93c2VyfGRldmljZXx0eXBlfHZlcnNpb24pfHBhdGhfKD86ZW5kYWN0aW9ufGluZGV4fG9yaWVudGF0aW9ufHBvc2l0aW9ufHBvc2l0aW9ucHJldmlvdXN8c2NhbGV8c3BlZWQpfHBlcnNpc3RlbnR8cGh5Xyg/OnJvdGF0aW9ufCg/OmNvbF9ub3JtYWx8Y29sbGlzaW9ufGNvbXxsaW5lYXJfdmVsb2NpdHl8cG9zaXRpb258c3BlZWQpXyg/Onh8eSl8YW5ndWxhcl8oPzpkYW1waW5nfHZlbG9jaXR5KXxwb3NpdGlvbl8oPzp4fHkpcHJldmlvdXN8c3BlZWR8bGluZWFyX2RhbXBpbmd8YnVsbGV0fGZpeGVkX3JvdGF0aW9ufGFjdGl2ZXxtYXNzfGluZXJ0aWF8ZHluYW1pY3xraW5lbWF0aWN8c2xlZXBpbmd8Y29sbGlzaW9uX3BvaW50cyl8cG9pbnRlcl8oPzppbnZhbGlkfG51bGwpfHJvb218cm9vbV8oPzpjYXB0aW9ufGZpcnN0fGhlaWdodHxsYXN0fHBlcnNpc3RlbnR8c3BlZWR8d2lkdGgpfHNjb3JlfHNlY3VyZV9tb2RlfHNob3dfKD86aGVhbHRofGxpdmVzfHNjb3JlKXxzb2xpZHxzcGVlZHxzcHJpdGVfKD86aGVpZ2h0fGluZGV4fHdpZHRofHhvZmZzZXR8eW9mZnNldCl8dGVtcF9kaXJlY3Rvcnl8dGltZWxpbmVfKD86aW5kZXh8bG9vcHxwb3NpdGlvbnxydW5uaW5nfHNwZWVkKXx0cmFuc2l0aW9uXyg/OmNvbG9yfGtpbmR8c3RlcHMpfHVuZGVmaW5lZHx2aWV3Xyg/OmFuZ2xlfGN1cnJlbnR8ZW5hYmxlZHwoPzpofHYpKD86Ym9yZGVyfHNwZWVkKXwoPzpofHd8eHx5KXBvcnR8KD86aHx3fHh8eSl2aWV3fG9iamVjdHxzdXJmYWNlX2lkfHZpc2libGUpfHZpc2libGV8d2ViZ2xfZW5hYmxlZHx3b3JraW5nX2RpcmVjdG9yeXwoPzp4fHkpKD86cHJldmlvdXN8c3RhcnQpfHh8eXxhcmd1bWVudCg/Ol9yZWxpdGl2ZXxfY291bnR8XGQpfGFyZ3VtZW50fGdsb2JhbHxsb2NhbHxvdGhlcnxzZWxmKVxiL30pfXJldHVybiBMY312YXIgRGMsbVQ7ZnVuY3Rpb24gVkgoKXtpZihtVClyZXR1cm4gRGM7bVQ9MSxEYz1lLGUuZGlzcGxheU5hbWU9ImduIixlLmFsaWFzZXM9WyJnbmkiXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmduPXtjb21tZW50OntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sInN0cmluZy1saXRlcmFsIjp7cGF0dGVybjovKF58W15cXCJdKSIoPzpbXlxyXG4iXFxdfFxcLikqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKVwkKD86XHtbXHNcU10qP1x9fFthLXpBLVpfXVx3KnwweFthLWZBLUYwLTldezJ9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6e251bWJlcjovXlwkMHhbXHNcU117Mn0kLyx2YXJpYWJsZTovXlwkXHcrJC8sImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXCRce3xcfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LGV4cHJlc3Npb246e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpudWxsfX19LHN0cmluZzovW1xzXFNdKy99fSxrZXl3b3JkOi9cYig/OmVsc2V8aWYpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sImJ1aWx0aW4tZnVuY3Rpb24iOntwYXR0ZXJuOi9cYig/OmFzc2VydHxkZWZpbmVkfGZvcmVhY2h8aW1wb3J0fHBvb2x8cHJpbnR8dGVtcGxhdGV8dG9vbHx0b29sY2hhaW4pKD89XHMqXCgpL2ksYWxpYXM6ImtleXdvcmQifSxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypcKCkvaSxjb25zdGFudDovXGIoPzpjdXJyZW50X2NwdXxjdXJyZW50X29zfGN1cnJlbnRfdG9vbGNoYWlufGRlZmF1bHRfdG9vbGNoYWlufGhvc3RfY3B1fGhvc3Rfb3N8cm9vdF9idWlsZF9kaXJ8cm9vdF9nZW5fZGlyfHJvb3Rfb3V0X2Rpcnx0YXJnZXRfY3B1fHRhcmdldF9nZW5fZGlyfHRhcmdldF9vc3x0YXJnZXRfb3V0X2RpcilcYi8sbnVtYmVyOi8tP1xiXGQrXGIvLG9wZXJhdG9yOi9bLSshPTw+XT0/fCYmfFx8XHwvLHB1bmN0dWF0aW9uOi9bKCl7fVtcXSwuXS99LHQubGFuZ3VhZ2VzLmduWyJzdHJpbmctbGl0ZXJhbCJdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5leHByZXNzaW9uLmluc2lkZT10Lmxhbmd1YWdlcy5nbix0Lmxhbmd1YWdlcy5nbmk9dC5sYW5ndWFnZXMuZ259cmV0dXJuIERjfXZhciBNYyxnVDtmdW5jdGlvbiBISCgpe2lmKGdUKXJldHVybiBNYztnVD0xLE1jPWUsZS5kaXNwbGF5TmFtZT0iZ29Nb2R1bGUiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzWyJnby1tb2QiXT10Lmxhbmd1YWdlc1siZ28tbW9kdWxlIl09e2NvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKi8sZ3JlZWR5OiEwfSx2ZXJzaW9uOntwYXR0ZXJuOi8oXnxbXHMoKVtcXSxdKXZcZCtcLlxkK1wuXGQrKD86WystXVstKy5cd10qKT8oPyFbXlxzKClbXF0sXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LCJnby12ZXJzaW9uIjp7cGF0dGVybjovKCg/Ol58XHMpZ29ccyspXGQrKD86XC5cZCspezEsMn0vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LGtleXdvcmQ6e3BhdHRlcm46L14oWyBcdF0qKSg/OmV4Y2x1ZGV8Z298bW9kdWxlfHJlcGxhY2V8cmVxdWlyZXxyZXRyYWN0KVxiL20sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Lz0+LyxwdW5jdHVhdGlvbjovWygpW1xdLF0vfX1yZXR1cm4gTWN9dmFyIFBjLGhUO2Z1bmN0aW9uIFdIKCl7aWYoaFQpcmV0dXJuIFBjO2hUPTEsUGM9ZSxlLmRpc3BsYXlOYW1lPSJnbyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZ289dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovKF58W15cXF0pIig/OlxcLnxbXiJcXFxyXG5dKSoifGBbXmBdKmAvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmJyZWFrfGNhc2V8Y2hhbnxjb25zdHxjb250aW51ZXxkZWZhdWx0fGRlZmVyfGVsc2V8ZmFsbHRocm91Z2h8Zm9yfGZ1bmN8Z28oPzp0byk/fGlmfGltcG9ydHxpbnRlcmZhY2V8bWFwfHBhY2thZ2V8cmFuZ2V8cmV0dXJufHNlbGVjdHxzdHJ1Y3R8c3dpdGNofHR5cGV8dmFyKVxiLyxib29sZWFuOi9cYig/Ol98ZmFsc2V8aW90YXxuaWx8dHJ1ZSlcYi8sbnVtYmVyOlsvXGIwKD86YlswMV9dK3xvWzAtN19dKylpP1xiL2ksL1xiMHgoPzpbYS1mXGRfXSsoPzpcLlthLWZcZF9dKik/fFwuW2EtZlxkX10rKSg/OnBbKy1dP1xkKyg/Ol9cZCspKik/aT8oPyFcdykvaSwvKD86XGJcZFtcZF9dKig/OlwuW1xkX10qKT98XEJcLlxkW1xkX10qKSg/OmVbKy1dP1tcZF9dKyk/aT8oPyFcdykvaV0sb3BlcmF0b3I6L1sqXC8lXiE9XT0/fFwrWz0rXT98LVs9LV0/fFx8Wz18XT98Jig/Oj18JnxcXj0/KT98Pig/Oj49P3w9KT98PCg/Ojw9P3w9fC0pP3w6PXxcLlwuXC4vLGJ1aWx0aW46L1xiKD86YXBwZW5kfGJvb2x8Ynl0ZXxjYXB8Y2xvc2V8Y29tcGxleHxjb21wbGV4KD86NjR8MTI4KXxjb3B5fGRlbGV0ZXxlcnJvcnxmbG9hdCg/OjMyfDY0KXx1P2ludCg/Ojh8MTZ8MzJ8NjQpP3xpbWFnfGxlbnxtYWtlfG5ld3xwYW5pY3xwcmludCg/OmxuKT98cmVhbHxyZWNvdmVyfHJ1bmV8c3RyaW5nfHVpbnRwdHIpXGIvfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJnbyIsInN0cmluZyIse2NoYXI6e3BhdHRlcm46LycoPzpcXC58W14nXFxcclxuXSl7MCwxMH0nLyxncmVlZHk6ITB9fSksZGVsZXRlIHQubGFuZ3VhZ2VzLmdvWyJjbGFzcy1uYW1lIl19cmV0dXJuIFBjfXZhciBGYyxiVDtmdW5jdGlvbiBZSCgpe2lmKGJUKXJldHVybiBGYztiVD0xLEZjPWUsZS5kaXNwbGF5TmFtZT0iZ3JhcGhxbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZ3JhcGhxbD17Y29tbWVudDovIy4qLyxkZXNjcmlwdGlvbjp7cGF0dGVybjovKD86IiIiKD86W14iXXwoPyEiIiIpIikqIiIifCIoPzpcXC58W15cXCJcclxuXSkqIikoPz1ccypbYS16X10pL2ksZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7Imxhbmd1YWdlLW1hcmtkb3duIjp7cGF0dGVybjovKF4iKD86IiIpPykoPyFcMSlbXHNcU10rKD89XDEkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6dC5sYW5ndWFnZXMubWFya2Rvd259fX0sc3RyaW5nOntwYXR0ZXJuOi8iIiIoPzpbXiJdfCg/ISIiIikiKSoiIiJ8Iig/OlxcLnxbXlxcIlxyXG5dKSoiLyxncmVlZHk6ITB9LG51bWJlcjovKD86XEItfFxiKVxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspP1xiL2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyx2YXJpYWJsZTovXCRbYS16X11cdyovaSxkaXJlY3RpdmU6e3BhdHRlcm46L0BbYS16X11cdyovaSxhbGlhczoiZnVuY3Rpb24ifSwiYXR0ci1uYW1lIjp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyooPzpcKCg/OlteKCkiXXwiKD86XFwufFteXFwiXHJcbl0pKiIpKlwpKT86KS9pLGdyZWVkeTohMH0sImF0b20taW5wdXQiOntwYXR0ZXJuOi9cYltBLVpdXHcqSW5wdXRcYi8sYWxpYXM6ImNsYXNzLW5hbWUifSxzY2FsYXI6L1xiKD86Qm9vbGVhbnxGbG9hdHxJRHxJbnR8U3RyaW5nKVxiLyxjb25zdGFudDovXGJbQS1aXVtBLVpfXGRdKlxiLywiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmVudW18aW1wbGVtZW50c3xpbnRlcmZhY2V8b258c2NhbGFyfHR5cGV8dW5pb24pXHMrfCZccyp8OlxzKnxcWylbQS1aX11cdyovLGxvb2tiZWhpbmQ6ITB9LGZyYWdtZW50OntwYXR0ZXJuOi8oXGJmcmFnbWVudFxzK3xcLnszfVxzKig/IW9uXGIpKVthLXpBLVpfXVx3Ki8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSwiZGVmaW5pdGlvbi1tdXRhdGlvbiI6e3BhdHRlcm46LyhcYm11dGF0aW9uXHMrKVthLXpBLVpfXVx3Ki8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSwiZGVmaW5pdGlvbi1xdWVyeSI6e3BhdHRlcm46LyhcYnF1ZXJ5XHMrKVthLXpBLVpfXVx3Ki8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxrZXl3b3JkOi9cYig/OmRpcmVjdGl2ZXxlbnVtfGV4dGVuZHxmcmFnbWVudHxpbXBsZW1lbnRzfGlucHV0fGludGVyZmFjZXxtdXRhdGlvbnxvbnxxdWVyeXxyZXBlYXRhYmxlfHNjYWxhcnxzY2hlbWF8c3Vic2NyaXB0aW9ufHR5cGV8dW5pb24pXGIvLG9wZXJhdG9yOi9bIT18Jl18XC57M30vLCJwcm9wZXJ0eS1xdWVyeSI6L1x3Kyg/PVxzKlwoKS8sb2JqZWN0Oi9cdysoPz1ccypceykvLHB1bmN0dWF0aW9uOi9bISgpe31cW1xdOj0sXS8scHJvcGVydHk6L1x3Ky99LHQuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24ocil7aWYoci5sYW5ndWFnZSE9PSJncmFwaHFsIilyZXR1cm47dmFyIGE9ci50b2tlbnMuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiB0eXBlb2YgaCE9InN0cmluZyImJmgudHlwZSE9PSJjb21tZW50IiYmaC50eXBlIT09InNjYWxhciJ9KSxpPTA7ZnVuY3Rpb24gbyhoKXtyZXR1cm4gYVtpK2hdfWZ1bmN0aW9uIHMoaCxtKXttPW18fDA7Zm9yKHZhciBnPTA7ZzxoLmxlbmd0aDtnKyspe3ZhciBFPW8oZyttKTtpZighRXx8RS50eXBlIT09aFtnXSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBsKGgsbSl7Zm9yKHZhciBnPTEsRT1pO0U8YS5sZW5ndGg7RSsrKXt2YXIgVD1hW0VdLHY9VC5jb250ZW50O2lmKFQudHlwZT09PSJwdW5jdHVhdGlvbiImJnR5cGVvZiB2PT0ic3RyaW5nIil7aWYoaC50ZXN0KHYpKWcrKztlbHNlIGlmKG0udGVzdCh2KSYmKGctLSxnPT09MCkpcmV0dXJuIEV9fXJldHVybi0xfWZ1bmN0aW9uIHUoaCxtKXt2YXIgZz1oLmFsaWFzO2c/QXJyYXkuaXNBcnJheShnKXx8KGguYWxpYXM9Zz1bZ10pOmguYWxpYXM9Zz1bXSxnLnB1c2gobSl9Zm9yKDtpPGEubGVuZ3RoOyl7dmFyIGM9YVtpKytdO2lmKGMudHlwZT09PSJrZXl3b3JkIiYmYy5jb250ZW50PT09Im11dGF0aW9uIil7dmFyIGQ9W107aWYocyhbImRlZmluaXRpb24tbXV0YXRpb24iLCJwdW5jdHVhdGlvbiJdKSYmbygxKS5jb250ZW50PT09IigiKXtpKz0yO3ZhciBwPWwoL15cKCQvLC9eXCkkLyk7aWYocD09PS0xKWNvbnRpbnVlO2Zvcig7aTxwO2krKyl7dmFyIGY9bygwKTtmLnR5cGU9PT0idmFyaWFibGUiJiYodShmLCJ2YXJpYWJsZS1pbnB1dCIpLGQucHVzaChmLmNvbnRlbnQpKX1pPXArMX1pZihzKFsicHVuY3R1YXRpb24iLCJwcm9wZXJ0eS1xdWVyeSJdKSYmbygwKS5jb250ZW50PT09InsiJiYoaSsrLHUobygwKSwicHJvcGVydHktbXV0YXRpb24iKSxkLmxlbmd0aD4wKSl7dmFyIHk9bCgvXlx7JC8sL15cfSQvKTtpZih5PT09LTEpY29udGludWU7Zm9yKHZhciBiPWk7Yjx5O2IrKyl7dmFyIEE9YVtiXTtBLnR5cGU9PT0idmFyaWFibGUiJiZkLmluZGV4T2YoQS5jb250ZW50KT49MCYmdShBLCJ2YXJpYWJsZS1pbnB1dCIpfX19fX0pfXJldHVybiBGY312YXIgVWMseVQ7ZnVuY3Rpb24gS0goKXtpZih5VClyZXR1cm4gVWM7eVQ9MSxVYz1lLGUuZGlzcGxheU5hbWU9Imdyb292eSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuZ3Jvb3Z5PXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6W3twYXR0ZXJuOi8oIiIifCcnJykoPzpbXlxcXXxcXFtcc1xTXSkqP1wxfFwkXC8oPzpbXi8kXXxcJCg/OlsvJF18KD8hWy8kXSkpfFwvKD8hXCQpKSpcL1wkLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oWyInL10pKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH1dLGtleXdvcmQ6L1xiKD86YWJzdHJhY3R8YXN8YXNzZXJ0fGJvb2xlYW58YnJlYWt8Ynl0ZXxjYXNlfGNhdGNofGNoYXJ8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVmfGRlZmF1bHR8ZG98ZG91YmxlfGVsc2V8ZW51bXxleHRlbmRzfGZpbmFsfGZpbmFsbHl8ZmxvYXR8Zm9yfGdvdG98aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5zdGFuY2VvZnxpbnR8aW50ZXJmYWNlfGxvbmd8bmF0aXZlfG5ld3xwYWNrYWdlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZXR1cm58c2hvcnR8c3RhdGljfHN0cmljdGZwfHN1cGVyfHN3aXRjaHxzeW5jaHJvbml6ZWR8dGhpc3x0aHJvd3x0aHJvd3N8dHJhaXR8dHJhbnNpZW50fHRyeXx2b2lkfHZvbGF0aWxlfHdoaWxlKVxiLyxudW1iZXI6L1xiKD86MGJbMDFfXSt8MHhbXGRhLWZfXSsoPzpcLltcZGEtZl9wXC1dKyk/fFtcZF9dKyg/OlwuW1xkX10rKT8oPzplWystXT9cZCspPylbZ2xpZGZdP1xiL2ksb3BlcmF0b3I6e3BhdHRlcm46LyhefFteLl0pKD86fnw9PT9+P3xcP1suOl0/fFwqKD86Wy49XXxcKj0/KT98XC5bQCZdfFwuXC48fFwuXC4oPyFcLil8LVstPT5dP3xcK1srPV0/fCE9P3w8KD86PD0/fD0+Pyk/fD4oPzo+Pj89P3w9KT98JlsmPV0/fFx8W3w9XT98XC89P3xcXj0/fCU9PykvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9cLit8W3t9W1xdOygpLDokXS99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImdyb292eSIsInN0cmluZyIse3NoZWJhbmc6e3BhdHRlcm46LyMhLisvLGFsaWFzOiJjb21tZW50In19KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImdyb292eSIsInB1bmN0dWF0aW9uIix7InNwb2NrLWJsb2NrIjovXGIoPzphbmR8Y2xlYW51cHxleHBlY3R8Z2l2ZW58c2V0dXB8dGhlbnx3aGVufHdoZXJlKTovfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJncm9vdnkiLCJmdW5jdGlvbiIse2Fubm90YXRpb246e3BhdHRlcm46LyhefFteLl0pQFx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoicHVuY3R1YXRpb24ifX0pLHQuaG9va3MuYWRkKCJ3cmFwIixmdW5jdGlvbihuKXtpZihuLmxhbmd1YWdlPT09Imdyb292eSImJm4udHlwZT09PSJzdHJpbmciKXt2YXIgcj1uLmNvbnRlbnQudmFsdWVbMF07aWYociE9IiciKXt2YXIgYT0vKFteXFxdKSg/OlwkKD86XHsuKj9cfXxbXHcuXSspKS87cj09PSIkIiYmKGE9LyhbXlwkXSkoPzpcJCg/Olx7Lio/XH18W1x3Ll0rKSkvKSxuLmNvbnRlbnQudmFsdWU9bi5jb250ZW50LnZhbHVlLnJlcGxhY2UoLyZsdDsvZywiPCIpLnJlcGxhY2UoLyZhbXA7L2csIiYiKSxuLmNvbnRlbnQ9dC5oaWdobGlnaHQobi5jb250ZW50LnZhbHVlLHtleHByZXNzaW9uOntwYXR0ZXJuOmEsbG9va2JlaGluZDohMCxpbnNpZGU6dC5sYW5ndWFnZXMuZ3Jvb3Z5fX0pLG4uY2xhc3Nlcy5wdXNoKHI9PT0iLyI/InJlZ2V4IjoiZ3N0cmluZyIpfX19KX1yZXR1cm4gVWN9dmFyIEJjLHZUO2Z1bmN0aW9uIFhIKCl7aWYodlQpcmV0dXJuIEJjO3ZUPTE7dmFyIGU9WXMoKTtCYz10LHQuZGlzcGxheU5hbWU9ImhhbWwiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksZnVuY3Rpb24ocil7ci5sYW5ndWFnZXMuaGFtbD17Im11bHRpbGluZS1jb21tZW50Ijp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpKFtcdCBdKikpKD86XC98LSMpLiooPzooPzpccj9cbnxccilcMltcdCBdLispKi8sbG9va2JlaGluZDohMCxhbGlhczoiY29tbWVudCJ9LCJtdWx0aWxpbmUtY29kZSI6W3twYXR0ZXJuOi8oKD86Xnxccj9cbnxccikoW1x0IF0qKSg/Olt+LV18WyYhXT89KSkuKixbXHQgXSooPzooPzpccj9cbnxccilcMltcdCBdLiosW1x0IF0qKSooPzooPzpccj9cbnxccilcMltcdCBdLispLyxsb29rYmVoaW5kOiEwLGluc2lkZTpyLmxhbmd1YWdlcy5ydWJ5fSx7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpKFtcdCBdKikoPzpbfi1dfFsmIV0/PSkpLipcfFtcdCBdKig/Oig/OlxyP1xufFxyKVwyW1x0IF0uKlx8W1x0IF0qKSovLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnIubGFuZ3VhZ2VzLnJ1Ynl9XSxmaWx0ZXI6e3BhdHRlcm46LygoPzpefFxyP1xufFxyKShbXHQgXSopKTpbXHctXSsoPzooPzpccj9cbnxccikoPzpcMltcdCBdLit8XHMqPyg/PVxyP1xufFxyKSkpKy8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJmaWx0ZXItbmFtZSI6e3BhdHRlcm46L146W1x3LV0rLyxhbGlhczoic3ltYm9sIn19fSxtYXJrdXA6e3BhdHRlcm46LygoPzpefFxyP1xufFxyKVtcdCBdKik8LisvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnIubGFuZ3VhZ2VzLm1hcmt1cH0sZG9jdHlwZTp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpW1x0IF0qKSEhISg/OiAuKyk/Lyxsb29rYmVoaW5kOiEwfSx0YWc6e3BhdHRlcm46LygoPzpefFxyP1xufFxyKVtcdCBdKilbJS4jXVtcd1wtIy5dKltcd1wtXSg/OlwoW14pXStcKXxceyg/Olx7W159XStcfXxbXnt9XSkrXH18XFtbXlxdXStcXSkqW1wvPD5dKi8sbG9va2JlaGluZDohMCxpbnNpZGU6e2F0dHJpYnV0ZXM6W3twYXR0ZXJuOi8oXnxbXiNdKVx7KD86XHtbXn1dK1x9fFtee31dKStcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6ci5sYW5ndWFnZXMucnVieX0se3BhdHRlcm46L1woW14pXStcKS8saW5zaWRlOnsiYXR0ci12YWx1ZSI6e3BhdHRlcm46Lyg9XHMqKSg/OiIoPzpcXC58W15cXCJcclxuXSkqInxbXilcc10rKS8sbG9va2JlaGluZDohMH0sImF0dHItbmFtZSI6L1tcdzotXSsoPz1ccyohPz18XHMqWywpXSkvLHB1bmN0dWF0aW9uOi9bPSgpLF0vfX0se3BhdHRlcm46L1xbW15cXV0rXF0vLGluc2lkZTpyLmxhbmd1YWdlcy5ydWJ5fV0scHVuY3R1YXRpb246L1s8Pl0vfX0sY29kZTp7cGF0dGVybjovKCg/Ol58XHI/XG58XHIpW1x0IF0qKD86W34tXXxbJiFdPz0pKS4rLyxsb29rYmVoaW5kOiEwLGluc2lkZTpyLmxhbmd1YWdlcy5ydWJ5fSxpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8jXHtbXn1dK1x9LyxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXiNce3xcfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJ1Ynk6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpyLmxhbmd1YWdlcy5ydWJ5fX19LHB1bmN0dWF0aW9uOntwYXR0ZXJuOi8oKD86Xnxccj9cbnxccilbXHQgXSopW349XC0mIV0rLyxsb29rYmVoaW5kOiEwfX07Zm9yKHZhciBhPSIoKD86XnxcXHI/XFxufFxccikoW1xcdCBdKikpOnt7ZmlsdGVyX25hbWV9fSg/Oig/Olxccj9cXG58XFxyKSg/OlxcMltcXHQgXS4rfFxccyo/KD89XFxyP1xcbnxcXHIpKSkrIixpPVsiY3NzIix7ZmlsdGVyOiJjb2ZmZWUiLGxhbmd1YWdlOiJjb2ZmZWVzY3JpcHQifSwiZXJiIiwiamF2YXNjcmlwdCIsImxlc3MiLCJtYXJrZG93biIsInJ1YnkiLCJzY3NzIiwidGV4dGlsZSJdLG89e30scz0wLGw9aS5sZW5ndGg7czxsO3MrKyl7dmFyIHU9aVtzXTt1PXR5cGVvZiB1PT0ic3RyaW5nIj97ZmlsdGVyOnUsbGFuZ3VhZ2U6dX06dSxyLmxhbmd1YWdlc1t1Lmxhbmd1YWdlXSYmKG9bImZpbHRlci0iK3UuZmlsdGVyXT17cGF0dGVybjpSZWdFeHAoYS5yZXBsYWNlKCJ7e2ZpbHRlcl9uYW1lfX0iLGZ1bmN0aW9uKCl7cmV0dXJuIHUuZmlsdGVyfSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiZmlsdGVyLW5hbWUiOntwYXR0ZXJuOi9eOltcdy1dKy8sYWxpYXM6InN5bWJvbCJ9LHRleHQ6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOlt1Lmxhbmd1YWdlLCJsYW5ndWFnZS0iK3UubGFuZ3VhZ2VdLGluc2lkZTpyLmxhbmd1YWdlc1t1Lmxhbmd1YWdlXX19fSl9ci5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJoYW1sIiwiZmlsdGVyIixvKX0obil9cmV0dXJuIEJjfXZhciAkYyxFVDtmdW5jdGlvbiBaSCgpe2lmKEVUKXJldHVybiAkYztFVD0xO3ZhciBlPWx0KCk7JGM9dCx0LmRpc3BsYXlOYW1lPSJoYW5kbGViYXJzIix0LmFsaWFzZXM9WyJoYnMiXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksZnVuY3Rpb24ocil7ci5sYW5ndWFnZXMuaGFuZGxlYmFycz17Y29tbWVudDovXHtceyFbXHNcU10qP1x9XH0vLGRlbGltaXRlcjp7cGF0dGVybjovXlx7XHtcez98XH1cfVx9PyQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHN0cmluZzovKFsiJ10pKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLG51bWJlcjovXGIweFtcZEEtRmEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXVsrLV0/XGQrKT8vLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sYmxvY2s6e3BhdHRlcm46L14oXHMqKD86flxzKik/KVsjXC9dXFMrPyg/PVxzKig/On5ccyopPyR8XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sYnJhY2tldHM6e3BhdHRlcm46L1xbW15cXV0rXF0vLGluc2lkZTp7cHVuY3R1YXRpb246L1xbfFxdLyx2YXJpYWJsZTovW1xzXFNdKy99fSxwdW5jdHVhdGlvbjovWyEiIyUmJzooKSorLC5cLzs8PT5AXFtcXFxdXmB7fH1+XS8sdmFyaWFibGU6L1teISIjJSYnKCkqKyxcLzs8PT5AXFtcXFxdXmB7fH1+XHNdKy99LHIuaG9va3MuYWRkKCJiZWZvcmUtdG9rZW5pemUiLGZ1bmN0aW9uKGEpe3ZhciBpPS9ce1x7XHtbXHNcU10rP1x9XH1cfXxce1x7W1xzXFNdKz9cfVx9L2c7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoYSwiaGFuZGxlYmFycyIsaSl9KSxyLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGEpe3IubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLnRva2VuaXplUGxhY2Vob2xkZXJzKGEsImhhbmRsZWJhcnMiKX0pLHIubGFuZ3VhZ2VzLmhicz1yLmxhbmd1YWdlcy5oYW5kbGViYXJzfShuKX1yZXR1cm4gJGN9dmFyIHpjLFNUO2Z1bmN0aW9uIERiKCl7aWYoU1QpcmV0dXJuIHpjO1NUPTEsemM9ZSxlLmRpc3BsYXlOYW1lPSJoYXNrZWxsIixlLmFsaWFzZXM9WyJocyJdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaGFza2VsbD17Y29tbWVudDp7cGF0dGVybjovKF58W14tISMkJSorPT8mQHx+Ljo8Pl5cXFwvXSkoPzotLSg/Oig/PS4pW14tISMkJSorPT8mQHx+Ljo8Pl5cXFwvXS4qfCQpfFx7LVtcc1xTXSo/LVx9KS9tLGxvb2tiZWhpbmQ6ITB9LGNoYXI6e3BhdHRlcm46LycoPzpbXlxcJ118XFwoPzpbYWJmbnJ0dlxcIicmXXxcXltBLVpAW1xdXl9dfEFDS3xCRUx8QlN8Q0FOfENSfERDMXxEQzJ8REMzfERDNHxERUx8RExFfEVNfEVOUXxFT1R8RVNDfEVUQnxFVFh8RkZ8RlN8R1N8SFR8TEZ8TkFLfE5VTHxSU3xTSXxTT3xTT0h8U1B8U1RYfFNVQnxTWU58VVN8VlR8XGQrfG9bMC03XSt8eFswLTlhLWZBLUZdKykpJy8sYWxpYXM6InN0cmluZyJ9LHN0cmluZzp7cGF0dGVybjovIig/OlteXFwiXXxcXCg/OlxTfFxzK1xcKSkqIi8sZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmNhc2V8Y2xhc3N8ZGF0YXxkZXJpdmluZ3xkb3xlbHNlfGlmfGlufGluZml4bHxpbmZpeHJ8aW5zdGFuY2V8bGV0fG1vZHVsZXxuZXd0eXBlfG9mfHByaW1pdGl2ZXx0aGVufHR5cGV8d2hlcmUpXGIvLCJpbXBvcnQtc3RhdGVtZW50Ijp7cGF0dGVybjovKF5bXHQgXSopaW1wb3J0XHMrKD86cXVhbGlmaWVkXHMrKT8oPzpbQS1aXVtcdyddKikoPzpcLltBLVpdW1x3J10qKSooPzpccythc1xzKyg/OltBLVpdW1x3J10qKSg/OlwuW0EtWl1bXHcnXSopKik/KD86XHMraGlkaW5nXGIpPy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9cYig/OmFzfGhpZGluZ3xpbXBvcnR8cXVhbGlmaWVkKVxiLyxwdW5jdHVhdGlvbjovXC4vfX0sYnVpbHRpbjovXGIoPzphYnN8YWNvc3xhY29zaHxhbGx8YW5kfGFueXxhcHBlbmRGaWxlfGFwcHJveFJhdGlvbmFsfGFzVHlwZU9mfGFzaW58YXNpbmh8YXRhbnxhdGFuMnxhdGFuaHxiYXNpY0lPUnVufGJyZWFrfGNhdGNofGNlaWxpbmd8Y2hyfGNvbXBhcmV8Y29uY2F0fGNvbmNhdE1hcHxjb25zdHxjb3N8Y29zaHxjdXJyeXxjeWNsZXxkZWNvZGVGbG9hdHxkZW5vbWluYXRvcnxkaWdpdFRvSW50fGRpdnxkaXZNb2R8ZHJvcHxkcm9wV2hpbGV8ZWl0aGVyfGVsZW18ZW5jb2RlRmxvYXR8ZW51bUZyb218ZW51bUZyb21UaGVufGVudW1Gcm9tVGhlblRvfGVudW1Gcm9tVG98ZXJyb3J8ZXZlbnxleHB8ZXhwb25lbnR8ZmFpbHxmaWx0ZXJ8ZmxpcHxmbG9hdERpZ2l0c3xmbG9hdFJhZGl4fGZsb2F0UmFuZ2V8Zmxvb3J8Zm1hcHxmb2xkbHxmb2xkbDF8Zm9sZHJ8Zm9sZHIxfGZyb21Eb3VibGV8ZnJvbUVudW18ZnJvbUludHxmcm9tSW50ZWdlcnxmcm9tSW50ZWdyYWx8ZnJvbVJhdGlvbmFsfGZzdHxnY2R8Z2V0Q2hhcnxnZXRDb250ZW50c3xnZXRMaW5lfGdyb3VwfGhlYWR8aWR8aW5SYW5nZXxpbmRleHxpbml0fGludFRvRGlnaXR8aW50ZXJhY3R8aW9FcnJvcnxpc0FscGhhfGlzQWxwaGFOdW18aXNBc2NpaXxpc0NvbnRyb2x8aXNEZW5vcm1hbGl6ZWR8aXNEaWdpdHxpc0hleERpZ2l0fGlzSUVFRXxpc0luZmluaXRlfGlzTG93ZXJ8aXNOYU58aXNOZWdhdGl2ZVplcm98aXNPY3REaWdpdHxpc1ByaW50fGlzU3BhY2V8aXNVcHBlcnxpdGVyYXRlfGxhc3R8bGNtfGxlbmd0aHxsZXh8bGV4RGlnaXRzfGxleExpdENoYXJ8bGluZXN8bG9nfGxvZ0Jhc2V8bG9va3VwfG1hcHxtYXBNfG1hcE1ffG1heHxtYXhCb3VuZHxtYXhpbXVtfG1heWJlfG1pbnxtaW5Cb3VuZHxtaW5pbXVtfG1vZHxuZWdhdGV8bm90fG5vdEVsZW18bnVsbHxudW1lcmF0b3J8b2RkfG9yfG9yZHxvdGhlcndpc2V8cGFja3xwaXxwcmVkfHByaW1FeGl0V2l0aHxwcmludHxwcm9kdWN0fHByb3BlckZyYWN0aW9ufHB1dENoYXJ8cHV0U3RyfHB1dFN0ckxufHF1b3R8cXVvdFJlbXxyYW5nZXxyYW5nZVNpemV8cmVhZHxyZWFkRGVjfHJlYWRGaWxlfHJlYWRGbG9hdHxyZWFkSGV4fHJlYWRJT3xyZWFkSW50fHJlYWRMaXN0fHJlYWRMaXRDaGFyfHJlYWRMbnxyZWFkT2N0fHJlYWRQYXJlbnxyZWFkU2lnbmVkfHJlYWRzfHJlYWRzUHJlY3xyZWFsVG9GcmFjfHJlY2lwfHJlbXxyZXBlYXR8cmVwbGljYXRlfHJldHVybnxyZXZlcnNlfHJvdW5kfHNjYWxlRmxvYXR8c2Nhbmx8c2NhbmwxfHNjYW5yfHNjYW5yMXxzZXF8c2VxdWVuY2V8c2VxdWVuY2VffHNob3d8c2hvd0NoYXJ8c2hvd0ludHxzaG93TGlzdHxzaG93TGl0Q2hhcnxzaG93UGFyZW58c2hvd1NpZ25lZHxzaG93U3RyaW5nfHNob3dzfHNob3dzUHJlY3xzaWduaWZpY2FuZHxzaWdudW18c2lufHNpbmh8c25kfHNvcnR8c3BhbnxzcGxpdEF0fHNxcnR8c3VidHJhY3R8c3VjY3xzdW18dGFpbHx0YWtlfHRha2VXaGlsZXx0YW58dGFuaHx0aHJlYWRUb0lPUmVzdWx0fHRvRW51bXx0b0ludHx0b0ludGVnZXJ8dG9Mb3dlcnx0b1JhdGlvbmFsfHRvVXBwZXJ8dHJ1bmNhdGV8dW5jdXJyeXx1bmRlZmluZWR8dW5saW5lc3x1bnRpbHx1bndvcmRzfHVuemlwfHVuemlwM3x1c2VyRXJyb3J8d29yZHN8d3JpdGVGaWxlfHppcHx6aXAzfHppcFdpdGh8emlwV2l0aDMpXGIvLG51bWJlcjovXGIoPzpcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT98MG9bMC03XSt8MHhbMC05YS1mXSspXGIvaSxvcGVyYXRvcjpbe3BhdHRlcm46L2AoPzpbQS1aXVtcdyddKlwuKSpbX2Etel1bXHcnXSpgLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXHMpXC4oPz1ccykvLGxvb2tiZWhpbmQ6ITB9LC9bLSEjJCUqKz0/JkB8fjo8Pl5cXFwvXVstISMkJSorPT8mQHx+Ljo8Pl5cXFwvXSp8XC5bLSEjJCUqKz0/JkB8fi46PD5eXFxcL10rL10saHZhcmlhYmxlOntwYXR0ZXJuOi9cYig/OltBLVpdW1x3J10qXC4pKltfYS16XVtcdyddKi8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sY29uc3RhbnQ6e3BhdHRlcm46L1xiKD86W0EtWl1bXHcnXSpcLikqW0EtWl1bXHcnXSovLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL30sdC5sYW5ndWFnZXMuaHM9dC5sYW5ndWFnZXMuaGFza2VsbH1yZXR1cm4gemN9dmFyIGpjLHdUO2Z1bmN0aW9uIFFIKCl7aWYod1QpcmV0dXJuIGpjO3dUPTEsamM9ZSxlLmRpc3BsYXlOYW1lPSJoYXhlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5oYXhlPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFxbXHNcU10pKiIvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjovKFxiKD86YWJzdHJhY3R8Y2xhc3N8ZW51bXxleHRlbmRzfGltcGxlbWVudHN8aW50ZXJmYWNlfG5ld3x0eXBlZGVmKVxzKylbQS1aX11cdyovLGxvb2tiZWhpbmQ6ITB9LC9cYltBLVpdXHcqL10sa2V5d29yZDovXGJ0aGlzXGJ8XGIoPzphYnN0cmFjdHxhc3xicmVha3xjYXNlfGNhc3R8Y2F0Y2h8Y2xhc3N8Y29udGludWV8ZGVmYXVsdHxkb3xkeW5hbWljfGVsc2V8ZW51bXxleHRlbmRzfGV4dGVybnxmaW5hbHxmb3J8ZnJvbXxmdW5jdGlvbnxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbmxpbmV8aW50ZXJmYWNlfG1hY3JvfG5ld3xudWxsfG9wZXJhdG9yfG92ZXJsb2FkfG92ZXJyaWRlfHBhY2thZ2V8cHJpdmF0ZXxwdWJsaWN8cmV0dXJufHN0YXRpY3xzdXBlcnxzd2l0Y2h8dGhyb3d8dG98dHJ5fHR5cGVkZWZ8dW50eXBlZHx1c2luZ3x2YXJ8d2hpbGUpKD8hXC4pXGIvLGZ1bmN0aW9uOntwYXR0ZXJuOi9cYlthLXpfXVx3Kig/PVxzKig/OjxbXjw+XSo+XHMqKT9cKCkvaSxncmVlZHk6ITB9LG9wZXJhdG9yOi9cLnszfXxcK1wrfC0tfCYmfFx8XHx8LT58PT58KD86PDw/fD57MSwzfXxbLSsqLyUhPSZ8Xl0pPT98Wz86fl0vfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJoYXhlIiwic3RyaW5nIix7InN0cmluZy1pbnRlcnBvbGF0aW9uIjp7cGF0dGVybjovJyg/OlteJ1xcXXxcXFtcc1xTXSkqJy8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKF58W15cXF0pXCQoPzpcdyt8XHtbXnt9XStcfSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15cJFx7P3xcfSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LGV4cHJlc3Npb246e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTp0Lmxhbmd1YWdlcy5oYXhlfX19LHN0cmluZzovW1xzXFNdKy99fX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaGF4ZSIsImNsYXNzLW5hbWUiLHtyZWdleDp7cGF0dGVybjovflwvKD86W15cL1xcXHJcbl18XFwuKStcL1thLXpdKi8sZ3JlZWR5OiEwLGluc2lkZTp7InJlZ2V4LWZsYWdzIjovXGJbYS16XSskLywicmVnZXgtc291cmNlIjp7cGF0dGVybjovXih+XC8pW1xzXFNdKyg/PVwvJCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Imxhbmd1YWdlLXJlZ2V4IixpbnNpZGU6dC5sYW5ndWFnZXMucmVnZXh9LCJyZWdleC1kZWxpbWl0ZXIiOi9eflwvfFwvJC99fX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaGF4ZSIsImtleXdvcmQiLHtwcmVwcm9jZXNzb3I6e3BhdHRlcm46LyMoPzplbHNlfGVsc2VpZnxlbmR8aWYpXGIuKi8sYWxpYXM6InByb3BlcnR5In0sbWV0YWRhdGE6e3BhdHRlcm46L0A6P1tcdy5dKy8sYWxpYXM6InN5bWJvbCJ9LHJlaWZpY2F0aW9uOntwYXR0ZXJuOi9cJCg/Olx3K3woPz1ceykpLyxhbGlhczoiaW1wb3J0YW50In19KX1yZXR1cm4gamN9dmFyIEdjLFRUO2Z1bmN0aW9uIEpIKCl7aWYoVFQpcmV0dXJuIEdjO1RUPTEsR2M9ZSxlLmRpc3BsYXlOYW1lPSJoY2wiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmhjbD17Y29tbWVudDovKD86XC9cL3wjKS4qfFwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGhlcmVkb2M6e3BhdHRlcm46Lzw8LT8oXHcrXGIpW1xzXFNdKj9eWyBcdF0qXDEvbSxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LGtleXdvcmQ6W3twYXR0ZXJuOi8oPzpkYXRhfHJlc291cmNlKVxzKyg/OiIoPzpcXFtcc1xTXXxbXlxcIl0pKiIpKD89XHMrIltcdy1dKyJccytceykvaSxpbnNpZGU6e3R5cGU6e3BhdHRlcm46LyhyZXNvdXJjZXxkYXRhfFxzKykoPzoiKD86XFxbXHNcU118W15cXCJdKSoiKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn19fSx7cGF0dGVybjovKD86YmFja2VuZHxtb2R1bGV8b3V0cHV0fHByb3ZpZGVyfHByb3Zpc2lvbmVyfHZhcmlhYmxlKVxzKyg/Oltcdy1dK3wiKD86XFxbXHNcU118W15cXCJdKSoiKVxzKyg/PVx7KS9pLGluc2lkZTp7dHlwZTp7cGF0dGVybjovKGJhY2tlbmR8bW9kdWxlfG91dHB1dHxwcm92aWRlcnxwcm92aXNpb25lcnx2YXJpYWJsZSlccysoPzpbXHctXSt8Iig/OlxcW1xzXFNdfFteXFwiXSkqIilccysvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9fX0sL1tcdy1dKyg/PVxzK1x7KS9dLHByb3BlcnR5OlsvWy1cd1wuXSsoPz1ccyo9KD8hPSkpLywvIig/OlxcW1xzXFNdfFteXFwiXSkrIig/PVxzKls6PV0pL10sc3RyaW5nOntwYXR0ZXJuOi8iKD86W15cXCQiXXxcXFtcc1xTXXxcJCg/Oig/PSIpfFwkKyg/IVwkKXxbXiIke10pfFwkXHsoPzpbXnt9Il18Iig/OlteXFwiXXxcXFtcc1xTXSkqIikqXH0pKiIvLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46LyhefFteJF0pXCRceyg/Oltee30iXXwiKD86W15cXCJdfFxcW1xzXFNdKSoiKSpcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3R5cGU6e3BhdHRlcm46LyhcYig/OmNvdW50fGRhdGF8bG9jYWx8bW9kdWxlfHBhdGh8c2VsZnx0ZXJyYWZvcm18dmFyKVxiXC4pW1x3XCpdKy9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn0sa2V5d29yZDovXGIoPzpjb3VudHxkYXRhfGxvY2FsfG1vZHVsZXxwYXRofHNlbGZ8dGVycmFmb3JtfHZhcilcYi9pLGZ1bmN0aW9uOi9cdysoPz1cKCkvLHN0cmluZzp7cGF0dGVybjovIig/OlxcW1xzXFNdfFteXFwiXSkqIi8sZ3JlZWR5OiEwfSxudW1iZXI6L1xiMHhbXGRhLWZdK1xifFxiXGQrKD86XC5cZCopPyg/OmVbKy1dP1xkKyk/L2kscHVuY3R1YXRpb246L1shXCQjJSYnKCkqKywuXC87PD0+QFxbXFxcXV5ge3x9fj86XS99fX19LG51bWJlcjovXGIweFtcZGEtZl0rXGJ8XGJcZCsoPzpcLlxkKik/KD86ZVsrLV0/XGQrKT8vaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxwdW5jdHVhdGlvbjovWz1cW1xde31dL319cmV0dXJuIEdjfXZhciBxYyxrVDtmdW5jdGlvbiBlNSgpe2lmKGtUKXJldHVybiBxYztrVD0xO3ZhciBlPUVyKCk7cWM9dCx0LmRpc3BsYXlOYW1lPSJobHNsIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLmhsc2w9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjIix7ImNsYXNzLW5hbWUiOltuLmxhbmd1YWdlcy5jWyJjbGFzcy1uYW1lIl0sL1xiKD86QXBwZW5kU3RydWN0dXJlZEJ1ZmZlcnxCbGVuZFN0YXRlfEJ1ZmZlcnxCeXRlQWRkcmVzc0J1ZmZlcnxDb21waWxlU2hhZGVyfENvbXB1dGVTaGFkZXJ8Q29uc3VtZVN0cnVjdHVyZWRCdWZmZXJ8RGVwdGhTdGVuY2lsU3RhdGV8RGVwdGhTdGVuY2lsVmlld3xEb21haW5TaGFkZXJ8R2VvbWV0cnlTaGFkZXJ8SHVsbHNoYWRlcnxJbnB1dFBhdGNofExpbmVTdHJlYW18T3V0cHV0UGF0Y2h8UGl4ZWxTaGFkZXJ8UG9pbnRTdHJlYW18UldCdWZmZXJ8UldCeXRlQWRkcmVzc0J1ZmZlcnxSV1N0cnVjdHVyZWRCdWZmZXJ8UldUZXh0dXJlKD86MUR8MURBcnJheXwyRHwyREFycmF5fDNEKXxSYXN0ZXJpemVyU3RhdGV8UmVuZGVyVGFyZ2V0Vmlld3xTYW1wbGVyQ29tcGFyaXNvblN0YXRlfFNhbXBsZXJTdGF0ZXxTdHJ1Y3R1cmVkQnVmZmVyfFRleHR1cmUoPzoxRHwxREFycmF5fDJEfDJEQXJyYXl8MkRNU3wyRE1TQXJyYXl8M0R8Q3ViZXxDdWJlQXJyYXkpfFRyaWFuZ2xlU3RyZWFtfFZlcnRleFNoYWRlcilcYi9dLGtleXdvcmQ6Wy9cYig/OmFzbXxhc21fZnJhZ21lbnR8YXV0b3xicmVha3xjYXNlfGNhdGNofGNidWZmZXJ8Y2VudHJvaWR8Y2hhcnxjbGFzc3xjb2x1bW5fbWFqb3J8Y29tcGlsZXxjb21waWxlX2ZyYWdtZW50fGNvbnN0fGNvbnN0X2Nhc3R8Y29udGludWV8ZGVmYXVsdHxkZWxldGV8ZGlzY2FyZHxkb3xkeW5hbWljX2Nhc3R8ZWxzZXxlbnVtfGV4cGxpY2l0fGV4cG9ydHxleHRlcm58Zm9yfGZyaWVuZHxmeGdyb3VwfGdvdG98Z3JvdXBzaGFyZWR8aWZ8aW58aW5saW5lfGlub3V0fGludGVyZmFjZXxsaW5lfGxpbmVhZGp8bGluZWFyfGxvbmd8bWF0cml4fG11dGFibGV8bmFtZXNwYWNlfG5ld3xub2ludGVycG9sYXRpb258bm9wZXJzcGVjdGl2ZXxvcGVyYXRvcnxvdXR8cGFja29mZnNldHxwYXNzfHBpeGVsZnJhZ21lbnR8cG9pbnR8cHJlY2lzZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmVnaXN0ZXJ8cmVpbnRlcnByZXRfY2FzdHxyZXR1cm58cm93X21ham9yfHNhbXBsZXxzYW1wbGVyfHNoYXJlZHxzaG9ydHxzaWduZWR8c2l6ZW9mfHNub3JtfHN0YXRlYmxvY2t8c3RhdGVibG9ja19zdGF0ZXxzdGF0aWN8c3RhdGljX2Nhc3R8c3RyaW5nfHN0cnVjdHxzd2l0Y2h8dGJ1ZmZlcnx0ZWNobmlxdWV8dGVjaG5pcXVlMTB8dGVjaG5pcXVlMTF8dGVtcGxhdGV8dGV4dHVyZXx0aGlzfHRocm93fHRyaWFuZ2xlfHRyaWFuZ2xlYWRqfHRyeXx0eXBlZGVmfHR5cGVuYW1lfHVuaWZvcm18dW5pb258dW5vcm18dW5zaWduZWR8dXNpbmd8dmVjdG9yfHZlcnRleGZyYWdtZW50fHZpcnR1YWx8dm9pZHx2b2xhdGlsZXx3aGlsZSlcYi8sL1xiKD86Ym9vbHxkb3VibGV8ZHdvcmR8ZmxvYXR8aGFsZnxpbnR8bWluKD86MTBmbG9hdHwxMmludHwxNig/OmZsb2F0fGludHx1aW50KSl8dWludCkoPzpbMS00XSg/OnhbMS00XSk/KT9cYi9dLG51bWJlcjovKD86KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W2VFXVsrLV0/XGQrKT98XGIweFtcZGEtZkEtRl0rKVtmRmhIbEx1VV0/XGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi99KX1yZXR1cm4gcWN9dmFyIFZjLEFUO2Z1bmN0aW9uIHQ1KCl7aWYoQVQpcmV0dXJuIFZjO0FUPTEsVmM9ZSxlLmRpc3BsYXlOYW1lPSJob29uIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5ob29uPXtjb21tZW50OntwYXR0ZXJuOi86Oi4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIlteIl0qInwnW14nXSonLyxncmVlZHk6ITB9LGNvbnN0YW50Oi8lKD86XC5bbnldfFtcdy1dKykvLCJjbGFzcy1uYW1lIjovQCg/OlthLXowLTktXSpbYS16MC05XSk/fFwqL2ksZnVuY3Rpb246Lyg/OlwrWy0rXSB7Mn0pPyg/OlthLXpdKD86W2EtejAtOS1dKlthLXowLTldKT8pLyxrZXl3b3JkOi9cLltcXlwrXCo9XD9dfCFbPjw6XC49XD8hXXw9Wz58OixcLlwtXF48KzsvflwqXD9dfFw/Wz58OlwuXC1cXjxcKyZ+PUAhXXxcfFtcJF8lOlwuXC1cXn5cKj1AXD9dfFwrW3xcJFwrXCpdfDpbX1wtXF5cK35cKl18JVtfOlwuXC1cXlwrflwqPV18XF5bfDpcLlwtXCsmflwqPVw/XXxcJFt8XyU6PD5cLVxeJn5APVw/XXw7Wzo8XCs7XC9+XCo9XXx+Wz58XCRfJTxcK1wvJj1cPyFdfC0tfD09L319cmV0dXJuIFZjfXZhciBIYyx4VDtmdW5jdGlvbiBuNSgpe2lmKHhUKXJldHVybiBIYzt4VD0xLEhjPWUsZS5kaXNwbGF5TmFtZT0iaHBrcCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaHBrcD17ZGlyZWN0aXZlOntwYXR0ZXJuOi9cYig/OmluY2x1ZGVTdWJEb21haW5zfG1heC1hZ2V8cGluLXNoYTI1NnxwcmVsb2FkfHJlcG9ydC10b3xyZXBvcnQtdXJpfHN0cmljdCkoPz1bXHM7PV18JCkvaSxhbGlhczoicHJvcGVydHkifSxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246LzsvfX1yZXR1cm4gSGN9dmFyIFdjLFJUO2Z1bmN0aW9uIHI1KCl7aWYoUlQpcmV0dXJuIFdjO1JUPTEsV2M9ZSxlLmRpc3BsYXlOYW1lPSJoc3RzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5oc3RzPXtkaXJlY3RpdmU6e3BhdHRlcm46L1xiKD86aW5jbHVkZVN1YkRvbWFpbnN8bWF4LWFnZXxwcmVsb2FkKSg/PVtcczs9XXwkKS9pLGFsaWFzOiJwcm9wZXJ0eSJ9LG9wZXJhdG9yOi89LyxwdW5jdHVhdGlvbjovOy99fXJldHVybiBXY312YXIgWWMsX1Q7ZnVuY3Rpb24gYTUoKXtpZihfVClyZXR1cm4gWWM7X1Q9MSxZYz1lLGUuZGlzcGxheU5hbWU9Imh0dHAiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtmdW5jdGlvbiByKGQpe3JldHVybiBSZWdFeHAoIiheKD86IitkKyIpOlsgCV0qKD8hWyAJXSkpW15dKyIsImkiKX1uLmxhbmd1YWdlcy5odHRwPXsicmVxdWVzdC1saW5lIjp7cGF0dGVybjovXig/OkNPTk5FQ1R8REVMRVRFfEdFVHxIRUFEfE9QVElPTlN8UEFUQ0h8UE9TVHxQUkl8UFVUfFNFQVJDSHxUUkFDRSlccyg/Omh0dHBzPzpcL1wvfFwvKVxTKlxzSFRUUFwvW1xkLl0rL20saW5zaWRlOnttZXRob2Q6e3BhdHRlcm46L15bQS1aXStcYi8sYWxpYXM6InByb3BlcnR5In0sInJlcXVlc3QtdGFyZ2V0Ijp7cGF0dGVybjovXihccykoPzpodHRwcz86XC9cL3xcLylcUyooPz1ccykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InVybCIsaW5zaWRlOm4ubGFuZ3VhZ2VzLnVyaX0sImh0dHAtdmVyc2lvbiI6e3BhdHRlcm46L14oXHMpSFRUUFwvW1xkLl0rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9fX0sInJlc3BvbnNlLXN0YXR1cyI6e3BhdHRlcm46L15IVFRQXC9bXGQuXSsgXGQrIC4rL20saW5zaWRlOnsiaHR0cC12ZXJzaW9uIjp7cGF0dGVybjovXkhUVFBcL1tcZC5dKy8sYWxpYXM6InByb3BlcnR5In0sInN0YXR1cy1jb2RlIjp7cGF0dGVybjovXihccylcZCsoPz1ccykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LCJyZWFzb24tcGhyYXNlIjp7cGF0dGVybjovXihccykuKy8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn19fSxoZWFkZXI6e3BhdHRlcm46L15bXHctXSs6LisoPzooPzpcclxuP3xcbilbIFx0XS4rKSovbSxpbnNpZGU6eyJoZWFkZXItdmFsdWUiOlt7cGF0dGVybjpyKC9Db250ZW50LVNlY3VyaXR5LVBvbGljeS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiY3NwIiwibGFuZ3VhZ2VzLWNzcCJdLGluc2lkZTpuLmxhbmd1YWdlcy5jc3B9LHtwYXR0ZXJuOnIoL1B1YmxpYy1LZXktUGlucyg/Oi1SZXBvcnQtT25seSk/Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJocGtwIiwibGFuZ3VhZ2VzLWhwa3AiXSxpbnNpZGU6bi5sYW5ndWFnZXMuaHBrcH0se3BhdHRlcm46cigvU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiaHN0cyIsImxhbmd1YWdlcy1oc3RzIl0saW5zaWRlOm4ubGFuZ3VhZ2VzLmhzdHN9LHtwYXR0ZXJuOnIoL1teOl0rLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9XSwiaGVhZGVyLW5hbWUiOntwYXR0ZXJuOi9eW146XSsvLGFsaWFzOiJrZXl3b3JkIn0scHVuY3R1YXRpb246L146L319fTt2YXIgYT1uLmxhbmd1YWdlcyxpPXsiYXBwbGljYXRpb24vamF2YXNjcmlwdCI6YS5qYXZhc2NyaXB0LCJhcHBsaWNhdGlvbi9qc29uIjphLmpzb258fGEuamF2YXNjcmlwdCwiYXBwbGljYXRpb24veG1sIjphLnhtbCwidGV4dC94bWwiOmEueG1sLCJ0ZXh0L2h0bWwiOmEuaHRtbCwidGV4dC9jc3MiOmEuY3NzLCJ0ZXh0L3BsYWluIjphLnBsYWlufSxvPXsiYXBwbGljYXRpb24vanNvbiI6ITAsImFwcGxpY2F0aW9uL3htbCI6ITB9O2Z1bmN0aW9uIHMoZCl7dmFyIHA9ZC5yZXBsYWNlKC9eW2Etel0rXC8vLCIiKSxmPSJcXHcrLyg/OltcXHcuLV0rXFwrKSsiK3ArIig/IVsrXFx3Li1dKSI7cmV0dXJuIig/OiIrZCsifCIrZisiKSJ9dmFyIGw7Zm9yKHZhciB1IGluIGkpaWYoaVt1XSl7bD1sfHx7fTt2YXIgYz1vW3VdP3ModSk6dTtsW3UucmVwbGFjZSgvXC8vZywiLSIpXT17cGF0dGVybjpSZWdFeHAoIigiKy9jb250ZW50LXR5cGU6XHMqLy5zb3VyY2UrYysvKD86KD86XHJcbj98XG4pW1x3LV0uKikqKD86XHIoPzpcbnwoPyFcbikpfFxuKS8uc291cmNlKyIpIisvW14gXHRcdy1dW1xzXFNdKi8uc291cmNlLCJpIiksbG9va2JlaGluZDohMCxpbnNpZGU6aVt1XX19bCYmbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJodHRwIiwiaGVhZGVyIixsKX0pKHQpfXJldHVybiBZY312YXIgS2MsSVQ7ZnVuY3Rpb24gaTUoKXtpZihJVClyZXR1cm4gS2M7SVQ9MSxLYz1lLGUuZGlzcGxheU5hbWU9ImljaGlnb2phbSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaWNoaWdvamFtPXtjb21tZW50Oi8oPzpcQid8UkVNKSg/OlteXG5ccl0qKS9pLHN0cmluZzp7cGF0dGVybjovIig/OiIifFshIyQlJicoKSosXC86Ozw9Pj9eXHcgK1wtLl0pKiIvLGdyZWVkeTohMH0sbnVtYmVyOi9cQiNbMC05QS1GXSt8XEJgWzAxXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86RVsrLV0/XGQrKT8vaSxrZXl3b3JkOi9cYig/OkJFRVB8QlBTfENBU0V8Q0xFQVJ8Q0xLfENMT3xDTFB8Q0xTfENMVHxDTFZ8Q09OVHxDT1BZfEVMU0V8RU5EfEZJTEV8RklMRVN8Rk9SfEdPU1VCfEdPVE98R1NCfElGfElOUFVUfEtCRHxMRUR8TEVUfExJU1R8TE9BRHxMT0NBVEV8TFJVTnxORVd8TkVYVHxPVVR8UExBWXxQT0tFfFBSSU5UfFBXTXxSRU18UkVOVU18UkVTRVR8UkVUVVJOfFJJR0hUfFJUTnxSVU58U0FWRXxTQ1JPTEx8U0xFRVB8U1JORHxTVEVQfFNUT1B8U1VCfFRFTVBPfFRIRU58VE98VUFSVHxWSURFT3xXQUlUKSg/OlwkfFxiKS9pLGZ1bmN0aW9uOi9cYig/OkFCU3xBTkF8QVNDfEJJTnxCVE58REVDfEVORHxGUkVFfEhFTFB8SEVYfEkyQ1J8STJDV3xJTnxJTktFWXxMRU58TElORXxQRUVLfFJORHxTQ1J8U09VTkR8U1RSfFRJQ0t8VVNSfFZFUnxWUEVFS3xaRVIpKD86XCR8XGIpL2ksbGFiZWw6Lyg/OlxCQFxTKykvLG9wZXJhdG9yOi88Wz0+XT98Pj0/fFx8XHx8JiZ8WytcLSpcLz18Jl5+IV18XGIoPzpBTkR8Tk9UfE9SKVxiL2kscHVuY3R1YXRpb246L1tcWyw7OigpXF1dL319cmV0dXJuIEtjfXZhciBYYyxOVDtmdW5jdGlvbiBvNSgpe2lmKE5UKXJldHVybiBYYztOVD0xLFhjPWUsZS5kaXNwbGF5TmFtZT0iaWNvbiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaWNvbj17Y29tbWVudDovIy4qLyxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/Oig/IVwxKVteXFxcclxuX118XFwufF8oPyFcMSkoPzpcclxufFtcc1xTXSkpKlwxLyxncmVlZHk6ITB9LG51bWJlcjovXGIoPzpcZCtyW2EtelxkXSt8XGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/KVxifFwuXGQrXGIvaSwiYnVpbHRpbi1rZXl3b3JkIjp7cGF0dGVybjovJig/OmFsbG9jYXRlZHxhc2NpaXxjbG9ja3xjb2xsZWN0aW9uc3xjc2V0fGN1cnJlbnR8ZGF0ZXxkYXRlbGluZXxkaWdpdHN8ZHVtcHxlfGVycm9yKD86bnVtYmVyfHRleHR8dmFsdWUpP3xlcnJvdXR8ZmFpbHxmZWF0dXJlc3xmaWxlfGhvc3R8aW5wdXR8bGNhc2V8bGV0dGVyc3xsZXZlbHxsaW5lfG1haW58bnVsbHxvdXRwdXR8cGhpfHBpfHBvc3xwcm9nbmFtZXxyYW5kb218cmVnaW9uc3xzb3VyY2V8c3RvcmFnZXxzdWJqZWN0fHRpbWV8dHJhY2V8dWNhc2V8dmVyc2lvbilcYi8sYWxpYXM6InZhcmlhYmxlIn0sZGlyZWN0aXZlOntwYXR0ZXJuOi9cJFx3Ky8sYWxpYXM6ImJ1aWx0aW4ifSxrZXl3b3JkOi9cYig/OmJyZWFrfGJ5fGNhc2V8Y3JlYXRlfGRlZmF1bHR8ZG98ZWxzZXxlbmR8ZXZlcnl8ZmFpbHxnbG9iYWx8aWZ8aW5pdGlhbHxpbnZvY2FibGV8bGlua3xsb2NhbHxuZXh0fG5vdHxvZnxwcm9jZWR1cmV8cmVjb3JkfHJlcGVhdHxyZXR1cm58c3RhdGljfHN1c3BlbmR8dGhlbnx0b3x1bnRpbHx3aGlsZSlcYi8sZnVuY3Rpb246L1xiKD8hXGQpXHcrKD89XHMqWyh7XXxccyohXHMqXFspLyxvcGVyYXRvcjovWystXTooPyE9KXwoPzpbXC8/QF4lJl18XCtcKz98LS0/fD09Pz0/fH49PT89P3xcKlwqP3xcfFx8XHw/fDwoPzotPj98PD89Pyl8Pj4/PT8pKD86Oj0pP3w6KD86PTo/KT98WyEuXFx8fl0vLHB1bmN0dWF0aW9uOi9bXFtcXSgpe30sO10vfX1yZXR1cm4gWGN9dmFyIFpjLENUO2Z1bmN0aW9uIHM1KCl7aWYoQ1QpcmV0dXJuIFpjO0NUPTEsWmM9ZSxlLmRpc3BsYXlOYW1lPSJpY3VNZXNzYWdlRm9ybWF0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7ZnVuY3Rpb24gcih1LGMpe3JldHVybiBjPD0wPy9bXS8uc291cmNlOnUucmVwbGFjZSgvPFNFTEY+L2csZnVuY3Rpb24oKXtyZXR1cm4gcih1LGMtMSl9KX12YXIgYT0vJ1t7fTo9LF0oPzpbXiddfCcnKSonKD8hJykvLGk9e3BhdHRlcm46LycnLyxncmVlZHk6ITAsYWxpYXM6Im9wZXJhdG9yIn0sbz17cGF0dGVybjphLGdyZWVkeTohMCxpbnNpZGU6e2VzY2FwZTppfX0scz1yKC9ceyg/Oltee30nXXwnKD8hW3t9LCddKXwnJ3w8U1RSPnw8U0VMRj4pKlx9Ly5zb3VyY2UucmVwbGFjZSgvPFNUUj4vZyxmdW5jdGlvbigpe3JldHVybiBhLnNvdXJjZX0pLDgpLGw9e3BhdHRlcm46UmVnRXhwKHMpLGluc2lkZTp7bWVzc2FnZTp7cGF0dGVybjovXihceylbXHNcU10rKD89XH0kKS8sbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH0sIm1lc3NhZ2UtZGVsaW1pdGVyIjp7cGF0dGVybjovLi8sYWxpYXM6InB1bmN0dWF0aW9uIn19fTtuLmxhbmd1YWdlc1siaWN1LW1lc3NhZ2UtZm9ybWF0Il09e2FyZ3VtZW50OntwYXR0ZXJuOlJlZ0V4cChzKSxncmVlZHk6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi9eKFx7KVtcc1xTXSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImFyZ3VtZW50LW5hbWUiOntwYXR0ZXJuOi9eKFxzKilbXnt9Oj0sXHNdKy8sbG9va2JlaGluZDohMH0sImNob2ljZS1zdHlsZSI6e3BhdHRlcm46L14oXHMqLFxzKmNob2ljZVxzKixccyopXFMoPzpbXHNcU10qXFMpPy8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cfC8scmFuZ2U6e3BhdHRlcm46L14oXHMqKVsrLV0/KD86XGQrKD86XC5cZCopP3xcdTIyMWUpXHMqWzwjXHUyMjY0XS8sbG9va2JlaGluZDohMCxpbnNpZGU6e29wZXJhdG9yOi9bPCNcdTIyNjRdLyxudW1iZXI6L1xTKy99fSxyZXN0Om51bGx9fSwicGx1cmFsLXN0eWxlIjp7cGF0dGVybjovXihccyosXHMqKD86cGx1cmFsfHNlbGVjdG9yZGluYWwpXHMqLFxzKilcUyg/Oltcc1xTXSpcUyk/Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp7b2Zmc2V0Oi9eb2Zmc2V0OlxzKlxkKy8sIm5lc3RlZC1tZXNzYWdlIjpsLHNlbGVjdG9yOntwYXR0ZXJuOi89XGQrfFtee306PSxcc10rLyxpbnNpZGU6e2tleXdvcmQ6L14oPzpmZXd8bWFueXxvbmV8b3RoZXJ8dHdvfHplcm8pJC99fX19LCJzZWxlY3Qtc3R5bGUiOntwYXR0ZXJuOi9eKFxzKixccypzZWxlY3RccyosXHMqKVxTKD86W1xzXFNdKlxTKT8vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsibmVzdGVkLW1lc3NhZ2UiOmwsc2VsZWN0b3I6e3BhdHRlcm46L1tee306PSxcc10rLyxpbnNpZGU6e2tleXdvcmQ6L15vdGhlciQvfX19fSxrZXl3b3JkOi9cYig/OmNob2ljZXxwbHVyYWx8c2VsZWN0fHNlbGVjdG9yZGluYWwpXGIvLCJhcmctdHlwZSI6e3BhdHRlcm46L1xiKD86ZGF0ZXxkdXJhdGlvbnxudW1iZXJ8b3JkaW5hbHxzcGVsbG91dHx0aW1lKVxiLyxhbGlhczoia2V5d29yZCJ9LCJhcmctc2tlbGV0b24iOntwYXR0ZXJuOi8oLFxzKik6Oltee306PSxcc10rLyxsb29rYmVoaW5kOiEwfSwiYXJnLXN0eWxlIjp7cGF0dGVybjovKCxccyopKD86Y3VycmVuY3l8ZnVsbHxpbnRlZ2VyfGxvbmd8bWVkaXVtfHBlcmNlbnR8c2hvcnQpKD89XHMqJCkvLGxvb2tiZWhpbmQ6ITB9LCJhcmctc3R5bGUtdGV4dCI6e3BhdHRlcm46UmVnRXhwKC8oXlxzKixccyooPz1cUykpLy5zb3VyY2UrcigvKD86W157fSddfCdbXiddKid8XHsoPzo8U0VMRj4pP1x9KSsvLnNvdXJjZSw4KSsiJCIpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LHB1bmN0dWF0aW9uOi8sL319LCJhcmd1bWVudC1kZWxpbWl0ZXIiOntwYXR0ZXJuOi8uLyxhbGlhczoib3BlcmF0b3IifX19LGVzY2FwZTppLHN0cmluZzpvfSxsLmluc2lkZS5tZXNzYWdlLmluc2lkZT1uLmxhbmd1YWdlc1siaWN1LW1lc3NhZ2UtZm9ybWF0Il0sbi5sYW5ndWFnZXNbImljdS1tZXNzYWdlLWZvcm1hdCJdLmFyZ3VtZW50Lmluc2lkZS5jb250ZW50Lmluc2lkZVsiY2hvaWNlLXN0eWxlIl0uaW5zaWRlLnJlc3Q9bi5sYW5ndWFnZXNbImljdS1tZXNzYWdlLWZvcm1hdCJdfSkodCl9cmV0dXJuIFpjfXZhciBRYyxPVDtmdW5jdGlvbiBsNSgpe2lmKE9UKXJldHVybiBRYztPVD0xO3ZhciBlPURiKCk7UWM9dCx0LmRpc3BsYXlOYW1lPSJpZHJpcyIsdC5hbGlhc2VzPVsiaWRyIl07ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLmlkcmlzPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiaGFza2VsbCIse2NvbW1lbnQ6e3BhdHRlcm46Lyg/Oig/Oi0tfFx8XHxcfCkuKiR8XHstW1xzXFNdKj8tXH0pL219LGtleXdvcmQ6L1xiKD86VHlwZXxjYXNlfGNsYXNzfGNvZGF0YXxjb25zdHJ1Y3Rvcnxjb3JlY29yZHxkYXRhfGRvfGRzbHxlbHNlfGV4cG9ydHxpZnxpbXBsZW1lbnRhdGlvbnxpbXBsaWNpdHxpbXBvcnR8aW1wb3NzaWJsZXxpbnxpbmZpeHxpbmZpeGx8aW5maXhyfGluc3RhbmNlfGludGVyZmFjZXxsZXR8bW9kdWxlfG11dHVhbHxuYW1lc3BhY2V8b2Z8cGFyYW1ldGVyc3xwYXJ0aWFsfHBvc3R1bGF0ZXxwcml2YXRlfHByb29mfHB1YmxpY3xxdW90ZUdvYWx8cmVjb3JkfHJld3JpdGV8c3ludGF4fHRoZW58dG90YWx8dXNpbmd8d2hlcmV8d2l0aClcYi8sYnVpbHRpbjp2b2lkIDB9KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImlkcmlzIiwia2V5d29yZCIseyJpbXBvcnQtc3RhdGVtZW50Ijp7cGF0dGVybjovKF5ccyppbXBvcnRccyspKD86W0EtWl1bXHcnXSopKD86XC5bQS1aXVtcdyddKikqL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fX0pLG4ubGFuZ3VhZ2VzLmlkcj1uLmxhbmd1YWdlcy5pZHJpc31yZXR1cm4gUWN9dmFyIEpjLExUO2Z1bmN0aW9uIHU1KCl7aWYoTFQpcmV0dXJuIEpjO0xUPTEsSmM9ZSxlLmRpc3BsYXlOYW1lPSJpZWNzdCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaWVjc3Q9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj8oPzpcKlwvfCQpfFwoXCpbXHNcU10qPyg/OlwqXCl8JCl8XHtbXHNcU10qPyg/Olx9fCQpKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcOl0pXC9cLy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxrZXl3b3JkOlsvXGIoPzpFTkRfKT8oPzpQUk9HUkFNfENPTkZJR1VSQVRJT058SU5URVJGQUNFfEZVTkNUSU9OX0JMT0NLfEZVTkNUSU9OfEFDVElPTnxUUkFOU0lUSU9OfFRZUEV8U1RSVUNUfCg/OklOSVRJQUxfKT9TVEVQfE5BTUVTUEFDRXxMSUJSQVJZfENIQU5ORUx8Rk9MREVSfFJFU09VUkNFfFZBUl8oPzpBQ0NFU1N8Q09ORklHfEVYVEVSTkFMfEdMT0JBTHxJTlBVVHxJTl9PVVR8T1VUUFVUfFRFTVApfFZBUnxNRVRIT0R8UFJPUEVSVFkpXGIvaSwvXGIoPzpBVHxCWXwoPzpFTkRfKT8oPzpDQVNFfEZPUnxJRnxSRVBFQVR8V0hJTEUpfENPTlNUQU5UfENPTlRJTlVFfERPfEVMU0V8RUxTSUZ8RVhJVHxFWFRFTkRTfEZST018R0VUfEdPVE98SU1QTEVNRU5UU3xKTVB8Tk9OX1JFVEFJTnxPRnxQUklWQVRFfFBST1RFQ1RFRHxQVUJMSUN8UkVUQUlOfFJFVFVSTnxTRVR8VEFTS3xUSEVOfFRPfFVOVElMfFVTSU5HfFdJVEh8X19DQVRDSHxfX0VORFRSWXxfX0ZJTkFMTFl8X19UUlkpXGIvXSwiY2xhc3MtbmFtZSI6L1xiKD86QU5ZfEFSUkFZfEJPT0x8QllURXxVPyg/OkR8THxTKT9JTlR8KD86RHxMKT9XT1JEfERBVEUoPzpfQU5EX1RJTUUpP3xEVHxMP1JFQUx8UE9JTlRFUnxTVFJJTkd8VElNRSg/Ol9PRl9EQVkpP3xUT0QpXGIvLGFkZHJlc3M6e3BhdHRlcm46LyVbSVFNXVtYQldETF1bXGQuXSp8JVtJUV1bXGQuXSovLGFsaWFzOiJzeW1ib2wifSxudW1iZXI6L1xiKD86MTYjW1xkYS1mXSt8MiNbMDFfXSt8MHhbXGRhLWZdKylcYnxcYig/OkR8RFR8VHxUT0QpI1tcZF9zaG1kOl0qfFxiW0EtWl0qI1tcZC4sX10qfCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/L2ksYm9vbGVhbjovXGIoPzpGQUxTRXxOVUxMfFRSVUUpXGIvLG9wZXJhdG9yOi9TP1I/Oj89Pj98JiY/fFwqXCo/fDxbPT5dP3w+PT98Wy06Xi8rI118XGIoPzpBTkR8RVF8RVhQVHxHRXxHVHxMRXxMVHxNT0R8TkV8Tk9UfE9SfFhPUilcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2kscHVuY3R1YXRpb246L1soKVtcXS4sO10vfX1yZXR1cm4gSmN9dmFyIGVkLERUO2Z1bmN0aW9uIGM1KCl7aWYoRFQpcmV0dXJuIGVkO0RUPTEsZWQ9ZSxlLmRpc3BsYXlOYW1lPSJpZ25vcmUiLGUuYWxpYXNlcz1bImdpdGlnbm9yZSIsImhnaWdub3JlIiwibnBtaWdub3JlIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7bi5sYW5ndWFnZXMuaWdub3JlPXtjb21tZW50Oi9eIy4qL20sZW50cnk6e3BhdHRlcm46L1xTKD86LiooPzooPzpcXCApfFxTKSk/LyxhbGlhczoic3RyaW5nIixpbnNpZGU6e29wZXJhdG9yOi9eIXxcKlwqP3xcPy8scmVnZXg6e3BhdHRlcm46LyhefFteXFxdKVxbW15cW1xdXSpcXS8sbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1wvL319fSxuLmxhbmd1YWdlcy5naXRpZ25vcmU9bi5sYW5ndWFnZXMuaWdub3JlLG4ubGFuZ3VhZ2VzLmhnaWdub3JlPW4ubGFuZ3VhZ2VzLmlnbm9yZSxuLmxhbmd1YWdlcy5ucG1pZ25vcmU9bi5sYW5ndWFnZXMuaWdub3JlfSkodCl9cmV0dXJuIGVkfXZhciB0ZCxNVDtmdW5jdGlvbiBkNSgpe2lmKE1UKXJldHVybiB0ZDtNVD0xLHRkPWUsZS5kaXNwbGF5TmFtZT0iaW5mb3JtNyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaW5mb3JtNz17c3RyaW5nOntwYXR0ZXJuOi8iW14iXSoiLyxpbnNpZGU6e3N1YnN0aXR1dGlvbjp7cGF0dGVybjovXFtbXlxbXF1dK1xdLyxpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXFt8XF0vLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX19fSxjb21tZW50OntwYXR0ZXJuOi9cW1teXFtcXV0rXF0vLGdyZWVkeTohMH0sdGl0bGU6e3BhdHRlcm46L15bIFx0XSooPzpib29rfGNoYXB0ZXJ8cGFydCg/ISBvZil8c2VjdGlvbnx0YWJsZXx2b2x1bWUpXGIuKy9pbSxhbGlhczoiaW1wb3J0YW50In0sbnVtYmVyOntwYXR0ZXJuOi8oXnxbXi1dKSg/OlxiXGQrKD86XC5cZCspPyg/OlxeXGQrKT8oPzooPyFcZClcdyspP3xcYig/OmVpZ2h0fGVsZXZlbnxmaXZlfGZvdXJ8bmluZXxvbmV8c2V2ZW58c2l4fHRlbnx0aHJlZXx0d2VsdmV8dHdvKSlcYig/IS0pL2ksbG9va2JlaGluZDohMH0sdmVyYjp7cGF0dGVybjovKF58W14tXSlcYig/OmFuc3dlcmluZ3xhcHBseWluZyB0b3xhcmV8YXNraW5nfGF0dGFja2luZ3xiZSg/OmluZyk/fGJ1cm5pbmd8YnV5aW5nfGNhbGxlZHxjYXJyaWVzfGNhcnJ5KD8hIG91dCl8Y2Fycnlpbmd8Y2xpbWJpbmd8Y2xvc2luZ3xjb25jZWFsKD86aW5nfHMpP3xjb25zdWx0aW5nfGNvbnRhaW4oPzppbmd8cyk/fGN1dHRpbmd8ZHJpbmtpbmd8ZHJvcHBpbmd8ZWF0aW5nfGVuY2xvcyg/OmVzP3xpbmcpfGVudGVyaW5nfGV4YW1pbmluZ3xleGl0aW5nfGdldHRpbmd8Z2l2aW5nfGdvaW5nfGhhKD86c3x2ZXx2aW5nKXxob2xkKD86aW5nfHMpP3xpbXBsKD86aWVzfHkpfGluY29ycG9yYXQoPzplcz98aW5nKXxpbnNlcnRpbmd8aXN8anVtcGluZ3xraXNzaW5nfGxpc3RlbmluZ3xsb2NraW5nfGxvb2tpbmd8bWVhbig/OmluZ3xzKT98b3BlbmluZ3xwcm92aWQoPzplcz98aW5nKXxwdWxsaW5nfHB1c2hpbmd8cHV0dGluZ3xyZWxhdCg/OmVzP3xpbmcpfHJlbW92aW5nfHNlYXJjaGluZ3xzZWUoPzppbmd8cyk/fHNldHRpbmd8c2hvd2luZ3xzaW5naW5nfHNsZWVwaW5nfHNtZWxsaW5nfHNxdWVlemluZ3xzdXBwb3J0KD86aW5nfHMpP3xzd2VhcmluZ3xzd2l0Y2hpbmd8dGFraW5nfHRhc3Rpbmd8dGVsbGluZ3x0aGlua2luZ3x0aHJvd2luZ3x0b3VjaGluZ3x0dXJuaW5nfHR5aW5nfHVubG9jayg/OmluZ3xzKT98dmFyKD86aWVzfHl8eWluZyl8d2FpdGluZ3x3YWtpbmd8d2F2aW5nfHdlYXIoPzppbmd8cyk/KVxiKD8hLSkvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LGtleXdvcmQ6e3BhdHRlcm46LyhefFteLV0pXGIoPzphZnRlcnxiZWZvcmV8Y2Fycnkgb3V0fGNoZWNrfGNvbnRpbnVlIHRoZSBhY3Rpb258ZGVmaW5pdGlvbig/PSAqOil8ZG8gbm90aGluZ3xlbHNlfGVuZCAoPzppZnx0aGUgc3Rvcnl8dW5sZXNzKXxldmVyeSB0dXJufGlmfGluY2x1ZGV8aW5zdGVhZCg/OiBvZik/fGxldHxtb3ZlfG5vfG5vd3xvdGhlcndpc2V8cmVwZWF0fHJlcG9ydHxyZXN1bWUgdGhlIHN0b3J5fHJ1bGUgZm9yfHJ1bm5pbmcgdGhyb3VnaHxzYXkoPzppbmcpP3xzdG9wIHRoZSBhY3Rpb258dGVzdHx0cnkoPzppbmcpP3x1bmRlcnN0YW5kfHVubGVzc3x1c2V8d2hlbnx3aGlsZXx5ZXMpXGIoPyEtKS9pLGxvb2tiZWhpbmQ6ITB9LHByb3BlcnR5OntwYXR0ZXJuOi8oXnxbXi1dKVxiKD86YWRqYWNlbnQoPyEgdG8pfGNhcnJpZWR8Y2xvc2VkfGNvbmNlYWxlZHxjb250YWluZWR8ZGFya3xkZXNjcmliZWR8ZWRpYmxlfGVtcHR5fGVuY2xvc2VkfGVudGVyYWJsZXxldmVufGZlbWFsZXxmaXhlZCBpbiBwbGFjZXxmdWxsfGhhbmRsZWR8aGVsZHxpbXByb3Blci1uYW1lZHxpbmNvcnBvcmF0ZWR8aW5lZGlibGV8aW52aXNpYmxlfGxpZ2h0ZWR8bGl0fGxvY2soPzphYmxlfGVkKXxtYWxlfG1hcmtlZCBmb3IgbGlzdGluZ3xtZW50aW9uZWR8bmVnYXRpdmV8bmV1dGVyfG5vbi0oPzplbXB0eXxmdWxsfHJlY3VycmluZyl8b2RkfG9wYXF1ZXxvcGVuKD86YWJsZSk/fHBsdXJhbC1uYW1lZHxwb3J0YWJsZXxwb3NpdGl2ZXxwcml2YXRlbHktbmFtZWR8cHJvcGVyLW5hbWVkfHByb3ZpZGVkfHB1YmxpY2FsbHktbmFtZWR8cHVzaGFibGUgYmV0d2VlbiByb29tc3xyZWN1cnJpbmd8cmVsYXRlZHxydWJiaW5nfHNjZW5lcnl8c2VlbnxzaW5ndWxhci1uYW1lZHxzdXBwb3J0ZWR8c3dpbmdpbmd8c3dpdGNoKD86YWJsZXxlZCg/OiBvZmZ8IG9uKT8pfHRvdWNoKD86YWJsZXxlZCl8dHJhbnNwYXJlbnR8dW5jb25jZWFsZWR8dW5kZXNjcmliZWR8dW5saXR8dW5sb2NrZWR8dW5tYXJrZWQgZm9yIGxpc3Rpbmd8dW5tZW50aW9uZWR8dW5vcGVuYWJsZXx1bnRvdWNoYWJsZXx1bnZpc2l0ZWR8dmFyaWFibGV8dmlzaWJsZXx2aXNpdGVkfHdlYXJhYmxlfHdvcm4pXGIoPyEtKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN5bWJvbCJ9LHBvc2l0aW9uOntwYXR0ZXJuOi8oXnxbXi1dKVxiKD86YWJvdmV8YWRqYWNlbnQgdG98YmFjayBzaWRlIG9mfGJlbG93fGJldHdlZW58ZG93bnxlYXN0fGV2ZXJ5d2hlcmV8ZnJvbnQgc2lkZXxoZXJlfGlufGluc2lkZSg/OiBmcm9tKT98bm9ydGgoPzplYXN0fHdlc3QpP3xub3doZXJlfG9uKD86IHRvcCBvZik/fG90aGVyIHNpZGV8b3V0c2lkZSg/OiBmcm9tKT98cGFydHM/IG9mfHJlZ2lvbmFsbHkgaW58c291dGgoPzplYXN0fHdlc3QpP3x0aHJvdWdofHVwfHdlc3R8d2l0aGluKVxiKD8hLSkvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sdHlwZTp7cGF0dGVybjovKF58W14tXSlcYig/OmFjdGlvbnM/fGFjdGl2aXQoPzppZXN8eSl8YWN0b3JzP3xhbmltYWxzP3xiYWNrZHJvcHM/fGNvbnRhaW5lcnM/fGRldmljZXM/fGRpcmVjdGlvbnM/fGRvb3JzP3xob2xkZXJzP3xraW5kcz98bGlzdHM/fG1bYWVdbnxub2JvZHl8bm90aGluZ3xub3Vucz98bnVtYmVycz98b2JqZWN0cz98cGVvcGxlfHBlcnNvbnM/fHBsYXllcig/OidzIGhvbGRhbGwpP3xyZWdpb25zP3xyZWxhdGlvbnM/fHJvb21zP3xydWxlKD86Ym9vayk/cz98c2NlbmVzP3xzb21lb25lfHNvbWV0aGluZ3xzdXBwb3J0ZXJzP3x0YWJsZXM/fHRleHRzP3x0aGluZ3M/fHRpbWV8dmVoaWNsZXM/fHdvbVthZV1uKVxiKD8hLSkvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LHB1bmN0dWF0aW9uOi9bLiw6Oygpe31dL30sdC5sYW5ndWFnZXMuaW5mb3JtNy5zdHJpbmcuaW5zaWRlLnN1YnN0aXR1dGlvbi5pbnNpZGUucmVzdD10Lmxhbmd1YWdlcy5pbmZvcm03LHQubGFuZ3VhZ2VzLmluZm9ybTcuc3RyaW5nLmluc2lkZS5zdWJzdGl0dXRpb24uaW5zaWRlLnJlc3QudGV4dD17cGF0dGVybjovXFMoPzpccypcUykqLyxhbGlhczoiY29tbWVudCJ9fXJldHVybiB0ZH12YXIgbmQsUFQ7ZnVuY3Rpb24gcDUoKXtpZihQVClyZXR1cm4gbmQ7UFQ9MSxuZD1lLGUuZGlzcGxheU5hbWU9ImluaSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuaW5pPXtjb21tZW50OntwYXR0ZXJuOi8oXlsgXGZcdFx2XSopWyM7XVteXG5ccl0qL20sbG9va2JlaGluZDohMH0sc2VjdGlvbjp7cGF0dGVybjovKF5bIFxmXHRcdl0qKVxbW15cblxyXF1dKlxdPy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsic2VjdGlvbi1uYW1lIjp7cGF0dGVybjovKF5cW1sgXGZcdFx2XSopW14gXGZcdFx2XF1dKyg/OlsgXGZcdFx2XStbXiBcZlx0XHZcXV0rKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InNlbGVjdG9yIn0scHVuY3R1YXRpb246L1xbfFxdL319LGtleTp7cGF0dGVybjovKF5bIFxmXHRcdl0qKVteIFxmXG5cclx0XHY9XSsoPzpbIFxmXHRcdl0rW14gXGZcblxyXHRcdj1dKykqKD89WyBcZlx0XHZdKj0pL20sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci1uYW1lIn0sdmFsdWU6e3BhdHRlcm46Lyg9WyBcZlx0XHZdKilbXiBcZlxuXHJcdFx2XSsoPzpbIFxmXHRcdl0rW14gXGZcblxyXHRcdl0rKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUiLGluc2lkZTp7ImlubmVyLXZhbHVlIjp7cGF0dGVybjovXigifCcpLisoPz1cMSQpLyxsb29rYmVoaW5kOiEwfX19LHB1bmN0dWF0aW9uOi89L319cmV0dXJuIG5kfXZhciByZCxGVDtmdW5jdGlvbiBmNSgpe2lmKEZUKXJldHVybiByZDtGVD0xLHJkPWUsZS5kaXNwbGF5TmFtZT0iaW8iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmlvPXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj8oPzpcKlwvfCQpfFwvXC8uKnwjLiopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sInRyaXBsZS1xdW90ZWQtc3RyaW5nIjp7cGF0dGVybjovIiIiKD86XFxbXHNcU118KD8hIiIiKVteXFxdKSoiIiIvLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFxcclxuIl0pKiIvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphY3RpdmF0ZXxhY3RpdmVDb3JvQ291bnR8YXNTdHJpbmd8YmxvY2t8YnJlYWt8Y2FsbHxjYXRjaHxjbG9uZXxjb2xsZWN0R2FyYmFnZXxjb21waWxlU3RyaW5nfGNvbnRpbnVlfGRvfGRvRmlsZXxkb01lc3NhZ2V8ZG9TdHJpbmd8ZWxzZXxlbHNlaWZ8ZXhpdHxmb3J8Zm9yZWFjaHxmb3J3YXJkfGdldEVudmlyb25tZW50VmFyaWFibGV8Z2V0U2xvdHxoYXNTbG90fGlmfGlmRmFsc2V8aWZOaWx8aWZOaWxFdmFsfGlmVHJ1ZXxpc0FjdGl2ZXxpc05pbHxpc1Jlc3VtYWJsZXxsaXN0fG1lc3NhZ2V8bWV0aG9kfHBhcmVudHxwYXNzfHBhdXNlfHBlcmZvcm18cGVyZm9ybVdpdGhBcmdMaXN0fHByaW50fHByaW50bG58cHJvdG98cmFpc2V8cmFpc2VSZXN1bWFibGV8cmVtb3ZlU2xvdHxyZXNlbmR8cmVzdW1lfHNjaGVkdWxlclNsZWVwU2Vjb25kc3xzZWxmfHNlbmRlcnxzZXRTY2hlZHVsZXJTbGVlcFNlY29uZHN8c2V0U2xvdHxzaGFsbG93Q29weXxzbG90TmFtZXN8c3VwZXJ8c3lzdGVtfHRoZW58dGhpc0Jsb2NrfHRoaXNDb250ZXh0fHRyeXx0eXBlfHVuaXF1ZUlkfHVwZGF0ZVNsb3R8d2FpdHx3aGlsZXx3cml0ZXx5aWVsZClcYi8sYnVpbHRpbjovXGIoPzpBcnJheXxBdWRpb0RldmljZXxBdWRpb01peGVyfEJpZ051bXxCbG9ja3xCb3h8QnVmZmVyfENGdW5jdGlvbnxDR0l8Q29sb3J8Q3Vyc2VzfERCTXxETlNSZXNvbHZlcnxET0Nvbm5lY3Rpb258RE9Qcm94eXxET1NlcnZlcnxEYXRlfERpcmVjdG9yeXxEdXJhdGlvbnxEeW5MaWJ8RXJyb3J8RXhjZXB0aW9ufEZGVHxGaWxlfEZubWF0Y2h8Rm9udHxGdXR1cmV8R0x8R0xFfEdMU2Npc3NvcnxHTFV8R0xVQ3lsaW5kZXJ8R0xVUXVhZHJpY3xHTFVTcGhlcmV8R0xVVHxIb3N0fEltYWdlfEltcG9ydGVyfExpbmtMaXN0fExpc3R8TG9iYnl8TG9jYWxzfE1ENXxNUDNEZWNvZGVyfE1QM0VuY29kZXJ8TWFwfE1lc3NhZ2V8TW92aWV8Tm90aWZpY2F0aW9ufE51bWJlcnxPYmplY3R8T3BlbkdMfFBvaW50fFByb3Rvc3xSYW5kb218UmVnZXh8U0dNTHxTR01MRWxlbWVudHxTR01MUGFyc2VyfFNRTGl0ZXxTZXF1ZW5jZXxTZXJ2ZXJ8U2hvd01lc3NhZ2V8U2xlZXB5Q2F0fFNsZWVweUNhdEN1cnNvcnxTb2NrZXR8U29ja2V0TWFuYWdlcnxTb3VuZHxTb3VwfFN0b3JlfFN0cmluZ3xUcmVlfFVEUFNlbmRlcnxVUERSZWNlaXZlcnxVUkx8VXNlcnxXYXJuaW5nfFdlYWtMaW5rKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfG5pbHx0cnVlKVxiLyxudW1iZXI6L1xiMHhbXGRhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmUtP1xkKyk/L2ksb3BlcmF0b3I6L1s9ISovJStcLV4mfF09fD4+Pz0/fDw8Pz0/fDo/Oj89fFwrXCs/fC0tP3xcKlwqP3xcL1wvP3wlfFx8XHw/fCYmP3xcYig/OmFuZHxub3R8b3J8cmV0dXJuKVxifEBAP3xcP1w/P3xcLlwuLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS99fXJldHVybiByZH12YXIgYWQsVVQ7ZnVuY3Rpb24gbTUoKXtpZihVVClyZXR1cm4gYWQ7VVQ9MSxhZD1lLGUuZGlzcGxheU5hbWU9ImoiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmo9e2NvbW1lbnQ6e3BhdHRlcm46L1xiTkJcLi4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovJyg/OicnfFteJ1xyXG5dKSonLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86KD86Q1J8TEZ8YWR2ZXJifGNvbmp1bmN0aW9ufGRlZnxkZWZpbmV8ZHlhZHxtb25hZHxub3VufHZlcmIpXGJ8KD86YXNzZXJ0fGJyZWFrfGNhc2V8Y2F0Y2hbZHRdP3xjb250aW51ZXxkb3xlbHNlfGVsc2VpZnxlbmR8ZmNhc2V8Zm9yfGZvcl9cdyt8Z290b19cdyt8aWZ8bGFiZWxfXHcrfHJldHVybnxzZWxlY3R8dGhyb3d8dHJ5fHdoaWxlfHdoaWxzdClcLikvLHZlcmI6e3BhdHRlcm46Lyg/IVxeOnw7XC58Wz0hXVsuOl0pKD86XHsoPzpcLnw6Oj8pP3xwKD86XC5cLj98Oil8Wz0hXF1dfFs8PisqXC0lJHwsI11bLjpdP3xbP15dXC4/fFs7XFtdOj98W359ImldWy46XXxbQUNlRUlqTG9yXVwufCg/OltfXC9cXHFzdXhdfF8/XGQpOikvLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOi9cYl8/KD86KD8hXGQ6KVxkKyg/OlwuXGQrKT8oPzooPzphZHxhcnxbZWpweF0pXz9cZCsoPzpcLlxkKyk/KSooPzpiXz9bXGRhLXpdKyg/OlwuW1xkYS16XSspPyk/fF9cYig/IVwuKSkvLGFkdmVyYjp7cGF0dGVybjovW359XXxbXC9cXF1cLj98W2JmTV1cLnx0Wy46XS8sYWxpYXM6ImJ1aWx0aW4ifSxvcGVyYXRvcjovWz1hXVsuOl18X1wuLyxjb25qdW5jdGlvbjp7cGF0dGVybjovJig/OlwuOj98Oik/fFsuOkBdWy46XT98WyFEXVsuOl18WztkSFRdXC58YDo/fFtcXkxTXTp8Ii8sYWxpYXM6InZhcmlhYmxlIn0scHVuY3R1YXRpb246L1soKV0vfX1yZXR1cm4gYWR9dmFyIGlkLEJUO2Z1bmN0aW9uIE1iKCl7aWYoQlQpcmV0dXJuIGlkO0JUPTEsaWQ9ZSxlLmRpc3BsYXlOYW1lPSJqYXZhIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1xiKD86YWJzdHJhY3R8YXNzZXJ0fGJvb2xlYW58YnJlYWt8Ynl0ZXxjYXNlfGNhdGNofGNoYXJ8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVmYXVsdHxkb3xkb3VibGV8ZWxzZXxlbnVtfGV4cG9ydHN8ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZsb2F0fGZvcnxnb3RvfGlmfGltcGxlbWVudHN8aW1wb3J0fGluc3RhbmNlb2Z8aW50fGludGVyZmFjZXxsb25nfG1vZHVsZXxuYXRpdmV8bmV3fG5vbi1zZWFsZWR8bnVsbHxvcGVufG9wZW5zfHBhY2thZ2V8cGVybWl0c3xwcml2YXRlfHByb3RlY3RlZHxwcm92aWRlc3xwdWJsaWN8cmVjb3JkfHJlcXVpcmVzfHJldHVybnxzZWFsZWR8c2hvcnR8c3RhdGljfHN0cmljdGZwfHN1cGVyfHN3aXRjaHxzeW5jaHJvbml6ZWR8dGhpc3x0aHJvd3x0aHJvd3N8dG98dHJhbnNpZW50fHRyYW5zaXRpdmV8dHJ5fHVzZXN8dmFyfHZvaWR8dm9sYXRpbGV8d2hpbGV8d2l0aHx5aWVsZClcYi8sYT0vKF58W15cdy5dKSg/OlthLXpdXHcqXHMqXC5ccyopKig/OltBLVpdXHcqXHMqXC5ccyopKi8uc291cmNlLGk9e3BhdHRlcm46UmVnRXhwKGErL1tBLVpdKD86W1xkX0EtWl0qW2Etel1cdyopP1xiLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntuYW1lc3BhY2U6e3BhdHRlcm46L15bYS16XVx3Kig/OlxzKlwuXHMqW2Etel1cdyopKig/OlxzKlwuKT8vLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHB1bmN0dWF0aW9uOi9cLi99fTtuLmxhbmd1YWdlcy5qYXZhPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46LyhefFteXFxdKSIoPzpcXC58W14iXFxcclxuXSkqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjpbaSx7cGF0dGVybjpSZWdFeHAoYSsvW0EtWl1cdyooPz1ccytcdytccypbOyw9KCldKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTppLmluc2lkZX1dLGtleXdvcmQ6cixmdW5jdGlvbjpbbi5sYW5ndWFnZXMuY2xpa2UuZnVuY3Rpb24se3BhdHRlcm46Lyg6OlxzKilbYS16X11cdyovLGxvb2tiZWhpbmQ6ITB9XSxudW1iZXI6L1xiMGJbMDFdWzAxX10qTD9cYnxcYjB4KD86XC5bXGRhLWZfcCstXSt8W1xkYS1mX10rKD86XC5bXGRhLWZfcCstXSspPylcYnwoPzpcYlxkW1xkX10qKD86XC5bXGRfXSopP3xcQlwuXGRbXGRfXSopKD86ZVsrLV0/XGRbXGRfXSopP1tkZmxdPy9pLG9wZXJhdG9yOntwYXR0ZXJuOi8oXnxbXi5dKSg/Ojw8PT98Pj4+Pz0/fC0+fC0tfFwrXCt8JiZ8XHxcfHw6OnxbPzp+XXxbLSsqLyUmfF4hPTw+XT0/KS9tLGxvb2tiZWhpbmQ6ITB9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhIiwic3RyaW5nIix7InRyaXBsZS1xdW90ZWQtc3RyaW5nIjp7cGF0dGVybjovIiIiWyBcdF0qW1xyXG5dKD86KD86InwiIik/KD86XFwufFteIlxcXSkpKiIiIi8sZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmcifSxjaGFyOntwYXR0ZXJuOi8nKD86XFwufFteJ1xcXHJcbl0pezEsNn0nLyxncmVlZHk6ITB9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhIiwiY2xhc3MtbmFtZSIse2Fubm90YXRpb246e3BhdHRlcm46LyhefFteLl0pQFx3Kyg/OlxzKlwuXHMqXHcrKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sZ2VuZXJpY3M6e3BhdHRlcm46LzwoPzpbXHdccywuP118Jig/ISYpfDwoPzpbXHdccywuP118Jig/ISYpfDwoPzpbXHdccywuP118Jig/ISYpfDwoPzpbXHdccywuP118Jig/ISYpKSo+KSo+KSo+KSo+LyxpbnNpZGU6eyJjbGFzcy1uYW1lIjppLGtleXdvcmQ6cixwdW5jdHVhdGlvbjovWzw+KCksLjpdLyxvcGVyYXRvcjovWz8mfF0vfX0sbmFtZXNwYWNlOntwYXR0ZXJuOlJlZ0V4cCgvKFxiKD86ZXhwb3J0c3xpbXBvcnQoPzpccytzdGF0aWMpP3xtb2R1bGV8b3BlbnxvcGVuc3xwYWNrYWdlfHByb3ZpZGVzfHJlcXVpcmVzfHRvfHRyYW5zaXRpdmV8dXNlc3x3aXRoKVxzKykoPyE8a2V5d29yZD4pW2Etel1cdyooPzpcLlthLXpdXHcqKSpcLj8vLnNvdXJjZS5yZXBsYWNlKC88a2V5d29yZD4vZyxmdW5jdGlvbigpe3JldHVybiByLnNvdXJjZX0pKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319fSl9KSh0KX1yZXR1cm4gaWR9dmFyIG9kLCRUO2Z1bmN0aW9uIEtzKCl7aWYoJFQpcmV0dXJuIG9kOyRUPTEsb2Q9ZSxlLmRpc3BsYXlOYW1lPSJqYXZhZG9jbGlrZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPW4ubGFuZ3VhZ2VzLmphdmFkb2NsaWtlPXtwYXJhbWV0ZXI6e3BhdHRlcm46LyheW1x0IF0qKD86XC97M318XCp8XC9cKlwqKVxzKkAoPzphcmd8YXJndW1lbnRzfHBhcmFtKVxzKylcdysvbSxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOntwYXR0ZXJuOi8oXltcdCBdKig/OlwvezN9fFwqfFwvXCpcKilccyp8XHspQFthLXpdW2EtekEtWi1dK1xiL20sbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1t7fV0vfTtmdW5jdGlvbiBhKG8scyl7dmFyIGw9ImRvYy1jb21tZW50Iix1PW4ubGFuZ3VhZ2VzW29dO2lmKHUpe3ZhciBjPXVbbF07aWYoIWMpe3ZhciBkPXt9O2RbbF09e3BhdHRlcm46LyhefFteXFxdKVwvXCpcKlteL11bXHNcU10qPyg/OlwqXC98JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbW1lbnQifSx1PW4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZShvLCJjb21tZW50IixkKSxjPXVbbF19aWYoYyBpbnN0YW5jZW9mIFJlZ0V4cCYmKGM9dVtsXT17cGF0dGVybjpjfSksQXJyYXkuaXNBcnJheShjKSlmb3IodmFyIHA9MCxmPWMubGVuZ3RoO3A8ZjtwKyspY1twXWluc3RhbmNlb2YgUmVnRXhwJiYoY1twXT17cGF0dGVybjpjW3BdfSkscyhjW3BdKTtlbHNlIHMoYyl9fWZ1bmN0aW9uIGkobyxzKXt0eXBlb2Ygbz09InN0cmluZyImJihvPVtvXSksby5mb3JFYWNoKGZ1bmN0aW9uKGwpe2EobCxmdW5jdGlvbih1KXt1Lmluc2lkZXx8KHUuaW5zaWRlPXt9KSx1Lmluc2lkZS5yZXN0PXN9KX0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhZGRTdXBwb3J0Iix7dmFsdWU6aX0pLHIuYWRkU3VwcG9ydChbImphdmEiLCJqYXZhc2NyaXB0IiwicGhwIl0scil9KSh0KX1yZXR1cm4gb2R9dmFyIHNkLHpUO2Z1bmN0aW9uIGc1KCl7aWYoelQpcmV0dXJuIHNkO3pUPTE7dmFyIGU9TWIoKSx0PUtzKCk7c2Q9bixuLmRpc3BsYXlOYW1lPSJqYXZhZG9jIixuLmFsaWFzZXM9W107ZnVuY3Rpb24gbihyKXtyLnJlZ2lzdGVyKGUpLHIucmVnaXN0ZXIodCksZnVuY3Rpb24oYSl7dmFyIGk9LyheKD86W1x0IF0qKD86XCpccyopKikpW14qXHNdLiokL20sbz0vI1xzKlx3Kyg/OlxzKlwoW14oKV0qXCkpPy8uc291cmNlLHM9Lyg/OlxiW2EtekEtWl1cdytccypcLlxzKikqXGJbQS1aXVx3Kig/OlxzKjxtZW0+KT98PG1lbT4vLnNvdXJjZS5yZXBsYWNlKC88bWVtPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIG99KTthLmxhbmd1YWdlcy5qYXZhZG9jPWEubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YWRvY2xpa2UiLHt9KSxhLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFkb2MiLCJrZXl3b3JkIix7cmVmZXJlbmNlOntwYXR0ZXJuOlJlZ0V4cCgvKEAoPzpleGNlcHRpb258bGlua3xsaW5rcGxhaW58c2VlfHRocm93c3x2YWx1ZSlccysoPzpcKlxzKik/KS8uc291cmNlKyIoPzoiK3MrIikiKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZnVuY3Rpb246e3BhdHRlcm46LygjXHMqKVx3Kyg/PVxzKlwoKS8sbG9va2JlaGluZDohMH0sZmllbGQ6e3BhdHRlcm46LygjXHMqKVx3Ky8sbG9va2JlaGluZDohMH0sbmFtZXNwYWNlOntwYXR0ZXJuOi9cYig/OlthLXpdXHcqXHMqXC5ccyopKy8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sImNsYXNzLW5hbWUiOi9cYltBLVpdXHcqLyxrZXl3b3JkOmEubGFuZ3VhZ2VzLmphdmEua2V5d29yZCxwdW5jdHVhdGlvbjovWyMoKVtcXSwuXS99fSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhAcGFyYW1ccyspPFtBLVpdXHcqPi8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9bLjw+XS99fSwiY29kZS1zZWN0aW9uIjpbe3BhdHRlcm46Lyhce0Bjb2RlXHMrKD8hXHMpKSg/OlteXHN7fV18XHMrKD8hW1xzfV0pfFx7KD86W157fV18XHsoPzpbXnt9XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSpcfSkqXH0pKyg/PVxzKlx9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvZGU6e3BhdHRlcm46aSxsb29rYmVoaW5kOiEwLGluc2lkZTphLmxhbmd1YWdlcy5qYXZhLGFsaWFzOiJsYW5ndWFnZS1qYXZhIn19fSx7cGF0dGVybjovKDwoY29kZXxwcmV8dHQpPig/ITxjb2RlPilccyopXFMoPzpcU3xccytcUykqPyg/PVxzKjxcL1wyPikvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntsaW5lOntwYXR0ZXJuOmksbG9va2JlaGluZDohMCxpbnNpZGU6e3RhZzphLmxhbmd1YWdlcy5tYXJrdXAudGFnLGVudGl0eTphLmxhbmd1YWdlcy5tYXJrdXAuZW50aXR5LGNvZGU6e3BhdHRlcm46Ly4rLyxpbnNpZGU6YS5sYW5ndWFnZXMuamF2YSxhbGlhczoibGFuZ3VhZ2UtamF2YSJ9fX19fV0sdGFnOmEubGFuZ3VhZ2VzLm1hcmt1cC50YWcsZW50aXR5OmEubGFuZ3VhZ2VzLm1hcmt1cC5lbnRpdHl9KSxhLmxhbmd1YWdlcy5qYXZhZG9jbGlrZS5hZGRTdXBwb3J0KCJqYXZhIixhLmxhbmd1YWdlcy5qYXZhZG9jKX0ocil9cmV0dXJuIHNkfXZhciBsZCxqVDtmdW5jdGlvbiBoNSgpe2lmKGpUKXJldHVybiBsZDtqVD0xLGxkPWUsZS5kaXNwbGF5TmFtZT0iamF2YXN0YWNrdHJhY2UiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmphdmFzdGFja3RyYWNlPXtzdW1tYXJ5OntwYXR0ZXJuOi9eKFtcdCBdKikoPzooPzpDYXVzZWQgYnk6fFN1cHByZXNzZWQ6fEV4Y2VwdGlvbiBpbiB0aHJlYWQgIlteIl0qIilbXHQgXSspP1tcdyQuXSsoPzo6LiopPyQvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDp7cGF0dGVybjovXihbXHQgXSopKD86KD86Q2F1c2VkIGJ5fFN1cHByZXNzZWQpKD89Oil8RXhjZXB0aW9uIGluIHRocmVhZCkvbSxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46L14oXHMqKSJbXiJdKiIvLGxvb2tiZWhpbmQ6ITB9LGV4Y2VwdGlvbnM6e3BhdHRlcm46L14oOj9ccyopW1x3JC5dKyg/PTp8JCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiY2xhc3MtbmFtZSI6L1tcdyRdKyQvLG5hbWVzcGFjZTovXGJbYS16XVx3KlxiLyxwdW5jdHVhdGlvbjovXC4vfX0sbWVzc2FnZTp7cGF0dGVybjovKDpccyopXFMuKi8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0scHVuY3R1YXRpb246LzovfX0sInN0YWNrLWZyYW1lIjp7cGF0dGVybjovXihbXHQgXSopYXQgKD86W1x3JC4vXXxAW1x3JC4rLV0qXC8pKyg/Ojxpbml0Pik/XChbXigpXSpcKS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOntwYXR0ZXJuOi9eKFxzKilhdCg/PSApLyxsb29rYmVoaW5kOiEwfSxzb3VyY2U6W3twYXR0ZXJuOi8oXCgpXHcrXC5cdys6XGQrKD89XCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZmlsZTovXlx3K1wuXHcrLyxwdW5jdHVhdGlvbjovOi8sImxpbmUtbnVtYmVyIjp7cGF0dGVybjovXGJcZCtcYi8sYWxpYXM6Im51bWJlciJ9fX0se3BhdHRlcm46LyhcKClbXigpXSooPz1cKSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eKD86TmF0aXZlIE1ldGhvZHxVbmtub3duIFNvdXJjZSkkL319XSwiY2xhc3MtbmFtZSI6L1tcdyRdKyg/PVwuKD86PGluaXQ+fFtcdyRdKylcKCkvLGZ1bmN0aW9uOi8oPzo8aW5pdD58W1x3JF0rKSg/PVwoKS8sImNsYXNzLWxvYWRlciI6e3BhdHRlcm46LyhccylbYS16XVx3Kig/OlwuW2Etel1cdyopKig/PVwvW1x3QCQuXSpcLykvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im5hbWVzcGFjZSIsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sbW9kdWxlOntwYXR0ZXJuOi8oW1xzL10pW2Etel1cdyooPzpcLlthLXpdXHcqKSooPzpAW1x3JC4rLV0qKT8oPz1cLykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt2ZXJzaW9uOntwYXR0ZXJuOi8oQClbXHNcU10rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxwdW5jdHVhdGlvbjovW0AuXS99fSxuYW1lc3BhY2U6e3BhdHRlcm46Lyg/OlxiW2Etel1cdypcLikrLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxwdW5jdHVhdGlvbjovWygpLy5dL319LG1vcmU6e3BhdHRlcm46L14oW1x0IF0qKVwuezN9IFxkKyBbYS16XSsoPzogW2Etel0rKSovbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuezN9LyxudW1iZXI6L1xkKy8sa2V5d29yZDovXGJbYS16XSsoPzogW2Etel0rKSpcYi99fX19cmV0dXJuIGxkfXZhciB1ZCxHVDtmdW5jdGlvbiBiNSgpe2lmKEdUKXJldHVybiB1ZDtHVD0xLHVkPWUsZS5kaXNwbGF5TmFtZT0iamV4bCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuamV4bD17c3RyaW5nOi8oWyInXSkoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLHRyYW5zZm9ybTp7cGF0dGVybjovKFx8XHMqKVthLXpBLVrQsC3Rj9CQLdCvX1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDBGRiRdW1x30LAt0Y/QkC3Qr1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDBGRiRdKi8sYWxpYXM6ImZ1bmN0aW9uIixsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjovW2EtekEtWtCwLdGP0JAt0K9fXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMEZGJF1bXHfQsC3Rj9CQLdCvXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMEZGJF0qXHMqKD89XCgpLyxudW1iZXI6L1xiXGQrKD86XC5cZCspP1xifFxCXC5cZCtcYi8sb3BlcmF0b3I6L1s8PiFdPT98LXxcK3wmJnw9PXxcfFx8P3xcL1wvP3xbPzoqXiVdLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGtleXdvcmQ6L1xiaW5cYi8scHVuY3R1YXRpb246L1t7fVtcXSgpLC5dL319cmV0dXJuIHVkfXZhciBjZCxxVDtmdW5jdGlvbiB5NSgpe2lmKHFUKXJldHVybiBjZDtxVD0xLGNkPWUsZS5kaXNwbGF5TmFtZT0iam9saWUiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmpvbGllPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtzdHJpbmc6e3BhdHRlcm46LyhefFteXFxdKSIoPzpcXFtcc1xTXXxbXiJcXF0pKiIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LygoPzpcYig/OmFzfGNvdXJpZXJ8ZW1iZWR8aW58aW5wdXRQb3J0fG91dHB1dFBvcnR8c2VydmljZSlcYnxAKVsgXHRdKilcdysvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86YXN8Y0h8Y29tcHxjb25jdXJyZW50fGNvbnN0YW50c3xjb3VyaWVyfGNzZXR8Y3NldHN8ZGVmYXVsdHxkZWZpbmV8ZWxzZXxlbWJlZHxlbWJlZGRlZHxleGVjdXRpb258ZXhpdHxleHRlbmRlcnxmb3J8Zm9yZWFjaHxmb3J3YXJkfGZyb218Z2xvYmFsfGlmfGltcG9ydHxpbnxpbmNsdWRlfGluaXR8aW5wdXRQb3J0fGluc3RhbGx8aW5zdGFuY2VvZnxpbnRlcmZhY2V8aXNfZGVmaW5lZHxsaW5rSW58bGlua091dHxtYWlufG5ld3xudWxsUHJvY2Vzc3xvdXRwdXRQb3J0fG92ZXJ8cHJpdmF0ZXxwcm92aWRlfHB1YmxpY3xzY29wZXxzZXF1ZW50aWFsfHNlcnZpY2V8c2luZ2xlfHNwYXdufHN5bmNocm9uaXplZHx0aGlzfHRocm93fHRocm93c3x0eXBlfHVuZGVmfHVudGlsfHdoaWxlfHdpdGgpXGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVsgXHRdKltAKF0pL2ksbnVtYmVyOi8oPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzplWystXT9cZCspP2w/L2ksb3BlcmF0b3I6Ly1bLT0+XT98XCtbKz1dP3w8Wzw9XT98Wz49KiFdPT98JiZ8XHxcfHxbP1wvJV5AfF0vLHB1bmN0dWF0aW9uOi9bKClbXF17fSw7LjpdLyxidWlsdGluOi9cYig/OkJ5dGV8YW55fGJvb2x8Y2hhcnxkb3VibGV8ZW51bXxmbG9hdHxpbnR8bGVuZ3RofGxvbmd8cmFuZ2VzfHJlZ2V4fHN0cmluZ3x1bmRlZmluZWR8dm9pZClcYi99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImpvbGllIiwia2V5d29yZCIse2FnZ3JlZ2F0ZXM6e3BhdHRlcm46LyhcYkFnZ3JlZ2F0ZXNccyo6XHMqKSg/Olx3Kyg/OlxzK3dpdGhccytcdyspP1xzKixccyopKlx3Kyg/OlxzK3dpdGhccytcdyspPy8sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xid2l0aFxiLywiY2xhc3MtbmFtZSI6L1x3Ky8scHVuY3R1YXRpb246LywvfX0scmVkaXJlY3RzOntwYXR0ZXJuOi8oXGJSZWRpcmVjdHNccyo6XHMqKSg/Olx3K1xzKj0+XHMqXHcrXHMqLFxzKikqKD86XHcrXHMqPT5ccypcdyspLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246LywvLCJjbGFzcy1uYW1lIjovXHcrLyxvcGVyYXRvcjovPT4vfX0scHJvcGVydHk6e3BhdHRlcm46L1xiKD86QWdncmVnYXRlc3xbSWldbnRlcmZhY2VzfEphdmF8SmF2YXNjcmlwdHxKb2xpZXxbTGxdb2NhdGlvbnxPbmVXYXl8W1BwXXJvdG9jb2x8UmVkaXJlY3RzfFJlcXVlc3RSZXNwb25zZSlcYig/PVsgXHRdKjopL319KX1yZXR1cm4gY2R9dmFyIGRkLFZUO2Z1bmN0aW9uIHY1KCl7aWYoVlQpcmV0dXJuIGRkO1ZUPTEsZGQ9ZSxlLmRpc3BsYXlOYW1lPSJqcSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS9cXFwoKD86W14oKV18XChbXigpXSpcKSkqXCkvLnNvdXJjZSxhPVJlZ0V4cCgvKF58W15cXF0pIig/OlteIlxyXG5cXF18XFxbXlxyXG4oXXxfXykqIi8uc291cmNlLnJlcGxhY2UoL19fL2csZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxpPXtpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOlJlZ0V4cCgvKCg/Ol58W15cXF0pKD86XFx7Mn0pKikvLnNvdXJjZStyKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7Y29udGVudDp7cGF0dGVybjovXihcXFwoKVtcc1xTXSsoPz1cKSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfSxwdW5jdHVhdGlvbjovXlxcXCh8XCkkL319fSxvPW4ubGFuZ3VhZ2VzLmpxPXtjb21tZW50Oi8jLiovLHByb3BlcnR5OntwYXR0ZXJuOlJlZ0V4cChhLnNvdXJjZSsvKD89XHMqOig/ITopKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6aX0sc3RyaW5nOntwYXR0ZXJuOmEsbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOml9LGZ1bmN0aW9uOntwYXR0ZXJuOi8oXGJkZWZccyspW2Etel9dXHcrL2ksbG9va2JlaGluZDohMH0sdmFyaWFibGU6L1xCXCRcdysvLCJwcm9wZXJ0eS1saXRlcmFsIjp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyo6KD8hOikpL2ksYWxpYXM6InByb3BlcnR5In0sa2V5d29yZDovXGIoPzphc3xicmVha3xjYXRjaHxkZWZ8ZWxpZnxlbHNlfGVuZHxmb3JlYWNofGlmfGltcG9ydHxpbmNsdWRlfGxhYmVsfG1vZHVsZXxtb2R1bGVtZXRhfG51bGx8cmVkdWNlfHRoZW58dHJ5fHdoaWxlKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjovKD86XGJcZCtcLnxcQlwuKT9cYlxkKyg/OltlRV1bKy1dP1xkKyk/XGIvLG9wZXJhdG9yOlt7cGF0dGVybjovXHw9Py8sYWxpYXM6InBpcGUifSwvXC5cLnxbIT08Pl0/PXxcP1wvXC98XC9cLz0/fFstKyovJV09P3xbPD4/XXxcYig/OmFuZHxub3R8b3IpXGIvXSwiYy1zdHlsZS1mdW5jdGlvbiI6e3BhdHRlcm46L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksYWxpYXM6ImZ1bmN0aW9uIn0scHVuY3R1YXRpb246Lzo6fFsoKVxbXF17fSw6O118XC4oPz1ccypbXFtcdyRdKS8sZG90OntwYXR0ZXJuOi9cLi8sYWxpYXM6ImltcG9ydGFudCJ9fTtpLmludGVycG9sYXRpb24uaW5zaWRlLmNvbnRlbnQuaW5zaWRlPW99KSh0KX1yZXR1cm4gZGR9dmFyIHBkLEhUO2Z1bmN0aW9uIEU1KCl7aWYoSFQpcmV0dXJuIHBkO0hUPTEscGQ9ZSxlLmRpc3BsYXlOYW1lPSJqc0V4dHJhcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe24ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiamF2YXNjcmlwdCIsImZ1bmN0aW9uLXZhcmlhYmxlIix7Im1ldGhvZC12YXJpYWJsZSI6e3BhdHRlcm46UmVnRXhwKCIoXFwuXFxzKikiK24ubGFuZ3VhZ2VzLmphdmFzY3JpcHRbImZ1bmN0aW9uLXZhcmlhYmxlIl0ucGF0dGVybi5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJmdW5jdGlvbi12YXJpYWJsZSIsIm1ldGhvZCIsImZ1bmN0aW9uIiwicHJvcGVydHktYWNjZXNzIl19fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0IiwiZnVuY3Rpb24iLHttZXRob2Q6e3BhdHRlcm46UmVnRXhwKCIoXFwuXFxzKikiK24ubGFuZ3VhZ2VzLmphdmFzY3JpcHQuZnVuY3Rpb24uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiZnVuY3Rpb24iLCJwcm9wZXJ0eS1hY2Nlc3MiXX19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFzY3JpcHQiLCJjb25zdGFudCIseyJrbm93bi1jbGFzcy1uYW1lIjpbe3BhdHRlcm46L1xiKD86KD86RmxvYXQoPzozMnw2NCl8KD86SW50fFVpbnQpKD86OHwxNnwzMil8VWludDhDbGFtcGVkKT9BcnJheXxBcnJheUJ1ZmZlcnxCaWdJbnR8Qm9vbGVhbnxEYXRhVmlld3xEYXRlfEVycm9yfEZ1bmN0aW9ufEludGx8SlNPTnwoPzpXZWFrKT8oPzpNYXB8U2V0KXxNYXRofE51bWJlcnxPYmplY3R8UHJvbWlzZXxQcm94eXxSZWZsZWN0fFJlZ0V4cHxTdHJpbmd8U3ltYm9sfFdlYkFzc2VtYmx5KVxiLyxhbGlhczoiY2xhc3MtbmFtZSJ9LHtwYXR0ZXJuOi9cYig/OltBLVpdXHcqKUVycm9yXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn1dfSk7ZnVuY3Rpb24gcih1LGMpe3JldHVybiBSZWdFeHAodS5yZXBsYWNlKC88SUQ+L2csZnVuY3Rpb24oKXtyZXR1cm4vKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqLy5zb3VyY2V9KSxjKX1uLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFzY3JpcHQiLCJrZXl3b3JkIix7aW1wb3J0czp7cGF0dGVybjpyKC8oXGJpbXBvcnRcYlxzKikoPzo8SUQ+KD86XHMqLFxzKig/OlwqXHMqYXNccys8SUQ+fFx7W157fV0qXH0pKT98XCpccyphc1xzKzxJRD58XHtbXnt9XSpcfSkoPz1ccypcYmZyb21cYikvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6bi5sYW5ndWFnZXMuamF2YXNjcmlwdH0sZXhwb3J0czp7cGF0dGVybjpyKC8oXGJleHBvcnRcYlxzKikoPzpcKig/OlxzKmFzXHMrPElEPik/KD89XHMqXGJmcm9tXGIpfFx7W157fV0qXH0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fSksbi5sYW5ndWFnZXMuamF2YXNjcmlwdC5rZXl3b3JkLnVuc2hpZnQoe3BhdHRlcm46L1xiKD86YXN8ZGVmYXVsdHxleHBvcnR8ZnJvbXxpbXBvcnQpXGIvLGFsaWFzOiJtb2R1bGUifSx7cGF0dGVybjovXGIoPzphd2FpdHxicmVha3xjYXRjaHxjb250aW51ZXxkb3xlbHNlfGZpbmFsbHl8Zm9yfGlmfHJldHVybnxzd2l0Y2h8dGhyb3d8dHJ5fHdoaWxlfHlpZWxkKVxiLyxhbGlhczoiY29udHJvbC1mbG93In0se3BhdHRlcm46L1xibnVsbFxiLyxhbGlhczpbIm51bGwiLCJuaWwiXX0se3BhdHRlcm46L1xidW5kZWZpbmVkXGIvLGFsaWFzOiJuaWwifSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0Iiwib3BlcmF0b3IiLHtzcHJlYWQ6e3BhdHRlcm46L1wuezN9LyxhbGlhczoib3BlcmF0b3IifSxhcnJvdzp7cGF0dGVybjovPT4vLGFsaWFzOiJvcGVyYXRvciJ9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJqYXZhc2NyaXB0IiwicHVuY3R1YXRpb24iLHsicHJvcGVydHktYWNjZXNzIjp7cGF0dGVybjpyKC8oXC5ccyopIz88SUQ+Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9LCJtYXliZS1jbGFzcy1uYW1lIjp7cGF0dGVybjovKF58W14kXHdceEEwLVx1RkZGRl0pW0EtWl1bJFx3XHhBMC1cdUZGRkZdKy8sbG9va2JlaGluZDohMH0sZG9tOntwYXR0ZXJuOi9cYig/OmRvY3VtZW50fCg/OmxvY2FsfHNlc3Npb24pU3RvcmFnZXxsb2NhdGlvbnxuYXZpZ2F0b3J8cGVyZm9ybWFuY2V8d2luZG93KVxiLyxhbGlhczoidmFyaWFibGUifSxjb25zb2xlOntwYXR0ZXJuOi9cYmNvbnNvbGUoPz1ccypcLikvLGFsaWFzOiJjbGFzcy1uYW1lIn19KTtmb3IodmFyIGE9WyJmdW5jdGlvbiIsImZ1bmN0aW9uLXZhcmlhYmxlIiwibWV0aG9kIiwibWV0aG9kLXZhcmlhYmxlIiwicHJvcGVydHktYWNjZXNzIl0saT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldLHM9bi5sYW5ndWFnZXMuamF2YXNjcmlwdFtvXTtuLnV0aWwudHlwZShzKT09PSJSZWdFeHAiJiYocz1uLmxhbmd1YWdlcy5qYXZhc2NyaXB0W29dPXtwYXR0ZXJuOnN9KTt2YXIgbD1zLmluc2lkZXx8e307cy5pbnNpZGU9bCxsWyJtYXliZS1jbGFzcy1uYW1lIl09L15bQS1aXVtcc1xTXSovfX0pKHQpfXJldHVybiBwZH12YXIgZmQsV1Q7ZnVuY3Rpb24gUzUoKXtpZihXVClyZXR1cm4gZmQ7V1Q9MSxmZD1lLGUuZGlzcGxheU5hbWU9ImpzVGVtcGxhdGVzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9bi5sYW5ndWFnZXMuamF2YXNjcmlwdFsidGVtcGxhdGUtc3RyaW5nIl0sYT1yLnBhdHRlcm4uc291cmNlLGk9ci5pbnNpZGUuaW50ZXJwb2xhdGlvbixvPWkuaW5zaWRlWyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIl0scz1pLnBhdHRlcm4uc291cmNlO2Z1bmN0aW9uIGwoYixBKXtpZihuLmxhbmd1YWdlc1tiXSlyZXR1cm57cGF0dGVybjpSZWdFeHAoIigoPzoiK0ErIilcXHMqKSIrYSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOnsidGVtcGxhdGUtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eYHxgJC8sYWxpYXM6InN0cmluZyJ9LCJlbWJlZGRlZC1jb2RlIjp7cGF0dGVybjovW1xzXFNdKy8sYWxpYXM6Yn19fX1uLmxhbmd1YWdlcy5qYXZhc2NyaXB0WyJ0ZW1wbGF0ZS1zdHJpbmciXT1bbCgiY3NzIiwvXGIoPzpzdHlsZWQoPzpcKFteKV0qXCkpPyg/OlxzKlwuXHMqXHcrKD86XChbXildKlwpKSopKnxjc3MoPzpccypcLlxzKig/Omdsb2JhbHxyZXNvbHZlKSk/fGNyZWF0ZUdsb2JhbFN0eWxlfGtleWZyYW1lcykvLnNvdXJjZSksbCgiaHRtbCIsL1xiaHRtbHxcLlxzKig/OmlubmVyfG91dGVyKUhUTUxccypcKz89Ly5zb3VyY2UpLGwoInN2ZyIsL1xic3ZnLy5zb3VyY2UpLGwoIm1hcmtkb3duIiwvXGIoPzptYXJrZG93bnxtZCkvLnNvdXJjZSksbCgiZ3JhcGhxbCIsL1xiKD86Z3FsfGdyYXBocWwoPzpccypcLlxzKmV4cGVyaW1lbnRhbCk/KS8uc291cmNlKSxsKCJzcWwiLC9cYnNxbC8uc291cmNlKSxyXS5maWx0ZXIoQm9vbGVhbik7ZnVuY3Rpb24gdShiLEEpe3JldHVybiJfX18iK0EudG9VcHBlckNhc2UoKSsiXyIrYisiX19fIn1mdW5jdGlvbiBjKGIsQSxoKXt2YXIgbT17Y29kZTpiLGdyYW1tYXI6QSxsYW5ndWFnZTpofTtyZXR1cm4gbi5ob29rcy5ydW4oImJlZm9yZS10b2tlbml6ZSIsbSksbS50b2tlbnM9bi50b2tlbml6ZShtLmNvZGUsbS5ncmFtbWFyKSxuLmhvb2tzLnJ1bigiYWZ0ZXItdG9rZW5pemUiLG0pLG0udG9rZW5zfWZ1bmN0aW9uIGQoYil7dmFyIEE9e307QVsiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiJdPW87dmFyIGg9bi50b2tlbml6ZShiLEEpO2lmKGgubGVuZ3RoPT09Myl7dmFyIG09WzEsMV07bS5wdXNoLmFwcGx5KG0sYyhoWzFdLG4ubGFuZ3VhZ2VzLmphdmFzY3JpcHQsImphdmFzY3JpcHQiKSksaC5zcGxpY2UuYXBwbHkoaCxtKX1yZXR1cm4gbmV3IG4uVG9rZW4oImludGVycG9sYXRpb24iLGgsaS5hbGlhcyxiKX1mdW5jdGlvbiBwKGIsQSxoKXt2YXIgbT1uLnRva2VuaXplKGIse2ludGVycG9sYXRpb246e3BhdHRlcm46UmVnRXhwKHMpLGxvb2tiZWhpbmQ6ITB9fSksZz0wLEU9e30sVD1tLm1hcChmdW5jdGlvbihJKXtpZih0eXBlb2YgST09InN0cmluZyIpcmV0dXJuIEk7Zm9yKHZhciBDPUkuY29udGVudCxMO2IuaW5kZXhPZihMPXUoZysrLGgpKSE9PS0xOyk7cmV0dXJuIEVbTF09QyxMfSkuam9pbigiIiksdj1jKFQsQSxoKSxSPU9iamVjdC5rZXlzKEUpO2c9MDtmdW5jdGlvbiBfKEkpe2Zvcih2YXIgQz0wO0M8SS5sZW5ndGg7QysrKXtpZihnPj1SLmxlbmd0aClyZXR1cm47dmFyIEw9SVtDXTtpZih0eXBlb2YgTD09InN0cmluZyJ8fHR5cGVvZiBMLmNvbnRlbnQ9PSJzdHJpbmciKXt2YXIgRj1SW2ddLHE9dHlwZW9mIEw9PSJzdHJpbmciP0w6TC5jb250ZW50LFc9cS5pbmRleE9mKEYpO2lmKFchPT0tMSl7KytnO3ZhciBHPXEuc3Vic3RyaW5nKDAsVyksSz1kKEVbRl0pLFY9cS5zdWJzdHJpbmcoVytGLmxlbmd0aCksTj1bXTtpZihHJiZOLnB1c2goRyksTi5wdXNoKEspLFYpe3ZhciBVPVtWXTtfKFUpLE4ucHVzaC5hcHBseShOLFUpfXR5cGVvZiBMPT0ic3RyaW5nIj8oSS5zcGxpY2UuYXBwbHkoSSxbQywxXS5jb25jYXQoTikpLEMrPU4ubGVuZ3RoLTEpOkwuY29udGVudD1OfX1lbHNle3ZhciBTPUwuY29udGVudDtBcnJheS5pc0FycmF5KFMpP18oUyk6XyhbU10pfX19cmV0dXJuIF8odiksbmV3IG4uVG9rZW4oaCx2LCJsYW5ndWFnZS0iK2gsYil9dmFyIGY9e2phdmFzY3JpcHQ6ITAsanM6ITAsdHlwZXNjcmlwdDohMCx0czohMCxqc3g6ITAsdHN4OiEwfTtuLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGIpe2lmKCEoYi5sYW5ndWFnZSBpbiBmKSlyZXR1cm47ZnVuY3Rpb24gQShoKXtmb3IodmFyIG09MCxnPWgubGVuZ3RoO208ZzttKyspe3ZhciBFPWhbbV07aWYodHlwZW9mIEUhPSJzdHJpbmciKXt2YXIgVD1FLmNvbnRlbnQ7aWYoIUFycmF5LmlzQXJyYXkoVCkpe3R5cGVvZiBUIT0ic3RyaW5nIiYmQShbVF0pO2NvbnRpbnVlfWlmKEUudHlwZT09PSJ0ZW1wbGF0ZS1zdHJpbmciKXt2YXIgdj1UWzFdO2lmKFQubGVuZ3RoPT09MyYmdHlwZW9mIHYhPSJzdHJpbmciJiZ2LnR5cGU9PT0iZW1iZWRkZWQtY29kZSIpe3ZhciBSPXkodiksXz12LmFsaWFzLEk9QXJyYXkuaXNBcnJheShfKT9fWzBdOl8sQz1uLmxhbmd1YWdlc1tJXTtpZighQyljb250aW51ZTtUWzFdPXAoUixDLEkpfX1lbHNlIEEoVCl9fX1BKGIudG9rZW5zKX0pO2Z1bmN0aW9uIHkoYil7cmV0dXJuIHR5cGVvZiBiPT0ic3RyaW5nIj9iOkFycmF5LmlzQXJyYXkoYik/Yi5tYXAoeSkuam9pbigiIik6eShiLmNvbnRlbnQpfX0pKHQpfXJldHVybiBmZH12YXIgbWQsWVQ7ZnVuY3Rpb24gUGIoKXtpZihZVClyZXR1cm4gbWQ7WVQ9MSxtZD1lLGUuZGlzcGxheU5hbWU9InR5cGVzY3JpcHQiLGUuYWxpYXNlcz1bInRzIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7bi5sYW5ndWFnZXMudHlwZXNjcmlwdD1uLmxhbmd1YWdlcy5leHRlbmQoImphdmFzY3JpcHQiLHsiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfGludGVyZmFjZXxuZXd8dHlwZSlccyspKD8ha2V5b2ZcYikoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSooPzpccyo8KD86W148Pl18PCg/OltePD5dfDxbXjw+XSo+KSo+KSo+KT8vLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTpudWxsfSxidWlsdGluOi9cYig/OkFycmF5fEZ1bmN0aW9ufFByb21pc2V8YW55fGJvb2xlYW58Y29uc29sZXxuZXZlcnxudW1iZXJ8c3RyaW5nfHN5bWJvbHx1bmtub3duKVxiL30pLG4ubGFuZ3VhZ2VzLnR5cGVzY3JpcHQua2V5d29yZC5wdXNoKC9cYig/OmFic3RyYWN0fGRlY2xhcmV8aXN8a2V5b2Z8cmVhZG9ubHl8cmVxdWlyZSlcYi8sL1xiKD86YXNzZXJ0c3xpbmZlcnxpbnRlcmZhY2V8bW9kdWxlfG5hbWVzcGFjZXx0eXBlKVxiKD89XHMqKD86W3tfJGEtekEtWlx4QTAtXHVGRkZGXXwkKSkvLC9cYnR5cGVcYig/PVxzKig/OltceypdfCQpKS8pLGRlbGV0ZSBuLmxhbmd1YWdlcy50eXBlc2NyaXB0LnBhcmFtZXRlcixkZWxldGUgbi5sYW5ndWFnZXMudHlwZXNjcmlwdFsibGl0ZXJhbC1wcm9wZXJ0eSJdO3ZhciByPW4ubGFuZ3VhZ2VzLmV4dGVuZCgidHlwZXNjcmlwdCIse30pO2RlbGV0ZSByWyJjbGFzcy1uYW1lIl0sbi5sYW5ndWFnZXMudHlwZXNjcmlwdFsiY2xhc3MtbmFtZSJdLmluc2lkZT1yLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgidHlwZXNjcmlwdCIsImZ1bmN0aW9uIix7ZGVjb3JhdG9yOntwYXR0ZXJuOi9AWyRcd1x4QTAtXHVGRkZGXSsvLGluc2lkZTp7YXQ6e3BhdHRlcm46L15ALyxhbGlhczoib3BlcmF0b3IifSxmdW5jdGlvbjovXltcc1xTXSsvfX0sImdlbmVyaWMtZnVuY3Rpb24iOntwYXR0ZXJuOi8jPyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKlxzKjwoPzpbXjw+XXw8KD86W148Pl18PFtePD5dKj4pKj4pKj4oPz1ccypcKCkvLGdyZWVkeTohMCxpbnNpZGU6e2Z1bmN0aW9uOi9eIz8oPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSovLGdlbmVyaWM6e3BhdHRlcm46LzxbXHNcU10rLyxhbGlhczoiY2xhc3MtbmFtZSIsaW5zaWRlOnJ9fX19KSxuLmxhbmd1YWdlcy50cz1uLmxhbmd1YWdlcy50eXBlc2NyaXB0fSkodCl9cmV0dXJuIG1kfXZhciBnZCxLVDtmdW5jdGlvbiB3NSgpe2lmKEtUKXJldHVybiBnZDtLVD0xO3ZhciBlPUtzKCksdD1QYigpO2dkPW4sbi5kaXNwbGF5TmFtZT0ianNkb2MiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKHIpe3IucmVnaXN0ZXIoZSksci5yZWdpc3Rlcih0KSxmdW5jdGlvbihhKXt2YXIgaT1hLmxhbmd1YWdlcy5qYXZhc2NyaXB0LG89L1x7KD86W157fV18XHsoPzpbXnt9XXxce1tee31dKlx9KSpcfSkrXH0vLnNvdXJjZSxzPSIoQCg/OmFyZ3xhcmd1bWVudHxwYXJhbXxwcm9wZXJ0eSlcXHMrKD86IitvKyJcXHMrKT8pIjthLmxhbmd1YWdlcy5qc2RvYz1hLmxhbmd1YWdlcy5leHRlbmQoImphdmFkb2NsaWtlIix7cGFyYW1ldGVyOntwYXR0ZXJuOlJlZ0V4cChzKy8oPzooPyFccylbJFx3XHhBMC1cdUZGRkYuXSkrKD89XHN8JCkvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fX0pLGEubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgianNkb2MiLCJrZXl3b3JkIix7Im9wdGlvbmFsLXBhcmFtZXRlciI6e3BhdHRlcm46UmVnRXhwKHMrL1xbKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGLl0pKyg/Oj1bXltcXV0rKT9cXSg/PVxzfCQpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwYXJhbWV0ZXI6e3BhdHRlcm46LyheXFspWyRcd1x4QTAtXHVGRkZGXC5dKy8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxjb2RlOntwYXR0ZXJuOi8oPSlbXHNcU10qKD89XF0kKS8sbG9va2JlaGluZDohMCxpbnNpZGU6aSxhbGlhczoibGFuZ3VhZ2UtamF2YXNjcmlwdCJ9LHB1bmN0dWF0aW9uOi9bPVtcXV0vfX0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjpSZWdFeHAoLyhAKD86YXVnbWVudHN8Y2xhc3N8ZXh0ZW5kc3xpbnRlcmZhY2V8bWVtYmVyb2YhP3x0ZW1wbGF0ZXx0aGlzfHR5cGVkZWYpXHMrKD86PFRZUEU+XHMrKT8pW0EtWl1cdyooPzpcLltBLVpdXHcqKSovLnNvdXJjZS5yZXBsYWNlKC88VFlQRT4vZyxmdW5jdGlvbigpe3JldHVybiBvfSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0se3BhdHRlcm46UmVnRXhwKCIoQFthLXpdK1xccyspIitvKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7c3RyaW5nOmkuc3RyaW5nLG51bWJlcjppLm51bWJlcixib29sZWFuOmkuYm9vbGVhbixrZXl3b3JkOmEubGFuZ3VhZ2VzLnR5cGVzY3JpcHQua2V5d29yZCxvcGVyYXRvcjovPT58XC5cLlwufFsmfD86Kl0vLHB1bmN0dWF0aW9uOi9bLiw7PTw+e30oKVtcXV0vfX1dLGV4YW1wbGU6e3BhdHRlcm46LyhAZXhhbXBsZVxzKyg/IVxzKSkoPzpbXkBcc118XHMrKD8hXHMpKSs/KD89XHMqKD86XCpccyopPyg/OkBcd3xcKlwvKSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntjb2RlOntwYXR0ZXJuOi9eKFtcdCBdKig/OlwqXHMqKT8pXFMuKiQvbSxsb29rYmVoaW5kOiEwLGluc2lkZTppLGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0In19fX0pLGEubGFuZ3VhZ2VzLmphdmFkb2NsaWtlLmFkZFN1cHBvcnQoImphdmFzY3JpcHQiLGEubGFuZ3VhZ2VzLmpzZG9jKX0ocil9cmV0dXJuIGdkfXZhciBoZCxYVDtmdW5jdGlvbiBGYigpe2lmKFhUKXJldHVybiBoZDtYVD0xLGhkPWUsZS5kaXNwbGF5TmFtZT0ianNvbiIsZS5hbGlhc2VzPVsid2VibWFuaWZlc3QiXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmpzb249e3Byb3BlcnR5OntwYXR0ZXJuOi8oXnxbXlxcXSkiKD86XFwufFteXFwiXHJcbl0pKiIoPz1ccyo6KS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKF58W15cXF0pIig/OlxcLnxbXlxcIlxyXG5dKSoiKD8hXHMqOikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8XC9cKltcc1xTXSo/KD86XCpcL3wkKS8sZ3JlZWR5OiEwfSxudW1iZXI6Ly0/XGJcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT9cYi9pLHB1bmN0dWF0aW9uOi9be31bXF0sXS8sb3BlcmF0b3I6LzovLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVsbDp7cGF0dGVybjovXGJudWxsXGIvLGFsaWFzOiJrZXl3b3JkIn19LHQubGFuZ3VhZ2VzLndlYm1hbmlmZXN0PXQubGFuZ3VhZ2VzLmpzb259cmV0dXJuIGhkfXZhciBiZCxaVDtmdW5jdGlvbiBUNSgpe2lmKFpUKXJldHVybiBiZDtaVD0xO3ZhciBlPUZiKCk7YmQ9dCx0LmRpc3BsYXlOYW1lPSJqc29uNSIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXt2YXIgYT0vKCJ8JykoPzpcXCg/OlxyXG4/fFxufC4pfCg/IVwxKVteXFxcclxuXSkqXDEvO3IubGFuZ3VhZ2VzLmpzb241PXIubGFuZ3VhZ2VzLmV4dGVuZCgianNvbiIse3Byb3BlcnR5Olt7cGF0dGVybjpSZWdFeHAoYS5zb3VyY2UrIig/PVxccyo6KSIpLGdyZWVkeTohMH0se3BhdHRlcm46Lyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXSg/Oig/IVxzKVskXHdceEEwLVx1RkZGRl0pKig/PVxzKjopLyxhbGlhczoidW5xdW90ZWQifV0sc3RyaW5nOntwYXR0ZXJuOmEsZ3JlZWR5OiEwfSxudW1iZXI6L1srLV0/XGIoPzpOYU58SW5maW5pdHl8MHhbYS1mQS1GXGRdKylcYnxbKy1dPyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OltlRV1bKy1dP1xkK1xiKT8vfSl9KG4pfXJldHVybiBiZH12YXIgeWQsUVQ7ZnVuY3Rpb24gazUoKXtpZihRVClyZXR1cm4geWQ7UVQ9MTt2YXIgZT1GYigpO3lkPXQsdC5kaXNwbGF5TmFtZT0ianNvbnAiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksbi5sYW5ndWFnZXMuanNvbnA9bi5sYW5ndWFnZXMuZXh0ZW5kKCJqc29uIix7cHVuY3R1YXRpb246L1t7fVtcXSgpOywuXS99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImpzb25wIiwicHVuY3R1YXRpb24iLHtmdW5jdGlvbjovKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkZdKD86KD8hXHMpWyRcd1x4QTAtXHVGRkZGXSkqKD89XHMqXCgpL30pfXJldHVybiB5ZH12YXIgdmQsSlQ7ZnVuY3Rpb24gQTUoKXtpZihKVClyZXR1cm4gdmQ7SlQ9MSx2ZD1lLGUuZGlzcGxheU5hbWU9Impzc3RhY2t0cmFjZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuanNzdGFja3RyYWNlPXsiZXJyb3ItbWVzc2FnZSI6e3BhdHRlcm46L15cUy4qL20sYWxpYXM6InN0cmluZyJ9LCJzdGFjay1mcmFtZSI6e3BhdHRlcm46LyheWyBcdF0rKWF0WyBcdF0uKi9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsibm90LW15LWNvZGUiOntwYXR0ZXJuOi9eYXRbIFx0XSsoPyFccykoPzpub2RlXC5qc3w8dW5rbm93bj58LiooPzpub2RlX21vZHVsZXN8XCg8YW5vbnltb3VzPlwpfFwoPHVua25vd24+fDxhbm9ueW1vdXM+JHxcKGludGVybmFsXC98XChub2RlXC5qcykpLiovbSxhbGlhczoiY29tbWVudCJ9LGZpbGVuYW1lOntwYXR0ZXJuOi8oXGJhdFxzKyg/IVxzKXxcKCkoPzpbYS16QS1aXTopP1teKCk6XSsoPz06KS8sbG9va2JlaGluZDohMCxhbGlhczoidXJsIn0sZnVuY3Rpb246e3BhdHRlcm46LyhcYmF0XHMrKD86bmV3XHMrKT8pKD8hXHMpW18kYS16QS1aXHhBMC1cdUZGRkY8XVsuJFx3XHhBMC1cdUZGRkY8Pl0qLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHB1bmN0dWF0aW9uOi9bKCldLyxrZXl3b3JkOi9cYig/OmF0fG5ldylcYi8sYWxpYXM6e3BhdHRlcm46L1xbKD86YXNccyspPyg/IVxzKVtfJGEtekEtWlx4QTAtXHVGRkZGXVskXHdceEEwLVx1RkZGRl0qXF0vLGFsaWFzOiJ2YXJpYWJsZSJ9LCJsaW5lLW51bWJlciI6e3BhdHRlcm46LzpcZCsoPzo6XGQrKT9cYi8sYWxpYXM6Im51bWJlciIsaW5zaWRlOntwdW5jdHVhdGlvbjovOi99fX19fX1yZXR1cm4gdmR9dmFyIEVkLGVrO2Z1bmN0aW9uIFZDKCl7aWYoZWspcmV0dXJuIEVkO2VrPTEsRWQ9ZSxlLmRpc3BsYXlOYW1lPSJqc3giLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj1uLnV0aWwuY2xvbmUobi5sYW5ndWFnZXMuamF2YXNjcmlwdCksYT0vKD86XHN8XC9cLy4qKD8hLil8XC9cKig/OlteKl18XCooPyFcLykpXCpcLykvLnNvdXJjZSxpPS8oPzpceyg/Olx7KD86XHtbXnt9XSpcfXxbXnt9XSkqXH18W157fV0pKlx9KS8uc291cmNlLG89Lyg/Olx7PFM+KlwuezN9KD86W157fV18PEJSQUNFUz4pKlx9KS8uc291cmNlO2Z1bmN0aW9uIHMoYyxkKXtyZXR1cm4gYz1jLnJlcGxhY2UoLzxTPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGF9KS5yZXBsYWNlKC88QlJBQ0VTPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KS5yZXBsYWNlKC88U1BSRUFEPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIG99KSxSZWdFeHAoYyxkKX1vPXMobykuc291cmNlLG4ubGFuZ3VhZ2VzLmpzeD1uLmxhbmd1YWdlcy5leHRlbmQoIm1hcmt1cCIsciksbi5sYW5ndWFnZXMuanN4LnRhZy5wYXR0ZXJuPXMoLzxcLz8oPzpbXHcuOi1dKyg/OjxTPisoPzpbXHcuOiQtXSsoPzo9KD86Iig/OlxcW1xzXFNdfFteXFwiXSkqInwnKD86XFxbXHNcU118W15cXCddKSonfFteXHN7JyIvPj1dK3w8QlJBQ0VTPikpP3w8U1BSRUFEPikpKjxTPipcLz8pPz4vLnNvdXJjZSksbi5sYW5ndWFnZXMuanN4LnRhZy5pbnNpZGUudGFnLnBhdHRlcm49L148XC8/W15ccz5cL10qLyxuLmxhbmd1YWdlcy5qc3gudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLnBhdHRlcm49Lz0oPyFceykoPzoiKD86XFxbXHNcU118W15cXCJdKSoifCcoPzpcXFtcc1xTXXxbXlxcJ10pKid8W15ccyciPl0rKS8sbi5sYW5ndWFnZXMuanN4LnRhZy5pbnNpZGUudGFnLmluc2lkZVsiY2xhc3MtbmFtZSJdPS9eW0EtWl1cdyooPzpcLltBLVpdXHcqKSokLyxuLmxhbmd1YWdlcy5qc3gudGFnLmluc2lkZS5jb21tZW50PXIuY29tbWVudCxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImluc2lkZSIsImF0dHItbmFtZSIse3NwcmVhZDp7cGF0dGVybjpzKC88U1BSRUFEPi8uc291cmNlKSxpbnNpZGU6bi5sYW5ndWFnZXMuanN4fX0sbi5sYW5ndWFnZXMuanN4LnRhZyksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJpbnNpZGUiLCJzcGVjaWFsLWF0dHIiLHtzY3JpcHQ6e3BhdHRlcm46cygvPTxCUkFDRVM+Ly5zb3VyY2UpLGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0IixpbnNpZGU6eyJzY3JpcHQtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9ePSg/PVx7KS8sYWxpYXM6InB1bmN0dWF0aW9uIn0scmVzdDpuLmxhbmd1YWdlcy5qc3h9fX0sbi5sYW5ndWFnZXMuanN4LnRhZyk7dmFyIGw9ZnVuY3Rpb24oYyl7cmV0dXJuIGM/dHlwZW9mIGM9PSJzdHJpbmciP2M6dHlwZW9mIGMuY29udGVudD09InN0cmluZyI/Yy5jb250ZW50OmMuY29udGVudC5tYXAobCkuam9pbigiIik6IiJ9LHU9ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPVtdLHA9MDtwPGMubGVuZ3RoO3ArKyl7dmFyIGY9Y1twXSx5PSExO2lmKHR5cGVvZiBmIT0ic3RyaW5nIiYmKGYudHlwZT09PSJ0YWciJiZmLmNvbnRlbnRbMF0mJmYuY29udGVudFswXS50eXBlPT09InRhZyI/Zi5jb250ZW50WzBdLmNvbnRlbnRbMF0uY29udGVudD09PSI8LyI/ZC5sZW5ndGg+MCYmZFtkLmxlbmd0aC0xXS50YWdOYW1lPT09bChmLmNvbnRlbnRbMF0uY29udGVudFsxXSkmJmQucG9wKCk6Zi5jb250ZW50W2YuY29udGVudC5sZW5ndGgtMV0uY29udGVudD09PSIvPiJ8fGQucHVzaCh7dGFnTmFtZTpsKGYuY29udGVudFswXS5jb250ZW50WzFdKSxvcGVuZWRCcmFjZXM6MH0pOmQubGVuZ3RoPjAmJmYudHlwZT09PSJwdW5jdHVhdGlvbiImJmYuY29udGVudD09PSJ7Ij9kW2QubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcysrOmQubGVuZ3RoPjAmJmRbZC5sZW5ndGgtMV0ub3BlbmVkQnJhY2VzPjAmJmYudHlwZT09PSJwdW5jdHVhdGlvbiImJmYuY29udGVudD09PSJ9Ij9kW2QubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcy0tOnk9ITApLCh5fHx0eXBlb2YgZj09InN0cmluZyIpJiZkLmxlbmd0aD4wJiZkW2QubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcz09PTApe3ZhciBiPWwoZik7cDxjLmxlbmd0aC0xJiYodHlwZW9mIGNbcCsxXT09InN0cmluZyJ8fGNbcCsxXS50eXBlPT09InBsYWluLXRleHQiKSYmKGIrPWwoY1twKzFdKSxjLnNwbGljZShwKzEsMSkpLHA+MCYmKHR5cGVvZiBjW3AtMV09PSJzdHJpbmcifHxjW3AtMV0udHlwZT09PSJwbGFpbi10ZXh0IikmJihiPWwoY1twLTFdKStiLGMuc3BsaWNlKHAtMSwxKSxwLS0pLGNbcF09bmV3IG4uVG9rZW4oInBsYWluLXRleHQiLGIsbnVsbCxiKX1mLmNvbnRlbnQmJnR5cGVvZiBmLmNvbnRlbnQhPSJzdHJpbmciJiZ1KGYuY29udGVudCl9fTtuLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKGMpe2MubGFuZ3VhZ2UhPT0ianN4IiYmYy5sYW5ndWFnZSE9PSJ0c3gifHx1KGMudG9rZW5zKX0pfSkodCl9cmV0dXJuIEVkfXZhciBTZCx0aztmdW5jdGlvbiB4NSgpe2lmKHRrKXJldHVybiBTZDt0az0xLFNkPWUsZS5kaXNwbGF5TmFtZT0ianVsaWEiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmp1bGlhPXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzojPSg/OlteIz1dfD0oPyEjKXwjKD8hPSl8Iz0oPzpbXiM9XXw9KD8hIyl8Iyg/IT0pKSo9IykqPSN8Iy4qKS8sbG9va2JlaGluZDohMH0scmVnZXg6e3BhdHRlcm46L3IiKD86XFwufFteIlxcXHJcbl0pKiJbaW1zeF17MCw0fS8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIiIltcc1xTXSs/IiIifCg/OlxiXHcrKT8iKD86XFwufFteIlxcXHJcbl0pKiJ8YCg/OlteXFxgXHJcbl18XFwuKSpgLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46LyhefFteXHcnXSknKD86XFxbXlxyXG5dW14nXHJcbl0qfFteXFxcclxuXSknLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxiYXJlbW9kdWxlfGJlZ2lufGJpdHN0eXBlfGJyZWFrfGNhdGNofGNjYWxsfGNvbnN0fGNvbnRpbnVlfGRvfGVsc2V8ZWxzZWlmfGVuZHxleHBvcnR8ZmluYWxseXxmb3J8ZnVuY3Rpb258Z2xvYmFsfGlmfGltbXV0YWJsZXxpbXBvcnR8aW1wb3J0YWxsfGlufGxldHxsb2NhbHxtYWNyb3xtb2R1bGV8cHJpbnR8cHJpbnRsbnxxdW90ZXxyZXR1cm58c3RydWN0fHRyeXx0eXBlfHR5cGVhbGlhc3x1c2luZ3x3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6Lyg/OlxiKD89XGQpfFxCKD89XC4pKSg/OjBbYm94XSk/KD86W1xkYS1mXSsoPzpfW1xkYS1mXSspKig/OlwuKD86XGQrKD86X1xkKykqKT8pP3xcLlxkKyg/Ol9cZCspKikoPzpbZWZwXVsrLV0/XGQrKD86X1xkKykqKT9qPy9pLG9wZXJhdG9yOi8mJnxcfFx8fFstKypeJcO34oq7JiRcXF09P3xcL1tcLz1dP3whPT89P3xcfFs9Pl0/fDwoPzo8PT98Wz06fF0pP3w+KD86PXw+Pj89Pyk/fD09Pz0/fFt+4omg4omk4omlJ+KImuKIm10vLHB1bmN0dWF0aW9uOi86Oj98W3t9W1xdKCk7LC4/XS8sY29uc3RhbnQ6L1xiKD86KD86SW5mfE5hTikoPzoxNnwzMnw2NCk/fGltfHBpKVxifFvPgOKEr10vfX1yZXR1cm4gU2R9dmFyIHdkLG5rO2Z1bmN0aW9uIFI1KCl7aWYobmspcmV0dXJuIHdkO25rPTEsd2Q9ZSxlLmRpc3BsYXlOYW1lPSJrZWVwYWxpdmVkIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5rZWVwYWxpdmVkPXtjb21tZW50OntwYXR0ZXJuOi9bIyFdLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oXnxbXlxcXSkoPzoiKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqInwnKD86XFwoPzpcclxufFtcc1xTXSl8W14nXFxcclxuXSkqJykvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxpcDp7cGF0dGVybjpSZWdFeHAoL1xiKD86KD86KD86W1xkYS1mXXsxLDR9Oil7N31bXGRhLWZdezEsNH18KD86W1xkYS1mXXsxLDR9Oil7Nn06W1xkYS1mXXsxLDR9fCg/OltcZGEtZl17MSw0fTopezV9Oig/OltcZGEtZl17MSw0fTopP1tcZGEtZl17MSw0fXwoPzpbXGRhLWZdezEsNH06KXs0fTooPzpbXGRhLWZdezEsNH06KXswLDJ9W1xkYS1mXXsxLDR9fCg/OltcZGEtZl17MSw0fTopezN9Oig/OltcZGEtZl17MSw0fTopezAsM31bXGRhLWZdezEsNH18KD86W1xkYS1mXXsxLDR9Oil7Mn06KD86W1xkYS1mXXsxLDR9Oil7MCw0fVtcZGEtZl17MSw0fXwoPzpbXGRhLWZdezEsNH06KXs2fTxpcHY0PnwoPzpbXGRhLWZdezEsNH06KXswLDV9OjxpcHY0Pnw6Oig/OltcZGEtZl17MSw0fTopezAsNX08aXB2ND58W1xkYS1mXXsxLDR9OjooPzpbXGRhLWZdezEsNH06KXswLDV9W1xkYS1mXXsxLDR9fDo6KD86W1xkYS1mXXsxLDR9Oil7MCw2fVtcZGEtZl17MSw0fXwoPzpbXGRhLWZdezEsNH06KXsxLDd9OikoPzpcL1xkezEsM30pP3w8aXB2ND4oPzpcL1xkezEsMn0pPylcYi8uc291cmNlLnJlcGxhY2UoLzxpcHY0Pi9nLGZ1bmN0aW9uKCl7cmV0dXJuLyg/Oig/Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZClcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKS8uc291cmNlfSksImkiKSxhbGlhczoibnVtYmVyIn0scGF0aDp7cGF0dGVybjovKFxzKVwvKD86W15cL1xzXStcLykqW15cL1xzXSp8XGJbYS16QS1aXTpcXCg/OlteXFxcc10rXFwpKlteXFxcc10qLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifSx2YXJpYWJsZTovXCRcez9cdytcfT8vLGVtYWlsOntwYXR0ZXJuOi9bXHctXStAW1x3LV0rKD86XC5bXHctXXsyLDN9KXsxLDJ9LyxhbGlhczoic3RyaW5nIn0sImNvbmRpdGlvbmFsLWNvbmZpZ3VyYXRpb24iOntwYXR0ZXJuOi9AXF4/W1x3LV0rLyxhbGlhczoidmFyaWFibGUifSxvcGVyYXRvcjovPS8scHJvcGVydHk6L1xiKD86QkZEX0NIRUNLfEROU19DSEVDS3xGSUxFX0NIRUNLfEhUVFBfR0VUfE1JU0NfQ0hFQ0t8TkFNRXxQSU5HX0NIRUNLfFNDUklQVFN8U01UUF9DSEVDS3xTU0x8U1NMX0dFVHxUQ1BfQ0hFQ0t8VURQX0NIRUNLfGFjY2VwdHxhZHZlcnRfaW50fGFscGhhfGF1dGhfcGFzc3xhdXRoX3R5cGV8YXV0aGVudGljYXRpb258YmZkX2NwdV9hZmZpbml0eXxiZmRfaW5zdGFuY2V8YmZkX25vX3N3YXB8YmZkX3ByaW9yaXR5fGJmZF9wcm9jZXNzX25hbWV8YmZkX3JsaW1pdF9ydHRpbWV8YmZkX3J0X3ByaW9yaXR5fGJpbmRfaWZ8YmluZF9wb3J0fGJpbmR0b3xjYXxjZXJ0aWZpY2F0ZXxjaGVja191bmljYXN0X3NyY3xjaGVja2VyfGNoZWNrZXJfY3B1X2FmZmluaXR5fGNoZWNrZXJfbG9nX2FsbF9mYWlsdXJlc3xjaGVja2VyX25vX3N3YXB8Y2hlY2tlcl9wcmlvcml0eXxjaGVja2VyX3JsaW1pdF9ydHRpbWV8Y2hlY2tlcl9ydF9wcmlvcml0eXxjaGlsZF93YWl0X3RpbWV8Y29ubmVjdF9pcHxjb25uZWN0X3BvcnR8Y29ubmVjdF90aW1lb3V0fGRidXNfc2VydmljZV9uYW1lfGRlYnVnfGRlZmF1bHRfaW50ZXJmYWNlfGRlbGF5fGRlbGF5X2JlZm9yZV9yZXRyeXxkZWxheV9sb29wfGRpZ2VzdHxkb250X3RyYWNrX3ByaW1hcnl8ZHluYW1pY3xkeW5hbWljX2ludGVyZmFjZXN8ZW5hYmxlXyg/OmRidXN8c2NyaXB0X3NlY3VyaXR5fHNuaXxzbm1wX2NoZWNrZXJ8c25tcF9yZmN8c25tcF9yZmN2Mnxzbm1wX3JmY3YzfHNubXBfdnJycHx0cmFwcyl8ZW5kfGZhbGx8ZmFzdF9yZWNvdmVyeXxmaWxlfGZsYWctWzEyM118Zm9ya19kZWxheXxmdWxsX2NvbW1hbmR8ZndtYXJrfGdhcnBfZ3JvdXB8Z2FycF9pbnRlcnZhbHxnYXJwX2xvd2VyX3ByaW9fZGVsYXl8Z2FycF9sb3dlcl9wcmlvX3JlcGVhdHxnYXJwX21hc3Rlcl9kZWxheXxnYXJwX21hc3Rlcl9yZWZyZXNofGdhcnBfbWFzdGVyX3JlZnJlc2hfcmVwZWF0fGdhcnBfbWFzdGVyX3JlcGVhdHxnbG9iYWxfZGVmc3xnbG9iYWxfdHJhY2tpbmd8Z25hX2ludGVydmFsfGdyb3VwfGhhX3N1c3BlbmR8aGFzaGVkfGhlbG9fbmFtZXxoaWdoZXJfcHJpb19zZW5kX2FkdmVydHxob3BsaW1pdHxodHRwX3Byb3RvY29sfGh5c3RlcmVzaXN8aWRsZV90eHxpbmNsdWRlfGluaGliaXRfb25fZmFpbHVyZXxpbml0X2ZhaWx8aW5pdF9maWxlfGluc3RhbmNlfGludGVyZmFjZXxpbnRlcmZhY2VzfGludGVydmFsfGlwX2ZhbWlseXxpcHZzX3Byb2Nlc3NfbmFtZXxrZWVwYWxpdmVkLmNvbmZ8a2VybmVsX3J4X2J1Zl9zaXplfGtleXxsaW5rYmVhdF9pbnRlcmZhY2VzfGxpbmtiZWF0X3VzZV9wb2xsaW5nfGxvZ19hbGxfZmFpbHVyZXN8bG9nX3Vua25vd25fdnJpZHN8bG93ZXJfcHJpb19ub19hZHZlcnR8bHRocmVzaG9sZHxsdnNfZmx1c2h8bHZzX2ZsdXNoX29uc3RvcHxsdnNfbWV0aG9kfGx2c19uZXRsaW5rX2NtZF9yY3ZfYnVmc3xsdnNfbmV0bGlua19jbWRfcmN2X2J1ZnNfZm9yY2V8bHZzX25ldGxpbmtfbW9uaXRvcl9yY3ZfYnVmc3xsdnNfbmV0bGlua19tb25pdG9yX3Jjdl9idWZzX2ZvcmNlfGx2c19ub3RpZnlfZmlmb3xsdnNfbm90aWZ5X2ZpZm9fc2NyaXB0fGx2c19zY2hlZHxsdnNfc3luY19kYWVtb258bWF4X2F1dG9fcHJpb3JpdHl8bWF4X2hvcHN8bWNhc3Rfc3JjX2lwfG1oLWZhbGxiYWNrfG1oLXBvcnR8bWluX2F1dG9fcHJpb3JpdHlfZGVsYXl8bWluX3J4fG1pbl90eHxtaXNjX2R5bmFtaWN8bWlzY19wYXRofG1pc2NfdGltZW91dHxtdWx0aXBsaWVyfG5hbWV8bmFtZXNwYWNlX3dpdGhfaXBzZXRzfG5hdGl2ZV9pcHY2fG5laWdoYm9yX2lwfG5ldF9uYW1lc3BhY2V8bmV0X25hbWVzcGFjZV9pcHZzfG5mdGFibGVzfG5mdGFibGVzX2NvdW50ZXJzfG5mdGFibGVzX2lmaW5kZXh8bmZ0YWJsZXNfcHJpb3JpdHl8bm9fYWNjZXB0fG5vX2NoZWNrZXJfZW1haWxzfG5vX2VtYWlsX2ZhdWx0c3xub3ByZWVtcHR8bm90aWZpY2F0aW9uX2VtYWlsfG5vdGlmaWNhdGlvbl9lbWFpbF9mcm9tfG5vdGlmeXxub3RpZnlfYmFja3VwfG5vdGlmeV9kZWxldGVkfG5vdGlmeV9kb3dufG5vdGlmeV9mYXVsdHxub3RpZnlfZmlmb3xub3RpZnlfZmlmb19zY3JpcHR8bm90aWZ5X21hc3Rlcnxub3RpZnlfbWFzdGVyX3J4X2xvd2VyX3ByaXxub3RpZnlfcHJpb3JpdHlfY2hhbmdlc3xub3RpZnlfc3RvcHxub3RpZnlfdXB8b2xkX3VuaWNhc3RfY2hlY2tzdW18b21lZ2F8b3BzfHBhcmFtX21hdGNofHBhc3NpdmV8cGFzc3dvcmR8cGF0aHxwZXJzaXN0ZW5jZV9lbmdpbmV8cGVyc2lzdGVuY2VfZ3JhbnVsYXJpdHl8cGVyc2lzdGVuY2VfdGltZW91dHxwcmVlbXB0fHByZWVtcHRfZGVsYXl8cHJpb3JpdHl8cHJvY2Vzc3xwcm9jZXNzX21vbml0b3JfcmN2X2J1ZnN8cHJvY2Vzc19tb25pdG9yX3Jjdl9idWZzX2ZvcmNlfHByb2Nlc3NfbmFtZXxwcm9jZXNzX25hbWVzfHByb21vdGVfc2Vjb25kYXJpZXN8cHJvdG9jb2x8cHJveHlfYXJwfHByb3h5X2FycF9wdmxhbnxxdW9ydW18cXVvcnVtX2Rvd258cXVvcnVtX21heHxxdW9ydW1fdXB8cmFuZG9tX3NlZWR8cmVhbF9zZXJ2ZXJ8cmVnZXh8cmVnZXhfbWF4X29mZnNldHxyZWdleF9taW5fb2Zmc2V0fHJlZ2V4X25vX21hdGNofHJlZ2V4X29wdGlvbnN8cmVnZXhfc3RhY2t8cmVsb2FkX3JlcGVhdHxyZWxvYWRfdGltZV9maWxlfHJlcXVpcmVfcmVwbHl8cmV0cnl8cmlzZXxyb3V0ZXJfaWR8cnNfaW5pdF9ub3RpZmllc3xzY3JpcHR8c2NyaXB0X3VzZXJ8c2gtZmFsbGJhY2t8c2gtcG9ydHxzaHV0ZG93bl9zY3JpcHR8c2h1dGRvd25fc2NyaXB0X3RpbWVvdXR8c2tpcF9jaGVja19hZHZfYWRkcnxzbXRwX2FsZXJ0fHNtdHBfYWxlcnRfY2hlY2tlcnxzbXRwX2FsZXJ0X3ZycnB8c210cF9jb25uZWN0X3RpbWVvdXR8c210cF9oZWxvX25hbWV8c210cF9zZXJ2ZXJ8c25tcF9zb2NrZXR8c29ycnlfc2VydmVyfHNvcnJ5X3NlcnZlcl9pbmhpYml0fHNvcnJ5X3NlcnZlcl9sdnNfbWV0aG9kfHNvdXJjZV9pcHxzdGFydHxzdGFydHVwX3NjcmlwdHxzdGFydHVwX3NjcmlwdF90aW1lb3V0fHN0YXRlfHN0YXRpY19pcGFkZHJlc3N8c3RhdGljX3JvdXRlc3xzdGF0aWNfcnVsZXN8c3RhdHVzX2NvZGV8c3RlcHxzdHJpY3RfbW9kZXxzeW5jX2dyb3VwX3RyYWNraW5nX3dlaWdodHx0ZXJtaW5hdGVfZGVsYXl8dGltZW91dHx0cmFja19iZmR8dHJhY2tfZmlsZXx0cmFja19ncm91cHx0cmFja19pbnRlcmZhY2V8dHJhY2tfcHJvY2Vzc3x0cmFja19zY3JpcHR8dHJhY2tfc3JjX2lwfHR0bHx0eXBlfHVtYXNrfHVuaWNhc3RfcGVlcnx1bmljYXN0X3NyY19pcHx1bmljYXN0X3R0bHx1cmx8dXNlX2lwdmxhbnx1c2VfcGlkX2Rpcnx1c2Vfdm1hY3x1c2VyfHV0aHJlc2hvbGR8dmFsWzEyM118dmVyc2lvbnx2aXJ0dWFsX2lwYWRkcmVzc3x2aXJ0dWFsX2lwYWRkcmVzc19leGNsdWRlZHx2aXJ0dWFsX3JvdXRlcl9pZHx2aXJ0dWFsX3JvdXRlc3x2aXJ0dWFsX3J1bGVzfHZpcnR1YWxfc2VydmVyfHZpcnR1YWxfc2VydmVyX2dyb3VwfHZpcnR1YWxob3N0fHZtYWNfeG1pdF9iYXNlfHZycnB8dnJycF8oPzpjaGVja191bmljYXN0X3NyY3xjcHVfYWZmaW5pdHl8Z2FycF9pbnRlcnZhbHxnYXJwX2xvd2VyX3ByaW9fZGVsYXl8Z2FycF9sb3dlcl9wcmlvX3JlcGVhdHxnYXJwX21hc3Rlcl9kZWxheXxnYXJwX21hc3Rlcl9yZWZyZXNofGdhcnBfbWFzdGVyX3JlZnJlc2hfcmVwZWF0fGdhcnBfbWFzdGVyX3JlcGVhdHxnbmFfaW50ZXJ2YWx8aGlnaGVyX3ByaW9fc2VuZF9hZHZlcnR8aW5zdGFuY2V8aXBzZXRzfGlwdGFibGVzfGxvd2VyX3ByaW9fbm9fYWR2ZXJ0fG1jYXN0X2dyb3VwNHxtY2FzdF9ncm91cDZ8bWluX2dhcnB8bmV0bGlua19jbWRfcmN2X2J1ZnN8bmV0bGlua19jbWRfcmN2X2J1ZnNfZm9yY2V8bmV0bGlua19tb25pdG9yX3Jjdl9idWZzfG5ldGxpbmtfbW9uaXRvcl9yY3ZfYnVmc19mb3JjZXxub19zd2FwfG5vdGlmeV9maWZvfG5vdGlmeV9maWZvX3NjcmlwdHxub3RpZnlfcHJpb3JpdHlfY2hhbmdlc3xwcmlvcml0eXxwcm9jZXNzX25hbWV8cmxpbWl0X3J0dGltZXxydF9wcmlvcml0eXxyeF9idWZzX211bHRpcGxpZXJ8cnhfYnVmc19wb2xpY3l8c2NyaXB0fHNraXBfY2hlY2tfYWR2X2FkZHJ8c3RhcnR1cF9kZWxheXxzdHJpY3R8c3luY19ncm91cHx0cmFja19wcm9jZXNzfHZlcnNpb24pfHdhcm11cHx3ZWlnaHQpXGIvLGNvbnN0YW50Oi9cYig/OkF8QUFBQXxBSHxCQUNLVVB8Q05BTUV8RFJ8TUFTVEVSfE1YfE5BVHxOU3xQQVNTfFNDVFB8U09BfFRDUHxUVU58VFhUfFVEUHxkaHxmb3xsYmxjfGxibGNyfGxjfG1ofG5xfG92ZnxycnxzZWR8c2h8d2xjfHdycilcYi8sbnVtYmVyOntwYXR0ZXJuOi8oXnxbXlx3Li1dKS0/XGQrKD86XC5cZCspPy8sbG9va2JlaGluZDohMH0sYm9vbGVhbjovXGIoPzpmYWxzZXxub3xvZmZ8b258dHJ1ZXx5ZXMpXGIvLHB1bmN0dWF0aW9uOi9bXHtcfV0vfX1yZXR1cm4gd2R9dmFyIFRkLHJrO2Z1bmN0aW9uIF81KCl7aWYocmspcmV0dXJuIFRkO3JrPTEsVGQ9ZSxlLmRpc3BsYXlOYW1lPSJrZXltYW4iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmtleW1hbj17Y29tbWVudDp7cGF0dGVybjovXGJjIC4qL2ksZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXSoifCdbXidcclxuXSonLyxncmVlZHk6ITB9LCJ2aXJ0dWFsLWtleSI6e3BhdHRlcm46L1xbXHMqKD86KD86QUxUfENBUFN8Q1RSTHxMQUxUfExDVFJMfE5DQVBTfFJBTFR8UkNUUkx8U0hJRlQpXHMrKSooPzpbVEtVXV9bXHc/XSt8W0EtRV1cZFxkP3wiW14iXHJcbl0qInwnW14nXHJcbl0qJylccypcXS9pLGdyZWVkeTohMCxhbGlhczoiZnVuY3Rpb24ifSwiaGVhZGVyLWtleXdvcmQiOntwYXR0ZXJuOi8mXHcrLyxhbGlhczoiYm9sZCJ9LCJoZWFkZXItc3RhdGVtZW50Ijp7cGF0dGVybjovXGIoPzpiaXRtYXB8Yml0bWFwc3xjYXBzIGFsd2F5cyBvZmZ8Y2FwcyBvbiBvbmx5fGNvcHlyaWdodHxob3RrZXl8bGFuZ3VhZ2V8bGF5b3V0fG1lc3NhZ2V8bmFtZXxzaGlmdCBmcmVlcyBjYXBzfHZlcnNpb24pXGIvaSxhbGlhczoiYm9sZCJ9LCJydWxlLWtleXdvcmQiOntwYXR0ZXJuOi9cYig/OmFueXxiYXNlbGF5b3V0fGJlZXB8Y2FsbHxjb250ZXh0fGRlYWRrZXl8ZGt8aWZ8aW5kZXh8bGF5ZXJ8bm90YW55fG51bHxvdXRzfHBsYXRmb3JtfHJlc2V0fHJldHVybnxzYXZlfHNldHxzdG9yZXx1c2UpXGIvaSxhbGlhczoia2V5d29yZCJ9LCJzdHJ1Y3R1cmFsLWtleXdvcmQiOntwYXR0ZXJuOi9cYig/OmFuc2l8YmVnaW58Z3JvdXB8bWF0Y2h8bm9tYXRjaHx1bmljb2RlfHVzaW5nIGtleXMpXGIvaSxhbGlhczoia2V5d29yZCJ9LCJjb21waWxlLXRhcmdldCI6e3BhdHRlcm46L1wkKD86a2V5bWFufGtleW1hbm9ubHl8a2V5bWFud2VifGttZmx8d2VhdmVyKTovaSxhbGlhczoicHJvcGVydHkifSxudW1iZXI6L1xiKD86VVwrW1xkQS1GXSt8ZFxkK3x4W1xkYS1mXSt8XGQrKVxiL2ksb3BlcmF0b3I6L1srPlxcJF18XC5cLi8scHVuY3R1YXRpb246L1soKT0sXS99fXJldHVybiBUZH12YXIga2QsYWs7ZnVuY3Rpb24gSTUoKXtpZihhaylyZXR1cm4ga2Q7YWs9MSxrZD1lLGUuZGlzcGxheU5hbWU9ImtvdGxpbiIsZS5hbGlhc2VzPVsia3QiLCJrdHMiXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5rb3RsaW49bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2tleXdvcmQ6e3BhdHRlcm46LyhefFteLl0pXGIoPzphYnN0cmFjdHxhY3R1YWx8YW5ub3RhdGlvbnxhc3xicmVha3xieXxjYXRjaHxjbGFzc3xjb21wYW5pb258Y29uc3R8Y29uc3RydWN0b3J8Y29udGludWV8Y3Jvc3NpbmxpbmV8ZGF0YXxkb3xkeW5hbWljfGVsc2V8ZW51bXxleHBlY3R8ZXh0ZXJuYWx8ZmluYWx8ZmluYWxseXxmb3J8ZnVufGdldHxpZnxpbXBvcnR8aW58aW5maXh8aW5pdHxpbmxpbmV8aW5uZXJ8aW50ZXJmYWNlfGludGVybmFsfGlzfGxhdGVpbml0fG5vaW5saW5lfG51bGx8b2JqZWN0fG9wZW58b3BlcmF0b3J8b3V0fG92ZXJyaWRlfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlaWZpZWR8cmV0dXJufHNlYWxlZHxzZXR8c3VwZXJ8c3VzcGVuZHx0YWlscmVjfHRoaXN8dGhyb3d8dG98dHJ5fHR5cGVhbGlhc3x2YWx8dmFyfHZhcmFyZ3x3aGVufHdoZXJlfHdoaWxlKVxiLyxsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjpbe3BhdHRlcm46Lyg/OmBbXlxyXG5gXStgfFxiXHcrKSg/PVxzKlwoKS8sZ3JlZWR5OiEwfSx7cGF0dGVybjovKFwuKSg/OmBbXlxyXG5gXStgfFx3KykoPz1ccypceykvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sbnVtYmVyOi9cYig/OjBbeFhdW1xkYS1mQS1GXSsoPzpfW1xkYS1mQS1GXSspKnwwW2JCXVswMV0rKD86X1swMV0rKSp8XGQrKD86X1xkKykqKD86XC5cZCsoPzpfXGQrKSopPyg/OltlRV1bKy1dP1xkKyg/Ol9cZCspKik/W2ZGTF0/KVxiLyxvcGVyYXRvcjovXCtbKz1dP3wtWy09Pl0/fD09Pz0/fCEoPzohfD09Pyk/fFtcLyolPD5dPT98Wz86XTo/fFwuXC58JiZ8XHxcfHxcYig/OmFuZHxpbnZ8b3J8c2hsfHNocnx1c2hyfHhvcilcYi99KSxkZWxldGUgbi5sYW5ndWFnZXMua290bGluWyJjbGFzcy1uYW1lIl07dmFyIHI9eyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHs/fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm4ubGFuZ3VhZ2VzLmtvdGxpbn19O24ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgia290bGluIiwic3RyaW5nIix7InN0cmluZy1saXRlcmFsIjpbe3BhdHRlcm46LyIiIig/OlteJF18XCQoPzooPyFceyl8XHtbXnt9XSpcfSkpKj8iIiIvLGFsaWFzOiJtdWx0aWxpbmUiLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovXCQoPzpbYS16X11cdyp8XHtbXnt9XSpcfSkvaSxpbnNpZGU6cn0sc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOi8iKD86W14iXFxcclxuJF18XFwufFwkKD86KD8hXHspfFx7W157fV0qXH0pKSoiLyxhbGlhczoic2luZ2xlbGluZSIsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKVwkKD86W2Etel9dXHcqfFx7W157fV0qXH0pL2ksbG9va2JlaGluZDohMCxpbnNpZGU6cn0sc3RyaW5nOi9bXHNcU10rL319XSxjaGFyOntwYXR0ZXJuOi8nKD86W14nXFxcclxuXXxcXCg/Oi58dVthLWZBLUYwLTldezAsNH0pKScvLGdyZWVkeTohMH19KSxkZWxldGUgbi5sYW5ndWFnZXMua290bGluLnN0cmluZyxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImtvdGxpbiIsImtleXdvcmQiLHthbm5vdGF0aW9uOntwYXR0ZXJuOi9cQkAoPzpcdys6KT8oPzpbQS1aXVx3KnxcW1teXF1dK1xdKS8sYWxpYXM6ImJ1aWx0aW4ifX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgia290bGluIiwiZnVuY3Rpb24iLHtsYWJlbDp7cGF0dGVybjovXGJcdytAfEBcdytcYi8sYWxpYXM6InN5bWJvbCJ9fSksbi5sYW5ndWFnZXMua3Q9bi5sYW5ndWFnZXMua290bGluLG4ubGFuZ3VhZ2VzLmt0cz1uLmxhbmd1YWdlcy5rb3RsaW59KSh0KX1yZXR1cm4ga2R9dmFyIEFkLGlrO2Z1bmN0aW9uIE41KCl7aWYoaWspcmV0dXJuIEFkO2lrPTEsQWQ9ZSxlLmRpc3BsYXlOYW1lPSJrdW1pciIsZS5hbGlhc2VzPVsia3VtIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1xzXHgwMC1ceDFmXHgyMi1ceDJmXHgzYS1ceDNmXHg1Yi1ceDVlXHg2MFx4N2ItXHg3ZS8uc291cmNlO2Z1bmN0aW9uIGEoaSxvKXtyZXR1cm4gUmVnRXhwKGkucmVwbGFjZSgvPG5vbklkPi9nLHIpLG8pfW4ubGFuZ3VhZ2VzLmt1bWlyPXtjb21tZW50OntwYXR0ZXJuOi9cfC4qL30scHJvbG9nOntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8iW15cblxyIl0qInwnW15cblxyJ10qJy8sZ3JlZWR5OiEwfSxib29sZWFuOntwYXR0ZXJuOmEoLyhefFs8bm9uSWQ+XSkoPzrQtNCwfNC90LXRgikoPz1bPG5vbklkPl18JCkvLnNvdXJjZSksbG9va2JlaGluZDohMH0sIm9wZXJhdG9yLXdvcmQiOntwYXR0ZXJuOmEoLyhefFs8bm9uSWQ+XSkoPzrQuHzQuNC70Lh80L3QtSkoPz1bPG5vbklkPl18JCkvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LCJzeXN0ZW0tdmFyaWFibGUiOntwYXR0ZXJuOmEoLyhefFs8bm9uSWQ+XSnQt9C90LDRhyg/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sdHlwZTpbe3BhdHRlcm46YSgvKF58Wzxub25JZD5dKSg/OtCy0LXRiXzQu9C40YJ80LvQvtCzfNGB0LjQvHzRhtC10LspKD86XHgyMCrRgtCw0LEpPyg/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJidWlsdGluIn0se3BhdHRlcm46YSgvKF58Wzxub25JZD5dKSg/OtC60L7QvNC/0Lt80YHQutCw0L3QutC+0LR80YTQsNC50Lt80YbQstC10YIpKD89Wzxub25JZD5dfCQpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9XSxrZXl3b3JkOntwYXR0ZXJuOmEoLyhefFs8bm9uSWQ+XSkoPzrQsNC70LN80LDRgNCzKD86XHgyMCrRgNC10LcpP3zQstCy0L7QtHzQktCa0JvQrtCn0JjQotCsfNCy0YFb0LXRkV180LLRi9Cx0L7RgHzQstGL0LLQvtC0fNCy0YvRhdC+0LR80LTQsNC90L580LTQu9GPfNC00L580LTRgXzQtdGB0LvQuHzQuNC90LDRh9C1fNC40YHQv3zQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Yx80LrQvtC9KD86KD86XHgyMCt8XynQuNGB0L8pP3zQutGGKD86KD86XHgyMCt8XynQv9GA0LgpP3zQvdCw0LTQvnzQvdCw0Yd80L3RgXzQvdGGfNC+0YJ80L/QsNGD0LfQsHzQv9C+0LrQsHzQv9GA0Lh80YDQsNC30LA/fNGA0LXQt3zRgdGC0L7Qv3zRgtCw0LF80YLQvnzRg9GC0LJ80YjQsNCzKSg/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxuYW1lOntwYXR0ZXJuOmEoLyhefFs8bm9uSWQ+XSlbXlxkPG5vbklkPl1bXjxub25JZD5dKig/Olx4MjArW148bm9uSWQ+XSspKig/PVs8bm9uSWQ+XXwkKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46YSgvKF58Wzxub25JZD5dKSg/OlxCXCRbXGRhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/KSg/PVs8bm9uSWQ+XXwkKS8uc291cmNlLCJpIiksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246Lzo9fFsoKSw6O1xbXF1dLywib3BlcmF0b3ItY2hhciI6e3BhdHRlcm46L1wqXCo/fDxbPT5dP3w+PT98Wy0rLz1dLyxhbGlhczoib3BlcmF0b3IifX0sbi5sYW5ndWFnZXMua3VtPW4ubGFuZ3VhZ2VzLmt1bWlyfSkodCl9cmV0dXJuIEFkfXZhciB4ZCxvaztmdW5jdGlvbiBDNSgpe2lmKG9rKXJldHVybiB4ZDtvaz0xLHhkPWUsZS5kaXNwbGF5TmFtZT0ia3VzdG8iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLmt1c3RvPXtjb21tZW50OntwYXR0ZXJuOi9cL1wvLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi9gYGBbXHNcU10qP2BgYHxbaEhdPyg/OiIoPzpbXlxyXG5cXCJdfFxcLikqInwnKD86W15cclxuXFwnXXxcXC4pKid8QCg/OiJbXlxyXG4iXSoifCdbXlxyXG4nXSonKSkvLGdyZWVkeTohMH0sdmVyYjp7cGF0dGVybjovKFx8XHMqKVthLXpdW1x3LV0qL2ksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGNvbW1hbmQ6e3BhdHRlcm46L1wuW2Etel1bYS16XGQtXSpcYi8sYWxpYXM6ImtleXdvcmQifSwiY2xhc3MtbmFtZSI6L1xiKD86Ym9vbHxkYXRldGltZXxkZWNpbWFsfGR5bmFtaWN8Z3VpZHxpbnR8bG9uZ3xyZWFsfHN0cmluZ3x0aW1lc3BhbilcYi8sa2V5d29yZDovXGIoPzphY2Nlc3N8YWxpYXN8YW5kfGFudGl8YXN8YXNjfGF1dG98YmV0d2VlbnxieXwoPzpjb250YWluc3woPzplbmRzfHN0YXJ0cyl3aXRofGhhcyg/OnBlcmZpeHxzdWZmaXgpPykoPzpfY3MpP3xkYXRhYmFzZXxkZWNsYXJlfGRlc2N8ZXh0ZXJuYWx8ZnJvbXxmdWxsb3V0ZXJ8aGFzX2FsbHxpbnxpbmdlc3Rpb258aW5saW5lfGlubmVyfGlubmVydW5pcXVlfGludG98KD86bGVmdHxyaWdodCkoPzphbnRpKD86c2VtaSk/fGlubmVyfG91dGVyfHNlbWkpP3xsZXR8bGlrZXxsb2NhbHxub3R8b2Z8b258b3J8cGF0dGVybnxwcmludHxxdWVyeV9wYXJhbWV0ZXJzfHJhbmdlfHJlc3RyaWN0fHNjaGVtYXxzZXR8c3RlcHx0YWJsZXx0YWJsZXN8dG98dmlld3x3aGVyZXx3aXRofG1hdGNoZXNccytyZWdleHxudWxsc1xzKyg/OmZpcnN0fGxhc3QpKSg/IVtcdy1dKS8sYm9vbGVhbjovXGIoPzpmYWxzZXxudWxsfHRydWUpXGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS8sZGF0ZXRpbWU6W3twYXR0ZXJuOi9cYig/Oig/OkZyaXxGcmlkYXl8TW9ufE1vbmRheXxTYXR8U2F0dXJkYXl8U3VufFN1bmRheXxUaHV8VGh1cnNkYXl8VHVlfFR1ZXNkYXl8V2VkfFdlZG5lc2RheSlccyosXHMqKT9cZHsxLDJ9KD86XHMrfC0pKD86QXByfEF1Z3xEZWN8RmVifEphbnxKdWx8SnVufE1hcnxNYXl8Tm92fE9jdHxTZXApKD86XHMrfC0pXGR7Mn1ccytcZHsyfTpcZHsyfSg/OjpcZHsyfSk/KD86XHMqKD86XGIoPzpbQS1aXXwoPzpbRUNNVF1bRFNdfEdNfFUpVCl8WystXVxkezR9KSk/XGIvLGFsaWFzOiJudW1iZXIifSx7cGF0dGVybjovWystXT9cYig/OlxkezR9LVxkezJ9LVxkezJ9KD86WyBUXVxkezJ9OlxkezJ9KD86OlxkezJ9KD86XC5cZCspPyk/KT98XGR7Mn06XGR7Mn0oPzo6XGR7Mn0oPzpcLlxkKyk/KT8pWj8vLGFsaWFzOiJudW1iZXIifV0sbnVtYmVyOi9cYig/OjB4WzAtOUEtRmEtZl0rfFxkKyg/OlwuXGQrKT8oPzpbRWVdWystXT9cZCspPykoPzooPzptaW58c2VjfFttbsK1XXN8W2RobXNdfG1pY3Jvc2Vjb25kfHRpY2spXGIpP3xbKy1dP1xiaW5mXGIvLG9wZXJhdG9yOi89PnxbIT1dfnxbIT08Pl09P3xbLSsqLyV8XXxcLlwuLyxwdW5jdHVhdGlvbjovWygpXFtcXXt9LDsuOl0vfX1yZXR1cm4geGR9dmFyIFJkLHNrO2Z1bmN0aW9uIE81KCl7aWYoc2spcmV0dXJuIFJkO3NrPTEsUmQ9ZSxlLmRpc3BsYXlOYW1lPSJsYXRleCIsZS5hbGlhc2VzPVsidGV4IiwiY29udGV4dCJdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS9cXCg/OlteYS16KClbXF1dfFthLXoqXSspL2ksYT17ImVxdWF0aW9uLWNvbW1hbmQiOntwYXR0ZXJuOnIsYWxpYXM6InJlZ2V4In19O24ubGFuZ3VhZ2VzLmxhdGV4PXtjb21tZW50Oi8lLiovLGNkYXRhOntwYXR0ZXJuOi8oXFxiZWdpblx7KCg/OmxzdGxpc3Rpbmd8dmVyYmF0aW0pXCo/KVx9KVtcc1xTXSo/KD89XFxlbmRce1wyXH0pLyxsb29rYmVoaW5kOiEwfSxlcXVhdGlvbjpbe3BhdHRlcm46L1wkXCQoPzpcXFtcc1xTXXxbXlxcJF0pK1wkXCR8XCQoPzpcXFtcc1xTXXxbXlxcJF0pK1wkfFxcXChbXHNcU10qP1xcXCl8XFxcW1tcc1xTXSo/XFxcXS8saW5zaWRlOmEsYWxpYXM6InN0cmluZyJ9LHtwYXR0ZXJuOi8oXFxiZWdpblx7KCg/OmFsaWdufGVxbmFycmF5fGVxdWF0aW9ufGdhdGhlcnxtYXRofG11bHRsaW5lKVwqPylcfSlbXHNcU10qPyg/PVxcZW5kXHtcMlx9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6YSxhbGlhczoic3RyaW5nIn1dLGtleXdvcmQ6e3BhdHRlcm46LyhcXCg/OmJlZ2lufGNpdGV8ZG9jdW1lbnRjbGFzc3xlbmR8bGFiZWx8cmVmfHVzZXBhY2thZ2UpKD86XFtbXlxdXStcXSk/XHspW159XSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITB9LHVybDp7cGF0dGVybjovKFxcdXJsXHspW159XSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITB9LGhlYWRsaW5lOntwYXR0ZXJuOi8oXFwoPzpjaGFwdGVyfGZyYW1ldGl0bGV8cGFyYWdyYXBofHBhcnR8c2VjdGlvbnxzdWJwYXJhZ3JhcGh8c3Vic2VjdGlvbnxzdWJzdWJwYXJhZ3JhcGh8c3Vic3Vic2VjdGlvbnxzdWJzdWJzdWJwYXJhZ3JhcGgpXCo/KD86XFtbXlxdXStcXSk/XHspW159XSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNsYXNzLW5hbWUifSxmdW5jdGlvbjp7cGF0dGVybjpyLGFsaWFzOiJzZWxlY3RvciJ9LHB1bmN0dWF0aW9uOi9bW1xde30mXS99LG4ubGFuZ3VhZ2VzLnRleD1uLmxhbmd1YWdlcy5sYXRleCxuLmxhbmd1YWdlcy5jb250ZXh0PW4ubGFuZ3VhZ2VzLmxhdGV4fSkodCl9cmV0dXJuIFJkfXZhciBfZCxsaztmdW5jdGlvbiBYcygpe2lmKGxrKXJldHVybiBfZDtsaz0xO3ZhciBlPWx0KCk7X2Q9dCx0LmRpc3BsYXlOYW1lPSJwaHAiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksZnVuY3Rpb24ocil7dmFyIGE9L1wvXCpbXHNcU10qP1wqXC98XC9cLy4qfCMoPyFcWykuKi8saT1be3BhdHRlcm46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLGFsaWFzOiJib29sZWFuIn0se3BhdHRlcm46Lyg6OlxzKilcYlthLXpfXVx3KlxiKD8hXHMqXCgpL2ksZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXGIoPzpjYXNlfGNvbnN0KVxzKylcYlthLXpfXVx3Kig/PVxzKls7PV0pL2ksZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LC9cYig/Om51bGwpXGIvaSwvXGJbQS1aX11bQS1aMC05X10qXGIoPyFccypcKCkvXSxvPS9cYjBiWzAxXSsoPzpfWzAxXSspKlxifFxiMG9bMC03XSsoPzpfWzAtN10rKSpcYnxcYjB4W1xkYS1mXSsoPzpfW1xkYS1mXSspKlxifCg/OlxiXGQrKD86X1xkKykqXC4/KD86XGQrKD86X1xkKykqKT98XEJcLlxkKykoPzplWystXT9cZCspPy9pLHM9Lzw/PT58XD9cPz0/fFwuezN9fFw/Py0+fFshPV09Pz0/fDo6fFwqXCo9P3wtLXxcK1wrfCYmfFx8XHx8PDx8Pj58Wz9+XXxbL158JSomPD4uKy1dPT8vLGw9L1t7fVxbXF0oKSw6O10vO3IubGFuZ3VhZ2VzLnBocD17ZGVsaW1pdGVyOntwYXR0ZXJuOi9cPz4kfF48XD8oPzpwaHAoPz1ccyl8PSk/L2ksYWxpYXM6ImltcG9ydGFudCJ9LGNvbW1lbnQ6YSx2YXJpYWJsZTovXCQrKD86XHcrXGJ8KD89XHspKS8scGFja2FnZTp7cGF0dGVybjovKG5hbWVzcGFjZVxzK3x1c2VccysoPzpmdW5jdGlvblxzKyk/KSg/OlxcP1xiW2Etel9dXHcqKStcYig/IVxcKS9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX0sImNsYXNzLW5hbWUtZGVmaW5pdGlvbiI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGVudW18aW50ZXJmYWNlfHRyYWl0KVxzKylcYlthLXpfXVx3Kig/IVxcKVxiL2ksbG9va2JlaGluZDohMCxhbGlhczoiY2xhc3MtbmFtZSJ9LCJmdW5jdGlvbi1kZWZpbml0aW9uIjp7cGF0dGVybjovKFxiZnVuY3Rpb25ccyspW2Etel9dXHcqKD89XHMqXCgpL2ksbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxrZXl3b3JkOlt7cGF0dGVybjovKFwoXHMqKVxiKD86YXJyYXl8Ym9vbHxib29sZWFufGZsb2F0fGludHxpbnRlZ2VyfG9iamVjdHxzdHJpbmcpXGIoPz1ccypcKSkvaSxhbGlhczoidHlwZS1jYXN0aW5nIixncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhbKCw/XVxzKilcYig/OmFycmF5KD8hXHMqXCgpfGJvb2x8Y2FsbGFibGV8KD86ZmFsc2V8bnVsbCkoPz1ccypcfCl8ZmxvYXR8aW50fGl0ZXJhYmxlfG1peGVkfG9iamVjdHxzZWxmfHN0YXRpY3xzdHJpbmcpXGIoPz1ccypcJCkvaSxhbGlhczoidHlwZS1oaW50IixncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhcKVxzKjpccyooPzpcP1xzKik/KVxiKD86YXJyYXkoPyFccypcKCl8Ym9vbHxjYWxsYWJsZXwoPzpmYWxzZXxudWxsKSg/PVxzKlx8KXxmbG9hdHxpbnR8aXRlcmFibGV8bWl4ZWR8b2JqZWN0fHNlbGZ8c3RhdGljfHN0cmluZ3x2b2lkKVxiL2ksYWxpYXM6InJldHVybi10eXBlIixncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46L1xiKD86YXJyYXkoPyFccypcKCl8Ym9vbHxmbG9hdHxpbnR8aXRlcmFibGV8bWl4ZWR8b2JqZWN0fHN0cmluZ3x2b2lkKVxiL2ksYWxpYXM6InR5cGUtZGVjbGFyYXRpb24iLGdyZWVkeTohMH0se3BhdHRlcm46LyhcfFxzKikoPzpmYWxzZXxudWxsKVxifFxiKD86ZmFsc2V8bnVsbCkoPz1ccypcfCkvaSxhbGlhczoidHlwZS1kZWNsYXJhdGlvbiIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi9cYig/OnBhcmVudHxzZWxmfHN0YXRpYykoPz1ccyo6OikvaSxhbGlhczoic3RhdGljLWNvbnRleHQiLGdyZWVkeTohMH0se3BhdHRlcm46LyhcYnlpZWxkXHMrKWZyb21cYi9pLGxvb2tiZWhpbmQ6ITB9LC9cYmNsYXNzXGIvaSx7cGF0dGVybjovKCg/Ol58W15ccz46XXwoPzpefFteLV0pPnwoPzpefFteOl0pOilccyopXGIoPzphYnN0cmFjdHxhbmR8YXJyYXl8YXN8YnJlYWt8Y2FsbGFibGV8Y2FzZXxjYXRjaHxjbG9uZXxjb25zdHxjb250aW51ZXxkZWNsYXJlfGRlZmF1bHR8ZGllfGRvfGVjaG98ZWxzZXxlbHNlaWZ8ZW1wdHl8ZW5kZGVjbGFyZXxlbmRmb3J8ZW5kZm9yZWFjaHxlbmRpZnxlbmRzd2l0Y2h8ZW5kd2hpbGV8ZW51bXxldmFsfGV4aXR8ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZufGZvcnxmb3JlYWNofGZ1bmN0aW9ufGdsb2JhbHxnb3RvfGlmfGltcGxlbWVudHN8aW5jbHVkZXxpbmNsdWRlX29uY2V8aW5zdGFuY2VvZnxpbnN0ZWFkb2Z8aW50ZXJmYWNlfGlzc2V0fGxpc3R8bWF0Y2h8bmFtZXNwYWNlfG5ld3xvcnxwYXJlbnR8cHJpbnR8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlcXVpcmV8cmVxdWlyZV9vbmNlfHJldHVybnxzZWxmfHN0YXRpY3xzd2l0Y2h8dGhyb3d8dHJhaXR8dHJ5fHVuc2V0fHVzZXx2YXJ8d2hpbGV8eG9yfHlpZWxkfF9faGFsdF9jb21waWxlcilcYi9pLGxvb2tiZWhpbmQ6ITB9XSwiYXJndW1lbnQtbmFtZSI6e3BhdHRlcm46LyhbKCxdXHMrKVxiW2Etel9dXHcqKD89XHMqOig/ITopKS9pLGxvb2tiZWhpbmQ6ITB9LCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46LyhcYig/OmV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfG5ldyg/IVxzK3NlbGZ8XHMrc3RhdGljKSlccyt8XGJjYXRjaFxzKlwoKVxiW2Etel9dXHcqKD8hXFwpXGIvaSxncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhcfFxzKilcYlthLXpfXVx3Kig/IVxcKVxiL2ksZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi9cYlthLXpfXVx3Kig/IVxcKVxiKD89XHMqXHwpL2ksZ3JlZWR5OiEwfSx7cGF0dGVybjovKFx8XHMqKSg/OlxcP1xiW2Etel9dXHcqKStcYi9pLGFsaWFzOiJjbGFzcy1uYW1lLWZ1bGx5LXF1YWxpZmllZCIsZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX0se3BhdHRlcm46Lyg/OlxcP1xiW2Etel9dXHcqKStcYig/PVxzKlx8KS9pLGFsaWFzOiJjbGFzcy1uYW1lLWZ1bGx5LXF1YWxpZmllZCIsZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319LHtwYXR0ZXJuOi8oXGIoPzpleHRlbmRzfGltcGxlbWVudHN8aW5zdGFuY2VvZnxuZXcoPyFccytzZWxmXGJ8XHMrc3RhdGljXGIpKVxzK3xcYmNhdGNoXHMqXCgpKD86XFw/XGJbYS16X11cdyopK1xiKD8hXFwpL2ksYWxpYXM6ImNsYXNzLW5hbWUtZnVsbHktcXVhbGlmaWVkIixncmVlZHk6ITAsbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cXC99fSx7cGF0dGVybjovXGJbYS16X11cdyooPz1ccypcJCkvaSxhbGlhczoidHlwZS1kZWNsYXJhdGlvbiIsZ3JlZWR5OiEwfSx7cGF0dGVybjovKD86XFw/XGJbYS16X11cdyopKyg/PVxzKlwkKS9pLGFsaWFzOlsiY2xhc3MtbmFtZS1mdWxseS1xdWFsaWZpZWQiLCJ0eXBlLWRlY2xhcmF0aW9uIl0sZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319LHtwYXR0ZXJuOi9cYlthLXpfXVx3Kig/PVxzKjo6KS9pLGFsaWFzOiJzdGF0aWMtY29udGV4dCIsZ3JlZWR5OiEwfSx7cGF0dGVybjovKD86XFw/XGJbYS16X11cdyopKyg/PVxzKjo6KS9pLGFsaWFzOlsiY2xhc3MtbmFtZS1mdWxseS1xdWFsaWZpZWQiLCJzdGF0aWMtY29udGV4dCJdLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cXC99fSx7cGF0dGVybjovKFsoLD9dXHMqKVthLXpfXVx3Kig/PVxzKlwkKS9pLGFsaWFzOiJ0eXBlLWhpbnQiLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKFsoLD9dXHMqKSg/OlxcP1xiW2Etel9dXHcqKSsoPz1ccypcJCkvaSxhbGlhczpbImNsYXNzLW5hbWUtZnVsbHktcXVhbGlmaWVkIiwidHlwZS1oaW50Il0sZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX0se3BhdHRlcm46LyhcKVxzKjpccyooPzpcP1xzKik/KVxiW2Etel9dXHcqKD8hXFwpXGIvaSxhbGlhczoicmV0dXJuLXR5cGUiLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKFwpXHMqOlxzKig/Olw/XHMqKT8pKD86XFw/XGJbYS16X11cdyopK1xiKD8hXFwpL2ksYWxpYXM6WyJjbGFzcy1uYW1lLWZ1bGx5LXF1YWxpZmllZCIsInJldHVybi10eXBlIl0sZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX1dLGNvbnN0YW50OmksZnVuY3Rpb246e3BhdHRlcm46LyhefFteXFxcd10pXFw/W2Etel9dKD86W1x3XFxdKlx3KT8oPz1ccypcKCkvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1xcL319LHByb3BlcnR5OntwYXR0ZXJuOi8oLT5ccyopXHcrLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6byxvcGVyYXRvcjpzLHB1bmN0dWF0aW9uOmx9O3ZhciB1PXtwYXR0ZXJuOi9ce1wkKD86XHsoPzpce1tee31dK1x9fFtee31dKylcfXxbXnt9XSkrXH18KF58W15cXHtdKVwkKyg/Olx3Kyg/OlxbW15cclxuXFtcXV0rXF18LT5cdyspPykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnIubGFuZ3VhZ2VzLnBocH0sYz1be3BhdHRlcm46Lzw8PCcoW14nXSspJ1tcclxuXSg/Oi4qW1xyXG5dKSo/XDE7LyxhbGlhczoibm93ZG9jLXN0cmluZyIsZ3JlZWR5OiEwLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9ePDw8J1teJ10rJ3xbYS16X11cdyo7JC9pLGFsaWFzOiJzeW1ib2wiLGluc2lkZTp7cHVuY3R1YXRpb246L148PDwnP3xbJztdJC99fX19LHtwYXR0ZXJuOi88PDwoPzoiKFteIl0rKSJbXHJcbl0oPzouKltcclxuXSkqP1wxO3woW2Etel9dXHcqKVtcclxuXSg/Oi4qW1xyXG5dKSo/XDI7KS9pLGFsaWFzOiJoZXJlZG9jLXN0cmluZyIsZ3JlZWR5OiEwLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9ePDw8KD86IlteIl0rInxbYS16X11cdyopfFthLXpfXVx3KjskL2ksYWxpYXM6InN5bWJvbCIsaW5zaWRlOntwdW5jdHVhdGlvbjovXjw8PCI/fFsiO10kL319LGludGVycG9sYXRpb246dX19LHtwYXR0ZXJuOi9gKD86XFxbXHNcU118W15cXGBdKSpgLyxhbGlhczoiYmFja3RpY2stcXVvdGVkLXN0cmluZyIsZ3JlZWR5OiEwfSx7cGF0dGVybjovJyg/OlxcW1xzXFNdfFteXFwnXSkqJy8sYWxpYXM6InNpbmdsZS1xdW90ZWQtc3RyaW5nIixncmVlZHk6ITB9LHtwYXR0ZXJuOi8iKD86XFxbXHNcU118W15cXCJdKSoiLyxhbGlhczoiZG91YmxlLXF1b3RlZC1zdHJpbmciLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246dX19XTtyLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInBocCIsInZhcmlhYmxlIix7c3RyaW5nOmMsYXR0cmlidXRlOntwYXR0ZXJuOi8jXFsoPzpbXiInXC8jXXxcLyg/IVsqL10pfFwvXC8uKiR8Iyg/IVxbKS4qJHxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcL3wiKD86XFxbXHNcU118W15cXCJdKSoifCcoPzpcXFtcc1xTXXxbXlxcJ10pKicpK1xdKD89XHMqW2EteiQjXSkvaW0sZ3JlZWR5OiEwLGluc2lkZTp7ImF0dHJpYnV0ZS1jb250ZW50Ijp7cGF0dGVybjovXigjXFspW1xzXFNdKyg/PVxdJCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntjb21tZW50OmEsc3RyaW5nOmMsImF0dHJpYnV0ZS1jbGFzcy1uYW1lIjpbe3BhdHRlcm46LyhbXjpdfF4pXGJbYS16X11cdyooPyFcXClcYi9pLGFsaWFzOiJjbGFzcy1uYW1lIixncmVlZHk6ITAsbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhbXjpdfF4pKD86XFw/XGJbYS16X11cdyopKy9pLGFsaWFzOlsiY2xhc3MtbmFtZSIsImNsYXNzLW5hbWUtZnVsbHktcXVhbGlmaWVkIl0sZ3JlZWR5OiEwLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX1dLGNvbnN0YW50OmksbnVtYmVyOm8sb3BlcmF0b3I6cyxwdW5jdHVhdGlvbjpsfX0sZGVsaW1pdGVyOntwYXR0ZXJuOi9eI1xbfFxdJC8sYWxpYXM6InB1bmN0dWF0aW9uIn19fX0pLHIuaG9va3MuYWRkKCJiZWZvcmUtdG9rZW5pemUiLGZ1bmN0aW9uKGQpe2lmKC88XD8vLnRlc3QoZC5jb2RlKSl7dmFyIHA9LzxcPyg/OlteIicvI118XC8oPyFbKi9dKXwoInwnKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKSpcMXwoPzpcL1wvfCMoPyFcWykpKD86W14/XG5ccl18XD8oPyE+KSkqKD89JHxcPz58W1xyXG5dKXwjXFt8XC9cKig/OlteKl18XCooPyFcLykpKig/OlwqXC98JCkpKj8oPzpcPz58JCkvZztyLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhkLCJwaHAiLHApfX0pLHIuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oZCl7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoZCwicGhwIil9KX0obil9cmV0dXJuIF9kfXZhciBJZCx1aztmdW5jdGlvbiBMNSgpe2lmKHVrKXJldHVybiBJZDt1az0xO3ZhciBlPWx0KCksdD1YcygpO0lkPW4sbi5kaXNwbGF5TmFtZT0ibGF0dGUiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKHIpe3IucmVnaXN0ZXIoZSksci5yZWdpc3Rlcih0KSxmdW5jdGlvbihhKXthLmxhbmd1YWdlcy5sYXR0ZT17Y29tbWVudDovXlx7XCpbXHNcU10qLywibGF0dGUtdGFnIjp7cGF0dGVybjovKF5ceyg/OlwvKD89W2Etel0pKT8pKD86Wz1fXXxbYS16XVx3KlxiKD8hXCgpKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9LGRlbGltaXRlcjp7cGF0dGVybjovXlx7XC8/fFx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scGhwOntwYXR0ZXJuOi9cUyg/Oltcc1xTXSpcUyk/LyxhbGlhczoibGFuZ3VhZ2UtcGhwIixpbnNpZGU6YS5sYW5ndWFnZXMucGhwfX07dmFyIGk9YS5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHt9KTthLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImluc2lkZSIsImF0dHItdmFsdWUiLHsibi1hdHRyIjp7cGF0dGVybjovbjpbXHctXSsoPzpccyo9XHMqKD86IlteIl0qInwnW14nXSonfFteXHMnIj49XSspKT8vLGluc2lkZTp7ImF0dHItbmFtZSI6e3BhdHRlcm46L15bXlxzPV0rLyxhbGlhczoiaW1wb3J0YW50In0sImF0dHItdmFsdWUiOntwYXR0ZXJuOi89W1xzXFNdKy8saW5zaWRlOntwdW5jdHVhdGlvbjpbL149Lyx7cGF0dGVybjovXihccyopWyInXXxbIiddJC8sbG9va2JlaGluZDohMH1dLHBocDp7cGF0dGVybjovXFMoPzpbXHNcU10qXFMpPy8saW5zaWRlOmEubGFuZ3VhZ2VzLnBocH19fX19fSxpLnRhZyksYS5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24obyl7aWYoby5sYW5ndWFnZT09PSJsYXR0ZSIpe3ZhciBzPS9ce1wqW1xzXFNdKj9cKlx9fFx7W14nIlxze30qXSg/OlteIicve31dfFwvKD8hWyovXSl8KCJ8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDF8XC9cKig/OlteKl18XCooPyFcLykpKlwqXC8pKlx9L2c7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMobywibGF0dGUiLHMpLG8uZ3JhbW1hcj1pfX0pLGEuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24obyl7YS5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMobywibGF0dGUiKX0pfShyKX1yZXR1cm4gSWR9dmFyIE5kLGNrO2Z1bmN0aW9uIEQ1KCl7aWYoY2spcmV0dXJuIE5kO2NrPTEsTmQ9ZSxlLmRpc3BsYXlOYW1lPSJsZXNzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5sZXNzPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY3NzIix7Y29tbWVudDpbL1wvXCpbXHNcU10qP1wqXC8vLHtwYXR0ZXJuOi8oXnxbXlxcXSlcL1wvLiovLGxvb2tiZWhpbmQ6ITB9XSxhdHJ1bGU6e3BhdHRlcm46L0BbXHctXSg/OlwoKD86W14oKXt9XXxcKFteKCl7fV0qXCkpKlwpfFteKCl7fTtcc118XHMrKD8hXHMpKSo/KD89XHMqXHspLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9bOigpXS99fSxzZWxlY3Rvcjp7cGF0dGVybjovKD86QFx7W1x3LV0rXH18W157fTtcc0BdKSg/OkBce1tcdy1dK1x9fFwoKD86W14oKXt9XXxcKFteKCl7fV0qXCkpKlwpfFteKCl7fTtAXHNdfFxzKyg/IVxzKSkqPyg/PVxzKlx7KS8saW5zaWRlOnt2YXJpYWJsZTovQCtbXHctXSsvfX0scHJvcGVydHk6Lyg/OkBce1tcdy1dK1x9fFtcdy1dKSsoPzpcK18/KT8oPz1ccyo6KS8sb3BlcmF0b3I6L1srXC0qXC9dL30pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgibGVzcyIsInByb3BlcnR5Iix7dmFyaWFibGU6W3twYXR0ZXJuOi9AW1x3LV0rXHMqOi8saW5zaWRlOntwdW5jdHVhdGlvbjovOi99fSwvQEA/W1x3LV0rL10sIm1peGluLXVzYWdlIjp7cGF0dGVybjovKFt7O11ccyopWy4jXSg/IVxkKVtcdy1dLio/KD89Wyg7XSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn19KX1yZXR1cm4gTmR9dmFyIENkLGRrO2Z1bmN0aW9uIFViKCl7aWYoZGspcmV0dXJuIENkO2RrPTEsQ2Q9ZSxlLmRpc3BsYXlOYW1lPSJzY2hlbWUiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5zY2hlbWU9e2NvbW1lbnQ6LzsuKnwjO1xzKig/OlwoKD86W14oKV18XChbXigpXSpcKSkqXCl8XFsoPzpbXlxbXF1dfFxbW15cW1xdXSpcXSkqXF0pfCNcfCg/OlteI3xdfCMoPyFcfCl8XHwoPyEjKXwjXHwoPzpbXiN8XXwjKD8hXHwpfFx8KD8hIykpKlx8IykqXHwjLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFwuKSoiLyxncmVlZHk6ITB9LHN5bWJvbDp7cGF0dGVybjovJ1teKClcW1xdIydcc10rLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46LyNcXCg/Olt1eF1bYS1mQS1GXGRdK1xifFstYS16QS1aXStcYnxbXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl18XFMpLyxncmVlZHk6ITB9LCJsYW1iZGEtcGFyYW1ldGVyIjpbe3BhdHRlcm46LygoPzpefFteJ2AjXSlbKFxbXWxhbWJkYVxzKykoPzpbXnwoKVxbXF0nXHNdK3xcfCg/OlteXFx8XXxcXC4pKlx8KS8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LygoPzpefFteJ2AjXSlbKFxbXWxhbWJkYVxzK1soXFtdKVteKClcW1xdJ10rLyxsb29rYmVoaW5kOiEwfV0sa2V5d29yZDp7cGF0dGVybjovKCg/Ol58W14nYCNdKVsoXFtdKSg/OmJlZ2lufGNhc2UoPzotbGFtYmRhKT98Y29uZCg/Oi1leHBhbmQpP3xkZWZpbmUoPzotbGlicmFyeXwtbWFjcm98LXJlY29yZC10eXBlfC1zeW50YXh8LXZhbHVlcyk/fGRlZm1hY3JvfGRlbGF5KD86LWZvcmNlKT98ZG98ZWxzZXxleGNlcHR8ZXhwb3J0fGd1YXJkfGlmfGltcG9ydHxpbmNsdWRlKD86LWNpfC1saWJyYXJ5LWRlY2xhcmF0aW9ucyk/fGxhbWJkYXxsZXQoPzpyZWMpPyg/Oi1zeW50YXh8LXZhbHVlc3xcKik/fGxldFwqLXZhbHVlc3xvbmx5fHBhcmFtZXRlcml6ZXxwcmVmaXh8KD86cXVhc2ktPyk/cXVvdGV8cmVuYW1lfHNldCF8c3ludGF4LSg/OmNhc2V8cnVsZXMpfHVubGVzc3x1bnF1b3RlKD86LXNwbGljaW5nKT98d2hlbikoPz1bKClcW1xdXHNdfCQpLyxsb29rYmVoaW5kOiEwfSxidWlsdGluOntwYXR0ZXJuOi8oKD86XnxbXidgI10pWyhcW10pKD86YWJzfGFuZHxhcHBlbmR8YXBwbHl8YXNzb2N8YXNzW3F2XXxiaW5hcnktcG9ydFw/fGJvb2xlYW49P1w/fGJ5dGV2ZWN0b3IoPzotYXBwZW5kfC1jb3B5fC1jb3B5IXwtbGVuZ3RofC11OC1yZWZ8LXU4LXNldCF8XD8pP3xjYWFyfGNhZHJ8Y2FsbC13aXRoLSg/OmN1cnJlbnQtY29udGludWF0aW9ufHBvcnR8dmFsdWVzKXxjYWxsXC9jY3xjYXJ8Y2RhcnxjZGRyfGNkcnxjZWlsaW5nfGNoYXIoPzotPmludGVnZXJ8LXJlYWR5XD98XD98PFw/fDw9XD98PVw/fD5cP3w+PVw/KXxjbG9zZS0oPzppbnB1dC1wb3J0fG91dHB1dC1wb3J0fHBvcnQpfGNvbXBsZXhcP3xjb25zfGN1cnJlbnQtKD86ZXJyb3J8aW5wdXR8b3V0cHV0KS1wb3J0fGRlbm9taW5hdG9yfGR5bmFtaWMtd2luZHxlb2Ytb2JqZWN0XD8/fGVxXD98ZXF1YWxcP3xlcXZcP3xlcnJvcnxlcnJvci1vYmplY3QoPzotaXJyaXRhbnRzfC1tZXNzYWdlfFw/KXxldmFsfGV2ZW5cP3xleGFjdCg/Oi1pbnRlZ2VyLXNxcnR8LWludGVnZXJcP3xcPyk/fGV4cHR8ZmVhdHVyZXN8ZmlsZS1lcnJvclw/fGZsb29yKD86LXF1b3RpZW50fC1yZW1haW5kZXJ8XC8pP3xmbHVzaC1vdXRwdXQtcG9ydHxmb3ItZWFjaHxnY2R8Z2V0LW91dHB1dC0oPzpieXRldmVjdG9yfHN0cmluZyl8aW5leGFjdFw/P3xpbnB1dC1wb3J0KD86LW9wZW5cP3xcPyl8aW50ZWdlcig/Oi0+Y2hhcnxcPyl8bGNtfGxlbmd0aHxsaXN0KD86LT5zdHJpbmd8LT52ZWN0b3J8LWNvcHl8LXJlZnwtc2V0IXwtdGFpbHxcPyk/fG1ha2UtKD86Ynl0ZXZlY3RvcnxsaXN0fHBhcmFtZXRlcnxzdHJpbmd8dmVjdG9yKXxtYXB8bWF4fG1lbWJlcnxtZW1xfG1lbXZ8bWlufG1vZHVsb3xuZWdhdGl2ZVw/fG5ld2xpbmV8bm90fG51bGxcP3xudW1iZXIoPzotPnN0cmluZ3xcPyl8bnVtZXJhdG9yfG9kZFw/fG9wZW4tKD86aW5wdXR8b3V0cHV0KS0oPzpieXRldmVjdG9yfHN0cmluZyl8b3J8b3V0cHV0LXBvcnQoPzotb3Blblw/fFw/KXxwYWlyXD98cGVlay1jaGFyfHBlZWstdTh8cG9ydFw/fHBvc2l0aXZlXD98cHJvY2VkdXJlXD98cXVvdGllbnR8cmFpc2V8cmFpc2UtY29udGludWFibGV8cmF0aW9uYWxcP3xyYXRpb25hbGl6ZXxyZWFkLSg/OmJ5dGV2ZWN0b3J8Ynl0ZXZlY3RvciF8Y2hhcnxlcnJvclw/fGxpbmV8c3RyaW5nfHU4KXxyZWFsXD98cmVtYWluZGVyfHJldmVyc2V8cm91bmR8c2V0LWNbYWRdciF8c3F1YXJlfHN0cmluZyg/Oi0+bGlzdHwtPm51bWJlcnwtPnN5bWJvbHwtPnV0Zjh8LT52ZWN0b3J8LWFwcGVuZHwtY29weXwtY29weSF8LWZpbGwhfC1mb3ItZWFjaHwtbGVuZ3RofC1tYXB8LXJlZnwtc2V0IXxcP3w8XD98PD1cP3w9XD98Plw/fD49XD8pP3xzdWJzdHJpbmd8c3ltYm9sKD86LT5zdHJpbmd8XD98PVw/KXxzeW50YXgtZXJyb3J8dGV4dHVhbC1wb3J0XD98dHJ1bmNhdGUoPzotcXVvdGllbnR8LXJlbWFpbmRlcnxcLyk/fHU4LXJlYWR5XD98dXRmOC0+c3RyaW5nfHZhbHVlc3x2ZWN0b3IoPzotPmxpc3R8LT5zdHJpbmd8LWFwcGVuZHwtY29weXwtY29weSF8LWZpbGwhfC1mb3ItZWFjaHwtbGVuZ3RofC1tYXB8LXJlZnwtc2V0IXxcPyk/fHdpdGgtZXhjZXB0aW9uLWhhbmRsZXJ8d3JpdGUtKD86Ynl0ZXZlY3RvcnxjaGFyfHN0cmluZ3x1OCl8emVyb1w/KSg/PVsoKVxbXF1cc118JCkvLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOntwYXR0ZXJuOi8oKD86XnxbXidgI10pWyhcW10pKD86Wy0rKiUvXXxbPD5dPT98PT4/KSg/PVsoKVxbXF1cc118JCkvLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjp7cGF0dGVybjpSZWdFeHAocih7Ijx1cmVhbCBkZWM+IjovXGQrKD86XC9cZCspfCg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86W2VzZmRsXVsrLV0/XGQrKT8vLnNvdXJjZSwiPHJlYWwgZGVjPiI6L1srLV0/PHVyZWFsIGRlYz58WystXSg/OmluZnxuYW4pXC4wLy5zb3VyY2UsIjxpbWFnaW5hcnkgZGVjPiI6L1srLV0oPzo8dXJlYWwgZGVjPnwoPzppbmZ8bmFuKVwuMCk/aS8uc291cmNlLCI8Y29tcGxleCBkZWM+IjovPHJlYWwgZGVjPig/OkA8cmVhbCBkZWM+fDxpbWFnaW5hcnkgZGVjPik/fDxpbWFnaW5hcnkgZGVjPi8uc291cmNlLCI8bnVtIGRlYz4iOi8oPzojZCg/OiNbZWldKT98I1tlaV0oPzojZCk/KT88Y29tcGxleCBkZWM+Ly5zb3VyY2UsIjx1cmVhbCBib3g+IjovWzAtOWEtZl0rKD86XC9bMC05YS1mXSspPy8uc291cmNlLCI8cmVhbCBib3g+IjovWystXT88dXJlYWwgYm94PnxbKy1dKD86aW5mfG5hbilcLjAvLnNvdXJjZSwiPGltYWdpbmFyeSBib3g+IjovWystXSg/Ojx1cmVhbCBib3g+fCg/OmluZnxuYW4pXC4wKT9pLy5zb3VyY2UsIjxjb21wbGV4IGJveD4iOi88cmVhbCBib3g+KD86QDxyZWFsIGJveD58PGltYWdpbmFyeSBib3g+KT98PGltYWdpbmFyeSBib3g+Ly5zb3VyY2UsIjxudW0gYm94PiI6LyNbYm94XSg/OiNbZWldKT98KD86I1tlaV0pPyNbYm94XTxjb21wbGV4IGJveD4vLnNvdXJjZSwiPG51bWJlcj4iOi8oXnxbKClcW1xdXHNdKSg/OjxudW0gZGVjPnw8bnVtIGJveD4pKD89WygpXFtcXVxzXXwkKS8uc291cmNlfSksImkiKSxsb29rYmVoaW5kOiEwfSxib29sZWFuOntwYXR0ZXJuOi8oXnxbKClcW1xdXHNdKSMoPzpbZnRdfGZhbHNlfHRydWUpKD89WygpXFtcXVxzXXwkKS8sbG9va2JlaGluZDohMH0sZnVuY3Rpb246e3BhdHRlcm46LygoPzpefFteJ2AjXSlbKFxbXSkoPzpbXnwoKVxbXF0nXHNdK3xcfCg/OlteXFx8XXxcXC4pKlx8KSg/PVsoKVxbXF1cc118JCkvLGxvb2tiZWhpbmQ6ITB9LGlkZW50aWZpZXI6e3BhdHRlcm46LyhefFsoKVxbXF1cc10pXHwoPzpbXlxcfF18XFwuKSpcfCg/PVsoKVxbXF1cc118JCkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxwdW5jdHVhdGlvbjovWygpXFtcXSddL307ZnVuY3Rpb24gcihhKXtmb3IodmFyIGkgaW4gYSlhW2ldPWFbaV0ucmVwbGFjZSgvPFtcd1xzXSs+L2csZnVuY3Rpb24obyl7cmV0dXJuIig/OiIrYVtvXS50cmltKCkrIikifSk7cmV0dXJuIGFbaV19fSkodCl9cmV0dXJuIENkfXZhciBPZCxwaztmdW5jdGlvbiBNNSgpe2lmKHBrKXJldHVybiBPZDtwaz0xO3ZhciBlPVViKCk7T2Q9dCx0LmRpc3BsYXlOYW1lPSJsaWx5cG9uZCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtmb3IodmFyIGE9L1woKD86W14oKTsiI1xcXXxcXFtcc1xTXXw7LiooPyEuKXwiKD86W14iXFxdfFxcLikqInwjKD86XHsoPzooPyEjXH0pW1xzXFNdKSojXH18W157XSl8PGV4cHI+KSpcKS8uc291cmNlLGk9NSxvPTA7bzxpO28rKylhPWEucmVwbGFjZSgvPGV4cHI+L2csZnVuY3Rpb24oKXtyZXR1cm4gYX0pO2E9YS5yZXBsYWNlKC88ZXhwcj4vZywvW15cc1xTXS8uc291cmNlKTt2YXIgcz1yLmxhbmd1YWdlcy5saWx5cG9uZD17Y29tbWVudDovJSg/Oig/IVx7KS4qfFx7W1xzXFNdKj8lXH0pLywiZW1iZWRkZWQtc2NoZW1lIjp7cGF0dGVybjpSZWdFeHAoLyhefFs9XHNdKSMoPzoiKD86W14iXFxdfFxcLikqInxbXlxzKCkiXSooPzpbXlxzKCldfDxleHByPikpLy5zb3VyY2UucmVwbGFjZSgvPGV4cHI+L2csZnVuY3Rpb24oKXtyZXR1cm4gYX0pLCJtIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntzY2hlbWU6e3BhdHRlcm46L14oIylbXHNcU10rJC8sbG9va2JlaGluZDohMCxhbGlhczoibGFuZ3VhZ2Utc2NoZW1lIixpbnNpZGU6eyJlbWJlZGRlZC1saWx5cG9uZCI6e3BhdHRlcm46LyNce1tcc1xTXSo/I1x9LyxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXiNce3wjXH0kLyxsaWx5cG9uZDp7cGF0dGVybjovW1xzXFNdKy8sYWxpYXM6Imxhbmd1YWdlLWxpbHlwb25kIixpbnNpZGU6bnVsbH19fSxyZXN0OnIubGFuZ3VhZ2VzLnNjaGVtZX19LHB1bmN0dWF0aW9uOi8jL319LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiIvLGdyZWVkeTohMH0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXFxuZXdccyspW1x3LV0rLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOntwYXR0ZXJuOi9cXFthLXpdWy1cd10qL2ksaW5zaWRlOntwdW5jdHVhdGlvbjovXlxcL319LG9wZXJhdG9yOi9bPXxdfDw8fD4+LyxwdW5jdHVhdGlvbjp7cGF0dGVybjovKF58W2EtelxkXSkoPzonK3wsK3xbX15dPy1bX15dPyg/OlstK14hPi5fXXwoPz1cZCkpfFtfXl1cLj98Wy4hXSl8W3t9KClbXF08Pl5+XXxcXFsoKVtcXTw+XFwhXXwtLXxfXy8sbG9va2JlaGluZDohMH0sbnVtYmVyOi9cYlxkKyg/OlwvXGQrKT9cYi99O3NbImVtYmVkZGVkLXNjaGVtZSJdLmluc2lkZS5zY2hlbWUuaW5zaWRlWyJlbWJlZGRlZC1saWx5cG9uZCJdLmluc2lkZS5saWx5cG9uZC5pbnNpZGU9cyxyLmxhbmd1YWdlcy5seT1zfShuKX1yZXR1cm4gT2R9dmFyIExkLGZrO2Z1bmN0aW9uIFA1KCl7aWYoZmspcmV0dXJuIExkO2ZrPTE7dmFyIGU9bHQoKTtMZD10LHQuZGlzcGxheU5hbWU9ImxpcXVpZCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxuLmxhbmd1YWdlcy5saXF1aWQ9e2NvbW1lbnQ6e3BhdHRlcm46LyheXHslXHMqY29tbWVudFxzKiVcfSlbXHNcU10rKD89XHslXHMqZW5kY29tbWVudFxzKiVcfSQpLyxsb29rYmVoaW5kOiEwfSxkZWxpbWl0ZXI6e3BhdHRlcm46L15ceyg/Olx7XHt8WyVce10pLT98LT8oPzpcfVx9fFslXH1dKVx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sc3RyaW5nOntwYXR0ZXJuOi8iW14iXSoifCdbXiddKicvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphc3xhc3NpZ258YnJlYWt8KD86ZW5kKT8oPzpjYXB0dXJlfGNhc2V8Y29tbWVudHxmb3J8Zm9ybXxpZnxwYWdpbmF0ZXxyYXd8c3R5bGV8dGFibGVyb3d8dW5sZXNzKXxjb250aW51ZXxjeWNsZXxkZWNyZW1lbnR8ZWNob3xlbHNlfGVsc2lmfGlufGluY2x1ZGV8aW5jcmVtZW50fGxpbWl0fGxpcXVpZHxvZmZzZXR8cmFuZ2V8cmVuZGVyfHJldmVyc2VkfHNlY3Rpb258d2hlbnx3aXRoKVxiLyxvYmplY3Q6L1xiKD86YWRkcmVzc3xhbGxfY291bnRyeV9vcHRpb25fdGFnc3xhcnRpY2xlfGJsb2NrfGJsb2d8Y2FydHxjaGVja291dHxjb2xsZWN0aW9ufGNvbG9yfGNvdW50cnl8Y291bnRyeV9vcHRpb25fdGFnc3xjdXJyZW5jeXxjdXJyZW50X3BhZ2V8Y3VycmVudF90YWdzfGN1c3RvbWVyfGN1c3RvbWVyX2FkZHJlc3N8ZGF0ZXxkaXNjb3VudF9hbGxvY2F0aW9ufGRpc2NvdW50X2FwcGxpY2F0aW9ufGV4dGVybmFsX3ZpZGVvfGZpbHRlcnxmaWx0ZXJfdmFsdWV8Zm9udHxmb3Jsb29wfGZ1bGZpbGxtZW50fGdlbmVyaWNfZmlsZXxnaWZ0X2NhcmR8Z3JvdXB8aGFuZGxlfGltYWdlfGxpbmVfaXRlbXxsaW5rfGxpbmtsaXN0fGxvY2FsaXphdGlvbnxsb2NhdGlvbnxtZWFzdXJlbWVudHxtZWRpYXxtZXRhZmllbGR8bW9kZWx8bW9kZWxfc291cmNlfG9yZGVyfHBhZ2V8cGFnZV9kZXNjcmlwdGlvbnxwYWdlX2ltYWdlfHBhZ2VfdGl0bGV8cGFydHxwb2xpY3l8cHJvZHVjdHxwcm9kdWN0X29wdGlvbnxyZWNvbW1lbmRhdGlvbnN8cmVxdWVzdHxyb2JvdHN8cm91dGVzfHJ1bGV8c2NyaXB0fHNlYXJjaHxzZWxsaW5nX3BsYW58c2VsbGluZ19wbGFuX2FsbG9jYXRpb258c2VsbGluZ19wbGFuX2dyb3VwfHNoaXBwaW5nX21ldGhvZHxzaG9wfHNob3BfbG9jYWxlfHNpdGVtYXB8c3RvcmVfYXZhaWxhYmlsaXR5fHRheF9saW5lfHRlbXBsYXRlfHRoZW1lfHRyYW5zYWN0aW9ufHVuaXRfcHJpY2VfbWVhc3VyZW1lbnR8dXNlcl9hZ2VudHx2YXJpYW50fHZpZGVvfHZpZGVvX3NvdXJjZSlcYi8sZnVuY3Rpb246W3twYXR0ZXJuOi8oXHxccyopXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmaWx0ZXIifSx7cGF0dGVybjovKFwuXHMqKSg/OmZpcnN0fGxhc3R8c2l6ZSkvLGxvb2tiZWhpbmQ6ITB9XSxib29sZWFuOi9cYig/OmZhbHNlfG5pbHx0cnVlKVxiLyxyYW5nZTp7cGF0dGVybjovXC5cLi8sYWxpYXM6Im9wZXJhdG9yIn0sbnVtYmVyOi9cYlxkKyg/OlwuXGQrKT9cYi8sb3BlcmF0b3I6L1shPV09fDw+fFs8Pl09P3xbfD86PS1dfFxiKD86YW5kfGNvbnRhaW5zKD89XHMpfG9yKVxiLyxwdW5jdHVhdGlvbjovWy4sXFtcXSgpXS8sZW1wdHk6e3BhdHRlcm46L1xiZW1wdHlcYi8sYWxpYXM6ImtleXdvcmQifX0sbi5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24ocil7dmFyIGE9L1x7JVxzKmNvbW1lbnRccyolXH1bXHNcU10qP1x7JVxzKmVuZGNvbW1lbnRccyolXH18XHsoPzolW1xzXFNdKj8lfFx7XHtbXHNcU10qP1x9XH18XHtbXHNcU10qP1x9KVx9L2csaT0hMTtuLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhyLCJsaXF1aWQiLGEsZnVuY3Rpb24obyl7dmFyIHM9L15ceyUtP1xzKihcdyspLy5leGVjKG8pO2lmKHMpe3ZhciBsPXNbMV07aWYobD09PSJyYXciJiYhaSlyZXR1cm4gaT0hMCwhMDtpZihsPT09ImVuZHJhdyIpcmV0dXJuIGk9ITEsITB9cmV0dXJuIWl9KX0pLG4uaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24ocil7bi5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMociwibGlxdWlkIil9KX1yZXR1cm4gTGR9dmFyIERkLG1rO2Z1bmN0aW9uIEY1KCl7aWYobWspcmV0dXJuIERkO21rPTEsRGQ9ZSxlLmRpc3BsYXlOYW1lPSJsaXNwIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7ZnVuY3Rpb24gcihiKXtyZXR1cm4gUmVnRXhwKC8oXCgpLy5zb3VyY2UrIig/OiIrYisiKSIrLyg/PVtcc1wpXSkvLnNvdXJjZSl9ZnVuY3Rpb24gYShiKXtyZXR1cm4gUmVnRXhwKC8oW1xzKFtdKS8uc291cmNlKyIoPzoiK2IrIikiKy8oPz1bXHMpXSkvLnNvdXJjZSl9dmFyIGk9Lyg/IVxkKVstKyovfiFAJCVePTw+e31cd10rLy5zb3VyY2Usbz0iJiIraSxzPSIoXFwoKSIsbD0iKD89XFwpKSIsdT0iKD89XFxzKSIsYz0vKD86W14oKV18XCgoPzpbXigpXXxcKCg/OlteKCldfFwoKD86W14oKV18XCgoPzpbXigpXXxcKFteKCldKlwpKSpcKSkqXCkpKlwpKSpcKSkqLy5zb3VyY2UsZD17aGVhZGluZzp7cGF0dGVybjovOzs7LiovLGFsaWFzOlsiY29tbWVudCIsInRpdGxlIl19LGNvbW1lbnQ6LzsuKi8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sZ3JlZWR5OiEwLGluc2lkZTp7YXJndW1lbnQ6L1stQS1aXSsoPz1bLixcc10pLyxzeW1ib2w6UmVnRXhwKCJgIitpKyInIil9fSwicXVvdGVkLXN5bWJvbCI6e3BhdHRlcm46UmVnRXhwKCIjPyciK2kpLGFsaWFzOlsidmFyaWFibGUiLCJzeW1ib2wiXX0sImxpc3AtcHJvcGVydHkiOntwYXR0ZXJuOlJlZ0V4cCgiOiIraSksYWxpYXM6InByb3BlcnR5In0sc3BsaWNlOntwYXR0ZXJuOlJlZ0V4cCgiLEA/IitpKSxhbGlhczpbInN5bWJvbCIsInZhcmlhYmxlIl19LGtleXdvcmQ6W3twYXR0ZXJuOlJlZ0V4cChzKyIoPzphbmR8KD86Y2wtKT9sZXRmfGNsLWxvb3B8Y29uZHxjb25zfGVycm9yfGlmfCg/OmxleGljYWwtKT9sZXRcXCo/fG1lc3NhZ2V8bm90fG51bGx8b3J8cHJvdmlkZXxyZXF1aXJlfHNldHF8dW5sZXNzfHVzZS1wYWNrYWdlfHdoZW58d2hpbGUpIit1KSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjpSZWdFeHAocysiKD86YXBwZW5kfGJ5fGNvbGxlY3R8Y29uY2F0fGRvfGZpbmFsbHl8Zm9yfGlufHJldHVybikiK3UpLGxvb2tiZWhpbmQ6ITB9XSxkZWNsYXJlOntwYXR0ZXJuOnIoL2RlY2xhcmUvLnNvdXJjZSksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGludGVyYWN0aXZlOntwYXR0ZXJuOnIoL2ludGVyYWN0aXZlLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxib29sZWFuOntwYXR0ZXJuOmEoL25pbHx0Ly5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjp7cGF0dGVybjphKC9bLStdP1xkKyg/OlwuXGQqKT8vLnNvdXJjZSksbG9va2JlaGluZDohMH0sZGVmdmFyOntwYXR0ZXJuOlJlZ0V4cChzKyJkZWYoPzpjb25zdHxjdXN0b218Z3JvdXB8dmFyKVxccysiK2kpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eZGVmW2Etel0rLyx2YXJpYWJsZTpSZWdFeHAoaSl9fSxkZWZ1bjp7cGF0dGVybjpSZWdFeHAocysvKD86Y2wtKT8oPzpkZWZtYWNyb3xkZWZ1blwqPylccysvLnNvdXJjZStpKy9ccytcKC8uc291cmNlK2MrL1wpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7a2V5d29yZDovXig/OmNsLSk/ZGVmXFMrLyxhcmd1bWVudHM6bnVsbCxmdW5jdGlvbjp7cGF0dGVybjpSZWdFeHAoIiheXFxzKSIraSksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1soKV0vfX0sbGFtYmRhOntwYXR0ZXJuOlJlZ0V4cChzKyJsYW1iZGFcXHMrXFwoXFxzKig/OiY/IitpKyIoPzpcXHMrJj8iK2krIikqXFxzKik/XFwpIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntrZXl3b3JkOi9ebGFtYmRhLyxhcmd1bWVudHM6bnVsbCxwdW5jdHVhdGlvbjovWygpXS99fSxjYXI6e3BhdHRlcm46UmVnRXhwKHMraSksbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246Wy8oPzpbJ2AsXT9cKHxbKVxbXF1dKS8se3BhdHRlcm46LyhccylcLig/PVxzKS8sbG9va2JlaGluZDohMH1dfSxwPXsibGlzcC1tYXJrZXIiOlJlZ0V4cChvKSx2YXJmb3JtOntwYXR0ZXJuOlJlZ0V4cCgvXCgvLnNvdXJjZStpKy9ccysoPz1cUykvLnNvdXJjZStjKy9cKS8uc291cmNlKSxpbnNpZGU6ZH0sYXJndW1lbnQ6e3BhdHRlcm46UmVnRXhwKC8oXnxbXHMoXSkvLnNvdXJjZStpKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LHJlc3Q6ZH0sZj0iXFxTKyg/OlxccytcXFMrKSoiLHk9e3BhdHRlcm46UmVnRXhwKHMrYytsKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7InJlc3QtdmFycyI6e3BhdHRlcm46UmVnRXhwKCImKD86Ym9keXxyZXN0KVxccysiK2YpLGluc2lkZTpwfSwib3RoZXItbWFya2VyLXZhcnMiOntwYXR0ZXJuOlJlZ0V4cCgiJig/OmF1eHxvcHRpb25hbClcXHMrIitmKSxpbnNpZGU6cH0sa2V5czp7cGF0dGVybjpSZWdFeHAoIiZrZXlcXHMrIitmKyIoPzpcXHMrJmFsbG93LW90aGVyLWtleXMpPyIpLGluc2lkZTpwfSxhcmd1bWVudDp7cGF0dGVybjpSZWdFeHAoaSksYWxpYXM6InZhcmlhYmxlIn0scHVuY3R1YXRpb246L1soKV0vfX07ZC5sYW1iZGEuaW5zaWRlLmFyZ3VtZW50cz15LGQuZGVmdW4uaW5zaWRlLmFyZ3VtZW50cz1uLnV0aWwuY2xvbmUoeSksZC5kZWZ1bi5pbnNpZGUuYXJndW1lbnRzLmluc2lkZS5zdWJsaXN0PXksbi5sYW5ndWFnZXMubGlzcD1kLG4ubGFuZ3VhZ2VzLmVsaXNwPWQsbi5sYW5ndWFnZXMuZW1hY3M9ZCxuLmxhbmd1YWdlc1siZW1hY3MtbGlzcCJdPWR9KSh0KX1yZXR1cm4gRGR9dmFyIE1kLGdrO2Z1bmN0aW9uIFU1KCl7aWYoZ2spcmV0dXJuIE1kO2drPTEsTWQ9ZSxlLmRpc3BsYXlOYW1lPSJsaXZlc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5saXZlc2NyaXB0PXtjb21tZW50Olt7cGF0dGVybjovKF58W15cXF0pXC9cKltcc1xTXSo/XCpcLy8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteXFxdKSMuKi8sbG9va2JlaGluZDohMH1dLCJpbnRlcnBvbGF0ZWQtc3RyaW5nIjp7cGF0dGVybjovKF58W14iXSkoIiIifCIpKD86XFxbXHNcU118KD8hXDIpW15cXF0pKlwyKD8hIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46LyhefFteXFxdKSNbYS16X10oPzotP1thLXpdfFtcZF9dKSovbSxsb29rYmVoaW5kOiEwfSxpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oXnxbXlxcXSkjXHtbXn1dK1x9L20sbG9va2JlaGluZDohMCxpbnNpZGU6eyJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXiNce3xcfSQvLGFsaWFzOiJ2YXJpYWJsZSJ9fX0sc3RyaW5nOi9bXHNcU10rL319LHN0cmluZzpbe3BhdHRlcm46LygnJyd8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0se3BhdHRlcm46LzxcW1tcc1xTXSo/XF0+LyxncmVlZHk6ITB9LC9cXFteXHMsO1xdKX1dKy9dLHJlZ2V4Olt7cGF0dGVybjovXC9cLyg/OlxbW15cclxuXF1dKlxdfFxcLnwoPyFcL1wvKVteXFxcW10pK1wvXC9bZ2lteXVdezAsNX0vLGdyZWVkeTohMCxpbnNpZGU6e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSMuKi8sbG9va2JlaGluZDohMH19fSx7cGF0dGVybjovXC8oPzpcW1teXHJcblxdXSpcXXxcXC58W14vXFxcclxuXFtdKStcL1tnaW15dV17MCw1fS8sZ3JlZWR5OiEwfV0sa2V5d29yZDp7cGF0dGVybjovKF58KD8hLSkuKVxiKD86YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxjb250aW51ZXxkZWZhdWx0fGRvfGVsc2V8ZXh0ZW5kc3xmYWxsdGhyb3VnaHxmaW5hbGx5fGZvcig/OiBldmVyKT98ZnVuY3Rpb258aWZ8aW1wbGVtZW50c3xpdHxsZXR8bG9vcHxuZXd8bnVsbHxvdGhlcndpc2V8b3dufHJldHVybnxzdXBlcnxzd2l0Y2h8dGhhdHx0aGVufHRoaXN8dGhyb3d8dHJ5fHVubGVzc3x1bnRpbHx2YXJ8dm9pZHx3aGVufHdoaWxlfHlpZWxkKSg/IS0pXGIvbSxsb29rYmVoaW5kOiEwfSwia2V5d29yZC1vcGVyYXRvciI6e3BhdHRlcm46LyhefFteLV0pXGIoPzooPzpkZWxldGV8cmVxdWlyZXx0eXBlb2YpIXwoPzphbmR8Ynl8ZGVsZXRlfGV4cG9ydHxmcm9tfGltcG9ydCg/OiBhbGwpP3xpbnxpbnN0YW5jZW9mfGlzKD86IG5vdHxudCk/fG5vdHxvZnxvcnx0aWx8dG98dHlwZW9mfHdpdGh8eG9yKSg/IS0pXGIpL20sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxib29sZWFuOntwYXR0ZXJuOi8oXnxbXi1dKVxiKD86ZmFsc2V8bm98b2ZmfG9ufHRydWV8eWVzKSg/IS0pXGIvbSxsb29rYmVoaW5kOiEwfSxhcmd1bWVudDp7cGF0dGVybjovKF58KD8hXC4mXC4pW14mXSkmKD8hJilcZCovbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LG51bWJlcjovXGIoPzpcZCt+W1xkYS16XSt8XGRbXGRfXSooPzpcLlxkW1xkX10qKT8oPzpbYS16XVx3Kik/KS9pLGlkZW50aWZpZXI6L1thLXpfXSg/Oi0/W2Etel18W1xkX10pKi9pLG9wZXJhdG9yOlt7cGF0dGVybjovKCApXC4oPz0gKS8sbG9va2JlaGluZDohMH0sL1wuKD86Wz1+XXxcLlwuPyl8XC4oPzpbJnxeXXw8PHw+Pj4/KVwufDooPzo9fDo9Pyl8JiZ8XHxbfD5dfDwoPzo8PD88P3wtLT8hP3x+fj8hP3xbfD0/XSk/fD5bPj0/XT98LSg/Oi0+P3w+KT98XCtcKz98QEA/fCUlP3xcKlwqP3whKD86fj89fC0tPz58fj9+Pik/fH4oPzp+Pz58PSk/fD09P3xcXlxeP3xbXC8/XS9dLHB1bmN0dWF0aW9uOi9bKCl7fVxbXF18Liw6O2BdL30sdC5sYW5ndWFnZXMubGl2ZXNjcmlwdFsiaW50ZXJwb2xhdGVkLXN0cmluZyJdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5yZXN0PXQubGFuZ3VhZ2VzLmxpdmVzY3JpcHR9cmV0dXJuIE1kfXZhciBQZCxoaztmdW5jdGlvbiBCNSgpe2lmKGhrKXJldHVybiBQZDtoaz0xLFBkPWUsZS5kaXNwbGF5TmFtZT0ibGx2bSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe24ubGFuZ3VhZ2VzLmxsdm09e2NvbW1lbnQ6LzsuKi8sc3RyaW5nOntwYXR0ZXJuOi8iW14iXSoiLyxncmVlZHk6ITB9LGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sdmFyaWFibGU6L1slQCEjXSg/Oig/IVxkKSg/OlstJC5cd118XFxbYS1mXGRdezJ9KSt8XGQrKS9pLGxhYmVsOi8oPyFcZCkoPzpbLSQuXHddfFxcW2EtZlxkXXsyfSkrOi9pLHR5cGU6e3BhdHRlcm46L1xiKD86ZG91YmxlfGZsb2F0fGZwMTI4fGhhbGZ8aVsxLTldXGQqfGxhYmVsfG1ldGFkYXRhfHBwY19mcDEyOHx0b2tlbnx2b2lkfHg4Nl9mcDgwfHg4Nl9tbXgpXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn0sa2V5d29yZDovXGJbYS16X11bYS16XzAtOV0qXGIvLG51bWJlcjovWystXT9cYlxkKyg/OlwuXGQrKT8oPzpbZUVdWystXT9cZCspP1xifFxiMHhbXGRBLUZhLWZdK1xifFxiMHhLW1xkQS1GYS1mXXsyMH1cYnxcYjB4W01MXVtcZEEtRmEtZl17MzJ9XGJ8XGIweEhbXGRBLUZhLWZdezR9XGIvLHB1bmN0dWF0aW9uOi9be31bXF07KCksLiEqPTw+XS99fSkodCl9cmV0dXJuIFBkfXZhciBGZCxiaztmdW5jdGlvbiAkNSgpe2lmKGJrKXJldHVybiBGZDtiaz0xLEZkPWUsZS5kaXNwbGF5TmFtZT0ibG9nIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5sb2c9e3N0cmluZzp7cGF0dGVybjovIig/OlteIlxcXHJcbl18XFwuKSoifCcoPyFbc3RdIHwgXHcpKD86W14nXFxcclxuXXxcXC4pKicvLGdyZWVkeTohMH0sZXhjZXB0aW9uOntwYXR0ZXJuOi8oXnxbXlx3Ll0pW2Etel1bXHcuXSooPzpFcnJvcnxFeGNlcHRpb24pOi4qKD86KD86XHJcbj98XG4pWyBcdF0qKD86YXRbIFx0XS4rfFwuezN9Lip8Q2F1c2VkIGJ5Oi4qKSkrKD86KD86XHJcbj98XG4pWyBcdF0qXC5cLlwuIC4qKT8vLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOlsiamF2YXN0YWNrdHJhY2UiLCJsYW5ndWFnZS1qYXZhc3RhY2t0cmFjZSJdLGluc2lkZTp0Lmxhbmd1YWdlcy5qYXZhc3RhY2t0cmFjZXx8e2tleXdvcmQ6L1xiYXRcYi8sZnVuY3Rpb246L1thLXpfXVtcdyRdKig/PVwoKS8scHVuY3R1YXRpb246L1suOigpXS99fSxsZXZlbDpbe3BhdHRlcm46L1xiKD86QUxFUlR8Q1JJVHxDUklUSUNBTHxFTUVSR3xFTUVSR0VOQ1l8RVJSfEVSUk9SfEZBSUxVUkV8RkFUQUx8U0VWRVJFKVxiLyxhbGlhczpbImVycm9yIiwiaW1wb3J0YW50Il19LHtwYXR0ZXJuOi9cYig/OldBUk58V0FSTklOR3xXUk4pXGIvLGFsaWFzOlsid2FybmluZyIsImltcG9ydGFudCJdfSx7cGF0dGVybjovXGIoPzpESVNQTEFZfElORnxJTkZPfE5PVElDRXxTVEFUVVMpXGIvLGFsaWFzOlsiaW5mbyIsImtleXdvcmQiXX0se3BhdHRlcm46L1xiKD86REJHfERFQlVHfEZJTkUpXGIvLGFsaWFzOlsiZGVidWciLCJrZXl3b3JkIl19LHtwYXR0ZXJuOi9cYig/OkZJTkVSfEZJTkVTVHxUUkFDRXxUUkN8VkVSQk9TRXxWUkIpXGIvLGFsaWFzOlsidHJhY2UiLCJjb21tZW50Il19XSxwcm9wZXJ0eTp7cGF0dGVybjovKCg/Ol58W1xdfF0pWyBcdF0qKVthLXpfXSg/Oltcdy1dfFxiXC9cYikqKD86Wy4gXVwoP1x3KD86W1x3LV18XGJcL1xiKSpcKT8pKjooPz1ccykvaW0sbG9va2JlaGluZDohMH0sc2VwYXJhdG9yOntwYXR0ZXJuOi8oXnxbXi0rXSktezMsfXw9ezMsfXxcKnszLH18LSAtIC9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbW1lbnQifSx1cmw6L1xiKD86ZmlsZXxmdHB8aHR0cHM/KTpcL1wvW15cc3wsOyciXSpbXlxzfCw7JyI+Ll0vLGVtYWlsOntwYXR0ZXJuOi8oXnxccylbLVx3Ky5dK0BbYS16XVthLXowLTktXSooPzpcLlthLXpdW2EtejAtOS1dKikrKD89XHMpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ1cmwifSwiaXAtYWRkcmVzcyI6e3BhdHRlcm46L1xiKD86XGR7MSwzfSg/OlwuXGR7MSwzfSl7M30pXGIvLGFsaWFzOiJjb25zdGFudCJ9LCJtYWMtYWRkcmVzcyI6e3BhdHRlcm46L1xiW2EtZjAtOV17Mn0oPzo6W2EtZjAtOV17Mn0pezV9XGIvaSxhbGlhczoiY29uc3RhbnQifSxkb21haW46e3BhdHRlcm46LyhefFxzKVthLXpdW2EtejAtOS1dKig/OlwuW2Etel1bYS16MC05LV0qKSpcLlthLXpdW2EtejAtOS1dKyg/PVxzKS8sbG9va2JlaGluZDohMCxhbGlhczoiY29uc3RhbnQifSx1dWlkOntwYXR0ZXJuOi9cYlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfVxiL2ksYWxpYXM6ImNvbnN0YW50In0saGFzaDp7cGF0dGVybjovXGIoPzpbYS1mMC05XXszMn0pezEsMn1cYi9pLGFsaWFzOiJjb25zdGFudCJ9LCJmaWxlLXBhdGgiOntwYXR0ZXJuOi9cYlthLXpdOltcXC9dW15cc3wsOzooKXt9XFtcXSInXSt8KF58W1xzOlxbXF0oPnxdKVwuezAsMn1cL1x3W15cc3wsOzooKXt9XFtcXSInXSovaSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sZGF0ZTp7cGF0dGVybjpSZWdFeHAoL1xiXGR7NH1bLS9dXGR7Mn1bLS9dXGR7Mn0oPzpUKD89XGR7MSwyfTopfCg/PVxzXGR7MSwyfTopKS8uc291cmNlKyJ8IisvXGJcZHsxLDR9Wy0vIF0oPzpcZHsxLDJ9fEFwcnxBdWd8RGVjfEZlYnxKYW58SnVsfEp1bnxNYXJ8TWF5fE5vdnxPY3R8U2VwKVstLyBdXGR7Miw0fVQ/XGIvLnNvdXJjZSsifCIrL1xiKD86KD86RnJpfE1vbnxTYXR8U3VufFRodXxUdWV8V2VkKSg/OlxzezEsMn0oPzpBcHJ8QXVnfERlY3xGZWJ8SmFufEp1bHxKdW58TWFyfE1heXxOb3Z8T2N0fFNlcCkpP3xBcHJ8QXVnfERlY3xGZWJ8SmFufEp1bHxKdW58TWFyfE1heXxOb3Z8T2N0fFNlcClcc3sxLDJ9XGR7MSwyfVxiLy5zb3VyY2UsImkiKSxhbGlhczoibnVtYmVyIn0sdGltZTp7cGF0dGVybjovXGJcZHsxLDJ9OlxkezEsMn06XGR7MSwyfSg/OlsuLDpdXGQrKT8oPzpccz9bKy1dXGR7Mn06P1xkezJ9fFopP1xiLyxhbGlhczoibnVtYmVyIn0sYm9vbGVhbjovXGIoPzpmYWxzZXxudWxsfHRydWUpXGIvaSxudW1iZXI6e3BhdHRlcm46LyhefFteLlx3XSkoPzoweFthLWYwLTldK3wwb1swLTddK3wwYlswMV0rfHY/XGRbXGRhLWZdKig/OlwuXGQrKSooPzplWystXT9cZCspP1thLXpdezAsM31cYilcYig/IVwuXHcpL2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6L1s7Oj88PT5+L0AhJCUmK1wtfF4oKXt9KiNdLyxwdW5jdHVhdGlvbjovW1xbXF0uLF0vfX1yZXR1cm4gRmR9dmFyIFVkLHlrO2Z1bmN0aW9uIHo1KCl7aWYoeWspcmV0dXJuIFVkO3lrPTEsVWQ9ZSxlLmRpc3BsYXlOYW1lPSJsb2xjb2RlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5sb2xjb2RlPXtjb21tZW50OlsvXGJPQlRXXHNbXHNcU10qP1xzVExEUlxiLywvXGJCVFcuKy9dLHN0cmluZzp7cGF0dGVybjovIig/OjoufFteIjpdKSoiLyxpbnNpZGU6e3ZhcmlhYmxlOi86XHtbXn1dK1x9LyxzeW1ib2w6Wy86XChbYS1mXGRdK1wpL2ksLzpcW1teXF1dK1xdLywvOlspPm8iOl0vXX0sZ3JlZWR5OiEwfSxudW1iZXI6Lyg/OlxCLSk/KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspLyxzeW1ib2w6e3BhdHRlcm46LyhefFxzKSg/OkEgKT8oPzpCVUtLSVR8Tk9PQnxOVU1CQVJ8TlVNQlJ8VFJPT0Z8WUFSTikoPz1cc3wsfCQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDovQSg/PVxzKS99fSxsYWJlbDp7cGF0dGVybjovKCg/Ol58XHMpKD86SU0gSU4gWVJ8SU0gT1VUVEEgWVIpIClbYS16QS1aXVx3Ki8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0sZnVuY3Rpb246e3BhdHRlcm46LygoPzpefFxzKSg/OkhPVyBJWiBJfEkgSVp8SVopIClbYS16QS1aXVx3Ki8sbG9va2JlaGluZDohMH0sa2V5d29yZDpbe3BhdHRlcm46LyhefFxzKSg/OkFOfEZPVU5EIFlSfEdJTU1FSHxHVEZPfEhBSXxIQVMgQXxIT1cgSVogSXxJIEhBUyBBfEkgSVp8SUYgVSBTQVkgU098SU0gSU4gWVJ8SU0gT1VUVEEgWVJ8SVMgTk9XKD86IEEpP3xJVFooPzogQSk/fElafEtUSFh8S1RIWEJZRXxMSUVLKD86IEEpP3xNQUVLfE1FQkJFfE1LQVl8TkVSRklOfE5PIFdBSXxPIEhBSSBJTXxPIFJMWVw/fE9JQ3xPTUd8T01HV1RGfFJ8U01PT1NIfFNSU3xUSUx8VVBQSU58VklTSUJMRXxXSUxFfFdURlw/fFlBIFJMWXxZUikoPz1cc3wsfCQpLyxsb29rYmVoaW5kOiEwfSwvJ1ooPz1cc3wsfCQpL10sYm9vbGVhbjp7cGF0dGVybjovKF58XHMpKD86RkFJTHxXSU4pKD89XHN8LHwkKS8sbG9va2JlaGluZDohMH0sdmFyaWFibGU6e3BhdHRlcm46LyhefFxzKUlUKD89XHN8LHwkKS8sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6e3BhdHRlcm46LyhefFxzKSg/Ok5PVHxCT1RIIFNBRU18RElGRlJJTlR8KD86QUxMfEFOWXxCSUdHUnxCT1RIfERJRkZ8RUlUSEVSfE1PRHxQUk9EVUtUfFFVT1NIVU5UfFNNQUxMUnxTVU18V09OKSBPRikoPz1cc3wsfCQpLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovXC57M3184oCmfCx8IS99fXJldHVybiBVZH12YXIgQmQsdms7ZnVuY3Rpb24gajUoKXtpZih2aylyZXR1cm4gQmQ7dms9MSxCZD1lLGUuZGlzcGxheU5hbWU9Im1hZ21hIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5tYWdtYT17b3V0cHV0OntwYXR0ZXJuOi9eKD4uKig/OlxyKD86XG58KD8hXG4pKXxcbikpKD8hPikoPzouK3woPzpccig/OlxufCg/IVxuKSl8XG4pKD8hPikuKikoPzooPzpccig/OlxufCg/IVxuKSl8XG4pKD8hPikuKikqL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGNvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKF58W15cXCJdKSIoPzpbXlxyXG5cXCJdfFxcLikqIi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86X3xhZGp8YW5kfGFzc2VydHxhc3NlcnQyfGFzc2VydDN8YXNzaWduZWR8YnJlYWt8Ynl8Y2FzZXxjYXR8Y2F0Y2h8Y2xlYXJ8Y21wZXF8Y21wbmV8Y29udGludWV8ZGVjbGFyZXxkZWZhdWx0fGRlbGV0ZXxkaWZmfGRpdnxkb3xlbGlmfGVsc2V8ZW5kfGVxfGVycm9yfGV2YWx8ZXhpc3RzfGV4aXR8Zm9yfGZvcmFsbHxmb3J3YXJkfGZwcmludGZ8ZnJlZXplfGZ1bmN0aW9ufGdlfGd0fGlmfGlsb2FkfGltcG9ydHxpbnxpbnRyaW5zaWN8aXN8am9pbnxsZXxsb2FkfGxvY2FsfGx0fG1lZXR8bW9kfG5lfG5vdHxub3RhZGp8bm90aW58bm90c3Vic2V0fG9yfHByaW50fHByaW50Znxwcm9jZWR1cmV8cXVpdHxyYW5kb218cmVhZHxyZWFkaXxyZXBlYXR8cmVxdWlyZXxyZXF1aXJlZ2V8cmVxdWlyZXJhbmdlfHJlc3RvcmV8cmV0dXJufHNhdmV8c2RpZmZ8c2VsZWN0fHN1YnNldHx0aGVufHRpbWV8dG98dHJ5fHVudGlsfHZwcmludHx2cHJpbnRmfHZ0aW1lfHdoZW58d2hlcmV8d2hpbGV8eG9yKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGdlbmVyYXRvcjp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyo8KS9pLGFsaWFzOiJjbGFzcy1uYW1lIn0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOntwYXR0ZXJuOi8oXnxbXlx3Ll18XC5cLikoPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OltlRV1bKy1dP1xkKyk/KD86X1thLXpdPyk/KD89JHxbXlx3Ll18XC5cLikvLGxvb2tiZWhpbmQ6ITB9LG9wZXJhdG9yOi8tPnxbLSsqL15+IXwjPV18Oj18XC5cLi8scHVuY3R1YXRpb246L1soKVtcXXt9PD4sOy46XS99fXJldHVybiBCZH12YXIgJGQsRWs7ZnVuY3Rpb24gRzUoKXtpZihFaylyZXR1cm4gJGQ7RWs9MSwkZD1lLGUuZGlzcGxheU5hbWU9Im1ha2VmaWxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5tYWtlZmlsZT17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIyg/OlxcKD86XHJcbnxbXHNcU10pfFteXFxcclxuXSkqLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46LyhbIiddKSg/OlxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEvLGdyZWVkeTohMH0sImJ1aWx0aW4tdGFyZ2V0Ijp7cGF0dGVybjovXC5bQS1aXVteOiM9XHNdKyg/PVxzKjooPyE9KSkvLGFsaWFzOiJidWlsdGluIn0sdGFyZ2V0OntwYXR0ZXJuOi9eKD86W146PVxzXXxbIFx0XSsoPyFbXHM6XSkpKyg/PVxzKjooPyE9KSkvbSxhbGlhczoic3ltYm9sIixpbnNpZGU6e3ZhcmlhYmxlOi9cJCsoPzooPyFcJClbXigpe306Iz1cc10rfCg/PVsoe10pKS99fSx2YXJpYWJsZTovXCQrKD86KD8hXCQpW14oKXt9OiM9XHNdK3xcKFtAKiU8Xis/XVtERl1cKXwoPz1bKHtdKSkvLGtleXdvcmQ6Ly1pbmNsdWRlXGJ8XGIoPzpkZWZpbmV8ZWxzZXxlbmRlZnxlbmRpZnxleHBvcnR8aWZuP2RlZnxpZm4/ZXF8aW5jbHVkZXxvdmVycmlkZXxwcml2YXRlfHNpbmNsdWRlfHVuZGVmaW5lfHVuZXhwb3J0fHZwYXRoKVxiLyxmdW5jdGlvbjp7cGF0dGVybjovKFwoKSg/OmFic3BhdGh8YWRkc3VmZml4fGFuZHxiYXNlbmFtZXxjYWxsfGRpcnxlcnJvcnxldmFsfGZpbGV8ZmlsdGVyKD86LW91dCk/fGZpbmRzdHJpbmd8Zmlyc3R3b3JkfGZsYXZvcnxmb3JlYWNofGd1aWxlfGlmfGluZm98am9pbnxsYXN0d29yZHxsb2FkfG5vdGRpcnxvcnxvcmlnaW58cGF0c3Vic3R8cmVhbHBhdGh8c2hlbGx8c29ydHxzdHJpcHxzdWJzdHxzdWZmaXh8dmFsdWV8d2FybmluZ3x3aWxkY2FyZHx3b3JkKD86bGlzdHxzKT8pKD89WyBcdF0pLyxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovKD86Ojp8Wz86KyFdKT89fFt8QF0vLHB1bmN0dWF0aW9uOi9bOjsoKXt9XS99fXJldHVybiAkZH12YXIgemQsU2s7ZnVuY3Rpb24gcTUoKXtpZihTaylyZXR1cm4gemQ7U2s9MSx6ZD1lLGUuZGlzcGxheU5hbWU9Im1hcmtkb3duIixlLmFsaWFzZXM9WyJtZCJdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS8oPzpcXC58W15cXFxuXHJdfCg/OlxufFxyXG4/KSg/IVtcclxuXSkpLy5zb3VyY2U7ZnVuY3Rpb24gYShwKXtyZXR1cm4gcD1wLnJlcGxhY2UoLzxpbm5lcj4vZyxmdW5jdGlvbigpe3JldHVybiByfSksUmVnRXhwKC8oKD86XnxbXlxcXSkoPzpcXHsyfSkqKS8uc291cmNlKyIoPzoiK3ArIikiKX12YXIgaT0vKD86XFwufGBgKD86W15gXHJcbl18YCg/IWApKStgYHxgW15gXHJcbl0rYHxbXlxcfFxyXG5gXSkrLy5zb3VyY2Usbz0vXHw/X18oPzpcfF9fKStcfD8oPzooPzpcbnxcclxuPyl8KD8hW1xzXFNdKSkvLnNvdXJjZS5yZXBsYWNlKC9fXy9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSxzPS9cfD9bIFx0XSo6Py17Myx9Oj9bIFx0XSooPzpcfFsgXHRdKjo/LXszLH06P1sgXHRdKikrXHw/KD86XG58XHJcbj8pLy5zb3VyY2U7bi5sYW5ndWFnZXMubWFya2Rvd249bi5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHt9KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1hcmtkb3duIiwicHJvbG9nIix7ImZyb250LW1hdHRlci1ibG9jayI6e3BhdHRlcm46LyheKD86XHMqW1xyXG5dKT8pLS0tKD8hLilbXHNcU10qP1tcclxuXS0tLSg/IS4pLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eLS0tfC0tLSQvLCJmcm9udC1tYXR0ZXIiOntwYXR0ZXJuOi9cUysoPzpccytcUyspKi8sYWxpYXM6WyJ5YW1sIiwibGFuZ3VhZ2UteWFtbCJdLGluc2lkZTpuLmxhbmd1YWdlcy55YW1sfX19LGJsb2NrcXVvdGU6e3BhdHRlcm46L14+KD86W1x0IF0qPikqL20sYWxpYXM6InB1bmN0dWF0aW9uIn0sdGFibGU6e3BhdHRlcm46UmVnRXhwKCJeIitvK3MrIig/OiIrbysiKSoiLCJtIiksaW5zaWRlOnsidGFibGUtZGF0YS1yb3dzIjp7cGF0dGVybjpSZWdFeHAoIl4oIitvK3MrIikoPzoiK28rIikqJCIpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsidGFibGUtZGF0YSI6e3BhdHRlcm46UmVnRXhwKGkpLGluc2lkZTpuLmxhbmd1YWdlcy5tYXJrZG93bn0scHVuY3R1YXRpb246L1x8L319LCJ0YWJsZS1saW5lIjp7cGF0dGVybjpSZWdFeHAoIl4oIitvKyIpIitzKyIkIiksbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cfHw6Py17Myx9Oj8vfX0sInRhYmxlLWhlYWRlci1yb3ciOntwYXR0ZXJuOlJlZ0V4cCgiXiIrbysiJCIpLGluc2lkZTp7InRhYmxlLWhlYWRlciI6e3BhdHRlcm46UmVnRXhwKGkpLGFsaWFzOiJpbXBvcnRhbnQiLGluc2lkZTpuLmxhbmd1YWdlcy5tYXJrZG93bn0scHVuY3R1YXRpb246L1x8L319fX0sY29kZTpbe3BhdHRlcm46LygoPzpefFxuKVsgXHRdKlxufCg/Ol58XHJcbj8pWyBcdF0qXHJcbj8pKD86IHs0fXxcdCkuKyg/Oig/OlxufFxyXG4/KSg/OiB7NH18XHQpLispKi8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LHtwYXR0ZXJuOi9eYGBgW1xzXFNdKj9eYGBgJC9tLGdyZWVkeTohMCxpbnNpZGU6eyJjb2RlLWJsb2NrIjp7cGF0dGVybjovXihgYGAuKig/OlxufFxyXG4/KSlbXHNcU10rPyg/PSg/OlxufFxyXG4/KV5gYGAkKS9tLGxvb2tiZWhpbmQ6ITB9LCJjb2RlLWxhbmd1YWdlIjp7cGF0dGVybjovXihgYGApLisvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9gYGAvfX1dLHRpdGxlOlt7cGF0dGVybjovXFMuKig/OlxufFxyXG4/KSg/Oj09K3wtLSspKD89WyBcdF0qJCkvbSxhbGlhczoiaW1wb3J0YW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi89PSskfC0tKyQvfX0se3BhdHRlcm46LyheXHMqKSMuKy9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCIsaW5zaWRlOntwdW5jdHVhdGlvbjovXiMrfCMrJC99fV0saHI6e3BhdHRlcm46LyheXHMqKShbKi1dKSg/OltcdCBdKlwyKXsyLH0oPz1ccyokKS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sbGlzdDp7cGF0dGVybjovKF5ccyopKD86WyorLV18XGQrXC4pKD89W1x0IF0uKS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sInVybC1yZWZlcmVuY2UiOntwYXR0ZXJuOi8hP1xbW15cXV0rXF06W1x0IF0rKD86XFMrfDwoPzpcXC58W14+XFxdKSs+KSg/OltcdCBdKyg/OiIoPzpcXC58W14iXFxdKSoifCcoPzpcXC58W14nXFxdKSonfFwoKD86XFwufFteKVxcXSkqXCkpKT8vLGluc2lkZTp7dmFyaWFibGU6e3BhdHRlcm46L14oIT9cWylbXlxdXSsvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzovKD86Iig/OlxcLnxbXiJcXF0pKiJ8Jyg/OlxcLnxbXidcXF0pKid8XCgoPzpcXC58W14pXFxdKSpcKSkkLyxwdW5jdHVhdGlvbjovXltcW1xdITpdfFs8Pl0vfSxhbGlhczoidXJsIn0sYm9sZDp7cGF0dGVybjphKC9cYl9fKD86KD8hXyk8aW5uZXI+fF8oPzooPyFfKTxpbm5lcj4pK18pK19fXGJ8XCpcKig/Oig/IVwqKTxpbm5lcj58XCooPzooPyFcKik8aW5uZXI+KStcKikrXCpcKi8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2NvbnRlbnQ6e3BhdHRlcm46LyheLi4pW1xzXFNdKyg/PS4uJCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt9fSxwdW5jdHVhdGlvbjovXCpcKnxfXy99fSxpdGFsaWM6e3BhdHRlcm46YSgvXGJfKD86KD8hXyk8aW5uZXI+fF9fKD86KD8hXyk8aW5uZXI+KStfXykrX1xifFwqKD86KD8hXCopPGlubmVyPnxcKlwqKD86KD8hXCopPGlubmVyPikrXCpcKikrXCovLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi8oXi4pW1xzXFNdKyg/PS4kKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e319LHB1bmN0dWF0aW9uOi9bKl9dL319LHN0cmlrZTp7cGF0dGVybjphKC8ofn4/KSg/Oig/IX4pPGlubmVyPikrXDIvLnNvdXJjZSksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntjb250ZW50OntwYXR0ZXJuOi8oXn5+PylbXHNcU10rKD89XDEkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e319LHB1bmN0dWF0aW9uOi9+fj8vfX0sImNvZGUtc25pcHBldCI6e3BhdHRlcm46LyhefFteXFxgXSkoPzpgYFteYFxyXG5dKyg/OmBbXmBcclxuXSspKmBgKD8hYCl8YFteYFxyXG5dK2AoPyFgKSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOlsiY29kZSIsImtleXdvcmQiXX0sdXJsOntwYXR0ZXJuOmEoLyE/XFsoPzooPyFcXSk8aW5uZXI+KStcXSg/OlwoW15ccyldKyg/OltcdCBdKyIoPzpcXC58W14iXFxdKSoiKT9cKXxbIFx0XT9cWyg/Oig/IVxdKTxpbm5lcj4pK1xdKS8uc291cmNlKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e29wZXJhdG9yOi9eIS8sY29udGVudDp7cGF0dGVybjovKF5cWylbXlxdXSsoPz1cXSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt9fSx2YXJpYWJsZTp7cGF0dGVybjovKF5cXVsgXHRdP1xbKVteXF1dKyg/PVxdJCkvLGxvb2tiZWhpbmQ6ITB9LHVybDp7cGF0dGVybjovKF5cXVwoKVteXHMpXSsvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovKF5bIFx0XSspIig/OlxcLnxbXiJcXF0pKiIoPz1cKSQpLyxsb29rYmVoaW5kOiEwfX19fSksWyJ1cmwiLCJib2xkIiwiaXRhbGljIiwic3RyaWtlIl0uZm9yRWFjaChmdW5jdGlvbihwKXtbInVybCIsImJvbGQiLCJpdGFsaWMiLCJzdHJpa2UiLCJjb2RlLXNuaXBwZXQiXS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3AhPT1mJiYobi5sYW5ndWFnZXMubWFya2Rvd25bcF0uaW5zaWRlLmNvbnRlbnQuaW5zaWRlW2ZdPW4ubGFuZ3VhZ2VzLm1hcmtkb3duW2ZdKX0pfSksbi5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihwKXtpZihwLmxhbmd1YWdlIT09Im1hcmtkb3duIiYmcC5sYW5ndWFnZSE9PSJtZCIpcmV0dXJuO2Z1bmN0aW9uIGYoeSl7aWYoISgheXx8dHlwZW9mIHk9PSJzdHJpbmciKSlmb3IodmFyIGI9MCxBPXkubGVuZ3RoO2I8QTtiKyspe3ZhciBoPXlbYl07aWYoaC50eXBlIT09ImNvZGUiKXtmKGguY29udGVudCk7Y29udGludWV9dmFyIG09aC5jb250ZW50WzFdLGc9aC5jb250ZW50WzNdO2lmKG0mJmcmJm0udHlwZT09PSJjb2RlLWxhbmd1YWdlIiYmZy50eXBlPT09ImNvZGUtYmxvY2siJiZ0eXBlb2YgbS5jb250ZW50PT0ic3RyaW5nIil7dmFyIEU9bS5jb250ZW50LnJlcGxhY2UoL1xiIy9nLCJzaGFycCIpLnJlcGxhY2UoL1xiXCtcKy9nLCJwcCIpO0U9KC9bYS16XVtcdy1dKi9pLmV4ZWMoRSl8fFsiIl0pWzBdLnRvTG93ZXJDYXNlKCk7dmFyIFQ9Imxhbmd1YWdlLSIrRTtnLmFsaWFzP3R5cGVvZiBnLmFsaWFzPT0ic3RyaW5nIj9nLmFsaWFzPVtnLmFsaWFzLFRdOmcuYWxpYXMucHVzaChUKTpnLmFsaWFzPVtUXX19fWYocC50b2tlbnMpfSksbi5ob29rcy5hZGQoIndyYXAiLGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PSJjb2RlLWJsb2NrIil7Zm9yKHZhciBmPSIiLHk9MCxiPXAuY2xhc3Nlcy5sZW5ndGg7eTxiO3krKyl7dmFyIEE9cC5jbGFzc2VzW3ldLGg9L2xhbmd1YWdlLSguKykvLmV4ZWMoQSk7aWYoaCl7Zj1oWzFdO2JyZWFrfX12YXIgbT1uLmxhbmd1YWdlc1tmXTtpZihtKXAuY29udGVudD1uLmhpZ2hsaWdodChkKHAuY29udGVudC52YWx1ZSksbSxmKTtlbHNlIGlmKGYmJmYhPT0ibm9uZSImJm4ucGx1Z2lucy5hdXRvbG9hZGVyKXt2YXIgZz0ibWQtIituZXcgRGF0ZSgpLnZhbHVlT2YoKSsiLSIrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMTYpO3AuYXR0cmlidXRlcy5pZD1nLG4ucGx1Z2lucy5hdXRvbG9hZGVyLmxvYWRMYW5ndWFnZXMoZixmdW5jdGlvbigpe3ZhciBFPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGcpO0UmJihFLmlubmVySFRNTD1uLmhpZ2hsaWdodChFLnRleHRDb250ZW50LG4ubGFuZ3VhZ2VzW2ZdLGYpKX0pfX19KTt2YXIgbD1SZWdFeHAobi5sYW5ndWFnZXMubWFya3VwLnRhZy5wYXR0ZXJuLnNvdXJjZSwiZ2kiKSx1PXthbXA6IiYiLGx0OiI8IixndDoiPiIscXVvdDonIid9LGM9U3RyaW5nLmZyb21Db2RlUG9pbnR8fFN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gZChwKXt2YXIgZj1wLnJlcGxhY2UobCwiIik7cmV0dXJuIGY9Zi5yZXBsYWNlKC8mKFx3ezEsOH18I3g/W1xkYS1mXXsxLDh9KTsvZ2ksZnVuY3Rpb24oeSxiKXtpZihiPWIudG9Mb3dlckNhc2UoKSxiWzBdPT09IiMiKXt2YXIgQTtyZXR1cm4gYlsxXT09PSJ4Ij9BPXBhcnNlSW50KGIuc2xpY2UoMiksMTYpOkE9TnVtYmVyKGIuc2xpY2UoMSkpLGMoQSl9ZWxzZXt2YXIgaD11W2JdO3JldHVybiBofHx5fX0pLGZ9bi5sYW5ndWFnZXMubWQ9bi5sYW5ndWFnZXMubWFya2Rvd259KSh0KX1yZXR1cm4gemR9dmFyIGpkLHdrO2Z1bmN0aW9uIFY1KCl7aWYod2spcmV0dXJuIGpkO3drPTEsamQ9ZSxlLmRpc3BsYXlOYW1lPSJtYXRsYWIiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm1hdGxhYj17Y29tbWVudDpbLyVce1tcc1xTXSo/XH0lLywvJS4rL10sc3RyaW5nOntwYXR0ZXJuOi9cQicoPzonJ3xbXidcclxuXSkqJy8sZ3JlZWR5OiEwfSxudW1iZXI6Lyg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OltlRV1bKy1dP1xkKyk/KD86W2lqXSk/fFxiW2lqXVxiLyxrZXl3b3JkOi9cYig/Ok5hTnxicmVha3xjYXNlfGNhdGNofGNvbnRpbnVlfGVsc2V8ZWxzZWlmfGVuZHxmb3J8ZnVuY3Rpb258aWZ8aW5mfG90aGVyd2lzZXxwYXJmb3J8cGF1c2V8cGl8cmV0dXJufHN3aXRjaHx0cnl8d2hpbGUpXGIvLGZ1bmN0aW9uOi9cYig/IVxkKVx3Kyg/PVxzKlwoKS8sb3BlcmF0b3I6L1wuP1sqXlwvXFwnXXxbK1wtOkBdfFs8Pj1+XT0/fCYmP3xcfFx8Py8scHVuY3R1YXRpb246L1wuezN9fFsuLDtcW1xdKCl7fSFdL319cmV0dXJuIGpkfXZhciBHZCxUaztmdW5jdGlvbiBINSgpe2lmKFRrKXJldHVybiBHZDtUaz0xLEdkPWUsZS5kaXNwbGF5TmFtZT0ibWF4c2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1xiKD86YWJvdXR8YW5kfGFuaW1hdGV8YXN8YXR8YXR0cmlidXRlc3xieXxjYXNlfGNhdGNofGNvbGxlY3R8Y29udGludWV8Y29vcmRzeXN8ZG98ZWxzZXxleGl0fGZufGZvcnxmcm9tfGZ1bmN0aW9ufGdsb2JhbHxpZnxpbnxsb2NhbHxtYWNyb3NjcmlwdHxtYXBwZWR8bWF4fG5vdHxvZnxvZmZ8b258b3J8cGFyYW1ldGVyc3xwZXJzaXN0ZW50fHBsdWdpbnxyY21lbnV8cmV0dXJufHJvbGxvdXR8c2V0fHN0cnVjdHx0aGVufHRocm93fHRvfHRvb2x8dHJ5fHVuZG98dXRpbGl0eXx3aGVufHdoZXJlfHdoaWxlfHdpdGgpXGIvaTtuLmxhbmd1YWdlcy5tYXhzY3JpcHQ9e2NvbW1lbnQ6e3BhdHRlcm46L1wvXCpbXHNcU10qPyg/OlwqXC98JCl8LS0uKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyhefFteIlxcQF0pKD86Iig/OlteIlxcXXxcXFtcc1xTXSkqInxAIlteIl0qIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxwYXRoOntwYXR0ZXJuOi9cJCg/Oltcdy9cXC4qP118J1teJ10qJykqLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LCJmdW5jdGlvbi1jYWxsIjp7cGF0dGVybjpSZWdFeHAoIigoPzoiKygvXi8uc291cmNlKyJ8IisvWzs9PD4rXC0qL14oe1xbXS8uc291cmNlKyJ8IisvXGIoPzphbmR8Ynl8Y2FzZXxjYXRjaHxjb2xsZWN0fGRvfGVsc2V8aWZ8aW58bm90fG9yfHJldHVybnx0aGVufHRvfHRyeXx3aGVyZXx3aGlsZXx3aXRoKVxiLy5zb3VyY2UpKyIpWyAJXSopKD8hIityLnNvdXJjZSsiKSIrL1thLXpfXVx3KlxiLy5zb3VyY2UrIig/PVsgCV0qKD86IisoIig/ISIrci5zb3VyY2UrIikiKy9bYS16X10vLnNvdXJjZSsifCIrL1xkfC1cLj9cZC8uc291cmNlKyJ8IisvWyh7JyIkQCM/XS8uc291cmNlKSsiKSkiLCJpbSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJmdW5jdGlvbiJ9LCJmdW5jdGlvbi1kZWZpbml0aW9uIjp7cGF0dGVybjovKFxiKD86Zm58ZnVuY3Rpb24pXHMrKVx3K1xiL2ksbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxhcmd1bWVudDp7cGF0dGVybjovXGJbYS16X11cdyooPz06KS9pLGFsaWFzOiJhdHRyLW5hbWUifSxrZXl3b3JkOnIsYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyx0aW1lOntwYXR0ZXJuOi8oXnxbXlx3Ll0pKD86KD86KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzpbZUVkRF1bKy1dXGQrfFtMUF0pP1ttc2Z0XSkrfFxkKzpcZCsoPzpcLlxkKik/KSg/IVtcdy46XSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im51bWJlciJ9LG51bWJlcjpbe3BhdHRlcm46LyhefFteXHcuXSkoPzooPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OltlRWREXVsrLV1cZCt8W0xQXSk/fDB4W2EtZkEtRjAtOV0rKSg/IVtcdy46XSkvLGxvb2tiZWhpbmQ6ITB9LC9cYig/OmV8cGkpXGIvXSxjb25zdGFudDovXGIoPzpkb250Y29sbGVjdHxva3xzaWxlbnRWYWx1ZXx1bmRlZmluZWR8dW5zdXBwbGllZClcYi8sY29sb3I6e3BhdHRlcm46L1xiKD86YmxhY2t8Ymx1ZXxicm93bnxncmF5fGdyZWVufG9yYW5nZXxyZWR8d2hpdGV8eWVsbG93KVxiL2ksYWxpYXM6ImNvbnN0YW50In0sb3BlcmF0b3I6L1stKyovPD49IV09P3xbJl4/XXwjKD8hXCgpLyxwdW5jdHVhdGlvbjovWygpXFtcXXt9LjosO118Iyg/PVwoKXxcXCQvbX19KSh0KX1yZXR1cm4gR2R9dmFyIHFkLGtrO2Z1bmN0aW9uIFc1KCl7aWYoa2spcmV0dXJuIHFkO2trPTEscWQ9ZSxlLmRpc3BsYXlOYW1lPSJtZWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm1lbD17Y29tbWVudDovXC9cLy4qLyxjb2RlOntwYXR0ZXJuOi9gKD86XFwufFteXFxgXHJcbl0pKmAvLGdyZWVkeTohMCxhbGlhczoiaXRhbGljIixpbnNpZGU6e2RlbGltaXRlcjp7cGF0dGVybjovXmB8YCQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sdmFyaWFibGU6L1wkXHcrLyxudW1iZXI6L1xiMHhbXGRhLWZBLUZdK1xifFxiXGQrKD86XC5cZCopP3xcQlwuXGQrLyxmbGFnOntwYXR0ZXJuOi8tW15cZFxXXVx3Ki8sYWxpYXM6Im9wZXJhdG9yIn0sa2V5d29yZDovXGIoPzpicmVha3xjYXNlfGNvbnRpbnVlfGRlZmF1bHR8ZG98ZWxzZXxmbG9hdHxmb3J8Z2xvYmFsfGlmfGlufGludHxtYXRyaXh8cHJvY3xyZXR1cm58c3RyaW5nfHN3aXRjaHx2ZWN0b3J8d2hpbGUpXGIvLGZ1bmN0aW9uOi9cYlx3Kyg/PVwoKXxcYig/OkNCR3xIZkFkZEF0dHJhY3RvclRvQVN8SGZBc3NpZ25BU3xIZkJ1aWxkRXF1YWxNYXB8SGZCdWlsZEZ1ckZpbGVzfEhmQnVpbGRGdXJJbWFnZXN8SGZDYW5jZWxBRlJ8SGZDb25uZWN0QVNUb0hGfEhmQ3JlYXRlQXR0cmFjdG9yfEhmRGVsZXRlQVN8SGZFZGl0QVN8SGZQZXJmb3JtQ3JlYXRlQVN8SGZSZW1vdmVBdHRyYWN0b3JGcm9tQVN8SGZTZWxlY3RBdHRhY2hlZHxIZlNlbGVjdEF0dHJhY3RvcnN8SGZVbkFzc2lnbkFTfE1heWF0b21yfGFib3V0fGFic3xhZGRBdHRyfGFkZEF0dHJpYnV0ZUVkaXRvck5vZGVIZWxwfGFkZER5bmFtaWN8YWRkTmV3U2hlbGZUYWJ8YWRkUFB8YWRkUGFuZWxDYXRlZ29yeXxhZGRQcmVmaXhUb05hbWV8YWR2YW5jZVRvTmV4dERyaXZlbktleXxhZmZlY3RlZE5ldHxhZmZlY3RzfGFpbUNvbnN0cmFpbnR8YWlyfGFsaWFzfGFsaWFzQXR0cnxhbGlnbnxhbGlnbkN0eHxhbGlnbkN1cnZlfGFsaWduU3VyZmFjZXxhbGxWaWV3Rml0fGFtYmllbnRMaWdodHxhbmdsZXxhbmdsZUJldHdlZW58YW5pbUNvbmV8YW5pbUN1cnZlRWRpdG9yfGFuaW1EaXNwbGF5fGFuaW1WaWV3fGFubm90YXRlfGFwcGVuZFN0cmluZ0FycmF5fGFwcGxpY2F0aW9uTmFtZXxhcHBseUF0dHJQcmVzZXR8YXBwbHlUYWtlfGFyY0xlbkRpbUNvbnRleHR8YXJjTGVuZ3RoRGltZW5zaW9ufGFyY2xlbnxhcnJheU1hcHBlcnxhcnQzZFBhaW50Q3R4fGFydEF0dHJDdHh8YXJ0QXR0clBhaW50VmVydGV4Q3R4fGFydEF0dHJTa2luUGFpbnRDdHh8YXJ0QXR0clRvb2x8YXJ0QnVpbGRQYWludE1lbnV8YXJ0Rmx1aWRBdHRyQ3R4fGFydFB1dHR5Q3R4fGFydFNlbGVjdEN0eHxhcnRTZXRQYWludEN0eHxhcnRVc2VyUGFpbnRDdHh8YXNzaWduQ29tbWFuZHxhc3NpZ25JbnB1dERldmljZXxhc3NpZ25WaWV3cG9ydEZhY3Rvcmllc3xhdHRhY2hDdXJ2ZXxhdHRhY2hEZXZpY2VBdHRyfGF0dGFjaFN1cmZhY2V8YXR0ckNvbG9yU2xpZGVyR3JwfGF0dHJDb21wYXRpYmlsaXR5fGF0dHJDb250cm9sR3JwfGF0dHJFbnVtT3B0aW9uTWVudXxhdHRyRW51bU9wdGlvbk1lbnVHcnB8YXR0ckZpZWxkR3JwfGF0dHJGaWVsZFNsaWRlckdycHxhdHRyTmF2aWdhdGlvbkNvbnRyb2xHcnB8YXR0clByZXNldEVkaXRXaW58YXR0cmlidXRlRXhpc3RzfGF0dHJpYnV0ZUluZm98YXR0cmlidXRlTWVudXxhdHRyaWJ1dGVRdWVyeXxhdXRvS2V5ZnJhbWV8YXV0b1BsYWNlfGJha2VDbGlwfGJha2VGbHVpZFNoYWRpbmd8YmFrZVBhcnRpYWxIaXN0b3J5fGJha2VSZXN1bHRzfGJha2VTaW11bGF0aW9ufGJhc2VuYW1lfGJhc2VuYW1lRXh8YmF0Y2hSZW5kZXJ8YmVzc2VsfGJldmVsfGJldmVsUGx1c3xiaW5NZW1iZXJzaGlwfGJpbmRTa2lufGJsZW5kMnxibGVuZFNoYXBlfGJsZW5kU2hhcGVFZGl0b3J8YmxlbmRTaGFwZVBhbmVsfGJsZW5kVHdvQXR0cnxibGluZERhdGFUeXBlfGJvbmVMYXR0aWNlfGJvdW5kYXJ5fGJveERvbGx5Q3R4fGJveFpvb21DdHh8YnVmZmVyQ3VydmV8YnVpbGRCb29rbWFya01lbnV8YnVpbGRLZXlmcmFtZU1lbnV8YnV0dG9ufGJ1dHRvbk1hbmlwfGNhY2hlRmlsZXxjYWNoZUZpbGVDb21iaW5lfGNhY2hlRmlsZU1lcmdlfGNhY2hlRmlsZVRyYWNrfGNhbWVyYXxjYW1lcmFWaWV3fGNhbkNyZWF0ZU1hbmlwfGNhbnZhc3xjYXBpdGFsaXplU3RyaW5nfGNhdGNofGNhdGNoUXVpZXR8Y2VpbHxjaGFuZ2VTdWJkaXZDb21wb25lbnREaXNwbGF5TGV2ZWx8Y2hhbmdlU3ViZGl2UmVnaW9ufGNoYW5uZWxCb3h8Y2hhcmFjdGVyfGNoYXJhY3Rlck1hcHxjaGFyYWN0ZXJPdXRsaW5lRWRpdG9yfGNoYXJhY3Rlcml6ZXxjaGRpcnxjaGVja0JveHxjaGVja0JveEdycHxjaGVja0RlZmF1bHRSZW5kZXJHbG9iYWxzfGNob2ljZXxjaXJjbGV8Y2lyY3VsYXJGaWxsZXR8Y2xhbXB8Y2xlYXJ8Y2xlYXJDYWNoZXxjbGlwfGNsaXBFZGl0b3J8Y2xpcEVkaXRvckN1cnJlbnRUaW1lQ3R4fGNsaXBTY2hlZHVsZXxjbGlwU2NoZWR1bGVyT3V0bGluZXJ8Y2xpcFRyaW1CZWZvcmV8Y2xvc2VDdXJ2ZXxjbG9zZVN1cmZhY2V8Y2x1c3RlcnxjbWRGaWxlT3V0cHV0fGNtZFNjcm9sbEZpZWxkRXhlY3V0ZXJ8Y21kU2Nyb2xsRmllbGRSZXBvcnRlcnxjbWRTaGVsbHxjb2Fyc2VuU3ViZGl2U2VsZWN0aW9uTGlzdHxjb2xsaXNpb258Y29sb3J8Y29sb3JBdFBvaW50fGNvbG9yRWRpdG9yfGNvbG9ySW5kZXh8Y29sb3JJbmRleFNsaWRlckdycHxjb2xvclNsaWRlckJ1dHRvbkdycHxjb2xvclNsaWRlckdycHxjb2x1bW5MYXlvdXR8Y29tbWFuZEVjaG98Y29tbWFuZExpbmV8Y29tbWFuZFBvcnR8Y29tcGFjdEhhaXJTeXN0ZW18Y29tcG9uZW50RWRpdG9yfGNvbXBvc2l0aW5nSW50ZXJvcHxjb21wdXRlUG9seXNldFZvbHVtZXxjb25kaXRpb258Y29uZXxjb25maXJtRGlhbG9nfGNvbm5lY3RBdHRyfGNvbm5lY3RDb250cm9sfGNvbm5lY3REeW5hbWljfGNvbm5lY3RKb2ludHxjb25uZWN0aW9uSW5mb3xjb25zdHJhaW58Y29uc3RyYWluVmFsdWV8Y29uc3RydWN0aW9uSGlzdG9yeXxjb250YWluZXJ8Y29udGFpbnNNdWx0aWJ5dGV8Y29udGV4dEluZm98Y29udHJvbHxjb252ZXJ0RnJvbU9sZExheWVyc3xjb252ZXJ0SWZmVG9Qc2R8Y29udmVydExpZ2h0bWFwfGNvbnZlcnRTb2xpZFR4fGNvbnZlcnRUZXNzZWxsYXRpb258Y29udmVydFVuaXR8Y29weUFycmF5fGNvcHlGbGV4b3J8Y29weUtleXxjb3B5U2tpbldlaWdodHN8Y29zfGNwQnV0dG9ufGNwQ2FjaGV8Y3BDbG90aFNldHxjcENvbGxpc2lvbnxjcENvbnN0cmFpbnR8Y3BDb252Q2xvdGhUb01lc2h8Y3BGb3JjZXN8Y3BHZXRTb2x2ZXJBdHRyfGNwUGFuZWx8Y3BQcm9wZXJ0eXxjcFJpZ2lkQ29sbGlzaW9uRmlsdGVyfGNwU2VhbXxjcFNldEVkaXR8Y3BTZXRTb2x2ZXJBdHRyfGNwU29sdmVyfGNwU29sdmVyVHlwZXN8Y3BUb29sfGNwVXBkYXRlQ2xvdGhVVnN8Y3JlYXRlRGlzcGxheUxheWVyfGNyZWF0ZURyYXdDdHh8Y3JlYXRlRWRpdG9yfGNyZWF0ZUxheWVyZWRQc2RGaWxlfGNyZWF0ZU1vdGlvbkZpZWxkfGNyZWF0ZU5ld1NoZWxmfGNyZWF0ZU5vZGV8Y3JlYXRlUmVuZGVyTGF5ZXJ8Y3JlYXRlU3ViZGl2UmVnaW9ufGNyb3NzfGNyb3NzUHJvZHVjdHxjdHhBYm9ydHxjdHhDb21wbGV0aW9ufGN0eEVkaXRNb2RlfGN0eFRyYXZlcnNlfGN1cnJlbnRDdHh8Y3VycmVudFRpbWV8Y3VycmVudFRpbWVDdHh8Y3VycmVudFVuaXR8Y3VydmV8Y3VydmVBZGRQdEN0eHxjdXJ2ZUNWQ3R4fGN1cnZlRVBDdHh8Y3VydmVFZGl0b3JDdHh8Y3VydmVJbnRlcnNlY3R8Y3VydmVNb3ZlRVBDdHh8Y3VydmVPblN1cmZhY2V8Y3VydmVTa2V0Y2hDdHh8Y3V0S2V5fGN5Y2xlQ2hlY2t8Y3lsaW5kZXJ8ZGFnUG9zZXxkYXRlfGRlZmF1bHRMaWdodExpc3RDaGVja0JveHxkZWZhdWx0TmF2aWdhdGlvbnxkZWZpbmVEYXRhU2VydmVyfGRlZmluZVZpcnR1YWxEZXZpY2V8ZGVmb3JtZXJ8ZGVnX3RvX3JhZHxkZWxldGV8ZGVsZXRlQXR0cnxkZWxldGVTaGFkaW5nR3JvdXBzQW5kTWF0ZXJpYWxzfGRlbGV0ZVNoZWxmVGFifGRlbGV0ZVVJfGRlbGV0ZVVudXNlZEJydXNoZXN8ZGVscmFuZHN0cnxkZXRhY2hDdXJ2ZXxkZXRhY2hEZXZpY2VBdHRyfGRldGFjaFN1cmZhY2V8ZGV2aWNlRWRpdG9yfGRldmljZVBhbmVsfGRnSW5mb3xkZ2RpcnR5fGRnZXZhbHxkZ3RpbWVyfGRpbVdoZW58ZGlyZWN0S2V5Q3R4fGRpcmVjdGlvbmFsTGlnaHR8ZGlybWFwfGRpcm5hbWV8ZGlzYWJsZXxkaXNjb25uZWN0QXR0cnxkaXNjb25uZWN0Sm9pbnR8ZGlza0NhY2hlfGRpc3BsYWNlbWVudFRvUG9seXxkaXNwbGF5QWZmZWN0ZWR8ZGlzcGxheUNvbG9yfGRpc3BsYXlDdWxsfGRpc3BsYXlMZXZlbE9mRGV0YWlsfGRpc3BsYXlQcmVmfGRpc3BsYXlSR0JDb2xvcnxkaXNwbGF5U21vb3RobmVzc3xkaXNwbGF5U3RhdHN8ZGlzcGxheVN0cmluZ3xkaXNwbGF5U3VyZmFjZXxkaXN0YW5jZURpbUNvbnRleHR8ZGlzdGFuY2VEaW1lbnNpb258ZG9CbHVyfGRvbGx5fGRvbGx5Q3R4fGRvcGVTaGVldEVkaXRvcnxkb3R8ZG90UHJvZHVjdHxkb3VibGVQcm9maWxlQmlyYWlsU3VyZmFjZXxkcmFnfGRyYWdBdHRyQ29udGV4dHxkcmFnZ2VyQ29udGV4dHxkcm9wb2ZmTG9jYXRvcnxkdXBsaWNhdGV8ZHVwbGljYXRlQ3VydmV8ZHVwbGljYXRlU3VyZmFjZXxkeW5DYWNoZXxkeW5Db250cm9sfGR5bkV4cG9ydHxkeW5FeHByZXNzaW9ufGR5bkdsb2JhbHN8ZHluUGFpbnRFZGl0b3J8ZHluUGFydGljbGVDdHh8ZHluUHJlZnxkeW5SZWxFZFBhbmVsfGR5blJlbEVkaXRvcnxkeW5hbWljTG9hZHxlZGl0QXR0ckxpbWl0c3xlZGl0RGlzcGxheUxheWVyR2xvYmFsc3xlZGl0RGlzcGxheUxheWVyTWVtYmVyc3xlZGl0UmVuZGVyTGF5ZXJBZGp1c3RtZW50fGVkaXRSZW5kZXJMYXllckdsb2JhbHN8ZWRpdFJlbmRlckxheWVyTWVtYmVyc3xlZGl0b3J8ZWRpdG9yVGVtcGxhdGV8ZWZmZWN0b3J8ZW1pdHxlbWl0dGVyfGVuYWJsZURldmljZXxlbmNvZGVTdHJpbmd8ZW5kU3RyaW5nfGVuZHNXaXRofGVudnxlcXVpdmFsZW50fGVxdWl2YWxlbnRUb2x8ZXJmfGVycm9yfGV2YWx8ZXZhbERlZmVycmVkfGV2YWxFY2hvfGV2ZW50fGV4YWN0V29ybGRCb3VuZGluZ0JveHxleGNsdXNpdmVMaWdodENoZWNrQm94fGV4ZWN8ZXhlY3V0ZUZvckVhY2hPYmplY3R8ZXhpc3RzfGV4cHxleHByZXNzaW9ufGV4cHJlc3Npb25FZGl0b3JMaXN0ZW58ZXh0ZW5kQ3VydmV8ZXh0ZW5kU3VyZmFjZXxleHRydWRlfGZjaGVja3xmY2xvc2V8ZmVvZnxmZmx1c2h8ZmdldGxpbmV8ZmdldHdvcmR8ZmlsZXxmaWxlQnJvd3NlckRpYWxvZ3xmaWxlRGlhbG9nfGZpbGVFeHRlbnNpb258ZmlsZUluZm98ZmlsZXRlc3R8ZmlsbGV0Q3VydmV8ZmlsdGVyfGZpbHRlckN1cnZlfGZpbHRlckV4cGFuZHxmaWx0ZXJTdHVkaW9JbXBvcnR8ZmluZEFsbEludGVyc2VjdGlvbnN8ZmluZEFuaW1DdXJ2ZXN8ZmluZEtleWZyYW1lfGZpbmRNZW51SXRlbXxmaW5kUmVsYXRlZFNraW5DbHVzdGVyfGZpbmRlcnxmaXJzdFBhcmVudE9mfGZpdEJzcGxpbmV8ZmxleG9yfGZsb2F0RXF8ZmxvYXRGaWVsZHxmbG9hdEZpZWxkR3JwfGZsb2F0U2Nyb2xsQmFyfGZsb2F0U2xpZGVyfGZsb2F0U2xpZGVyMnxmbG9hdFNsaWRlckJ1dHRvbkdycHxmbG9hdFNsaWRlckdycHxmbG9vcnxmbG93fGZsdWlkQ2FjaGVJbmZvfGZsdWlkRW1pdHRlcnxmbHVpZFZveGVsSW5mb3xmbHVzaFVuZG98Zm1vZHxmb250RGlhbG9nfGZvcGVufGZvcm1MYXlvdXR8Zm9ybWF0fGZwcmludHxmcmFtZUxheW91dHxmcmVhZHxmcmVlRm9ybUZpbGxldHxmcmV3aW5kfGZyb21OYXRpdmVQYXRofGZ3cml0ZXxnYW1tYXxnYXVzc3xnZW9tZXRyeUNvbnN0cmFpbnR8Z2V0QXBwbGljYXRpb25WZXJzaW9uQXNGbG9hdHxnZXRBdHRyfGdldENsYXNzaWZpY2F0aW9ufGdldERlZmF1bHRCcnVzaHxnZXRGaWxlTGlzdHxnZXRGbHVpZEF0dHJ8Z2V0SW5wdXREZXZpY2VSYW5nZXxnZXRNYXlhUGFuZWxUeXBlc3xnZXRNb2RpZmllcnN8Z2V0UGFuZWx8Z2V0UGFydGljbGVBdHRyfGdldFBsdWdpblJlc291cmNlfGdldGVudnxnZXRwaWR8Z2xSZW5kZXJ8Z2xSZW5kZXJFZGl0b3J8Z2xvYmFsU3RpdGNofGdtYXRjaHxnb2FsfGdvdG9CaW5kUG9zZXxncmFiQ29sb3J8Z3JhZGllbnRDb250cm9sfGdyYWRpZW50Q29udHJvbE5vQXR0cnxncmFwaERvbGx5Q3R4fGdyYXBoU2VsZWN0Q29udGV4dHxncmFwaFRyYWNrQ3R4fGdyYXZpdHl8Z3JpZHxncmlkTGF5b3V0fGdyb3VwfGdyb3VwT2JqZWN0c0J5TmFtZXxoYXJkZW5Qb2ludEN1cnZlfGhhcmR3YXJlfGhhcmR3YXJlUmVuZGVyUGFuZWx8aGVhZHNVcERpc3BsYXl8aGVhZHNVcE1lc3NhZ2V8aGVscHxoZWxwTGluZXxoZXJtaXRlfGhpZGV8aGlsaXRlfGhpdFRlc3R8aG90Qm94fGhvdGtleXxob3RrZXlDaGVja3xoc3ZfdG9fcmdifGh1ZEJ1dHRvbnxodWRTbGlkZXJ8aHVkU2xpZGVyQnV0dG9ufGh3UmVmbGVjdGlvbk1hcHxod1JlbmRlcnxod1JlbmRlckxvYWR8aHlwZXJHcmFwaHxoeXBlclBhbmVsfGh5cGVyU2hhZGV8aHlwb3R8aWNvblRleHRCdXR0b258aWNvblRleHRDaGVja0JveHxpY29uVGV4dFJhZGlvQnV0dG9ufGljb25UZXh0UmFkaW9Db2xsZWN0aW9ufGljb25UZXh0U2Nyb2xsTGlzdHxpY29uVGV4dFN0YXRpY0xhYmVsfGlrSGFuZGxlfGlrSGFuZGxlQ3R4fGlrSGFuZGxlRGlzcGxheVNjYWxlfGlrU29sdmVyfGlrU3BsaW5lSGFuZGxlQ3R4fGlrU3lzdGVtfGlrU3lzdGVtSW5mb3xpa2ZrRGlzcGxheU1ldGhvZHxpbGx1c3RyYXRvckN1cnZlc3xpbWFnZXxpbWZQbHVnaW5zfGluaGVyaXRUcmFuc2Zvcm18aW5zZXJ0Sm9pbnR8aW5zZXJ0Sm9pbnRDdHh8aW5zZXJ0S2V5Q3R4fGluc2VydEtub3RDdXJ2ZXxpbnNlcnRLbm90U3VyZmFjZXxpbnN0YW5jZXxpbnN0YW5jZWFibGV8aW5zdGFuY2VyfGludEZpZWxkfGludEZpZWxkR3JwfGludFNjcm9sbEJhcnxpbnRTbGlkZXJ8aW50U2xpZGVyR3JwfGludGVyVG9VSXxpbnRlcm5hbFZhcnxpbnRlcnNlY3R8aXByRW5naW5lfGlzQW5pbUN1cnZlfGlzQ29ubmVjdGVkfGlzRGlydHl8aXNQYXJlbnRPZnxpc1NhbWVPYmplY3R8aXNUcnVlfGlzVmFsaWRPYmplY3ROYW1lfGlzVmFsaWRTdHJpbmd8aXNWYWxpZFVpTmFtZXxpc29sYXRlU2VsZWN0fGl0ZW1GaWx0ZXJ8aXRlbUZpbHRlckF0dHJ8aXRlbUZpbHRlclJlbmRlcnxpdGVtRmlsdGVyVHlwZXxqb2ludHxqb2ludENsdXN0ZXJ8am9pbnRDdHh8am9pbnREaXNwbGF5U2NhbGV8am9pbnRMYXR0aWNlfGtleVRhbmdlbnR8a2V5ZnJhbWV8a2V5ZnJhbWVPdXRsaW5lcnxrZXlmcmFtZVJlZ2lvbkN1cnJlbnRUaW1lQ3R4fGtleWZyYW1lUmVnaW9uRGlyZWN0S2V5Q3R4fGtleWZyYW1lUmVnaW9uRG9sbHlDdHh8a2V5ZnJhbWVSZWdpb25JbnNlcnRLZXlDdHh8a2V5ZnJhbWVSZWdpb25Nb3ZlS2V5Q3R4fGtleWZyYW1lUmVnaW9uU2NhbGVLZXlDdHh8a2V5ZnJhbWVSZWdpb25TZWxlY3RLZXlDdHh8a2V5ZnJhbWVSZWdpb25TZXRLZXlDdHh8a2V5ZnJhbWVSZWdpb25UcmFja0N0eHxrZXlmcmFtZVN0YXRzfGxhc3NvQ29udGV4dHxsYXR0aWNlfGxhdHRpY2VEZWZvcm1LZXlDdHh8bGF1bmNofGxhdW5jaEltYWdlRWRpdG9yfGxheWVyQnV0dG9ufGxheWVyZWRTaGFkZXJQb3J0fGxheWVyZWRUZXh0dXJlUG9ydHxsYXlvdXR8bGF5b3V0RGlhbG9nfGxpZ2h0TGlzdHxsaWdodExpc3RFZGl0b3J8bGlnaHRMaXN0UGFuZWx8bGlnaHRsaW5rfGxpbmVJbnRlcnNlY3Rpb258bGluZWFyUHJlY2lzaW9ufGxpbnN0ZXB8bGlzdEFuaW1hdGFibGV8bGlzdEF0dHJ8bGlzdENhbWVyYXN8bGlzdENvbm5lY3Rpb25zfGxpc3REZXZpY2VBdHRhY2htZW50c3xsaXN0SGlzdG9yeXxsaXN0SW5wdXREZXZpY2VBeGVzfGxpc3RJbnB1dERldmljZUJ1dHRvbnN8bGlzdElucHV0RGV2aWNlc3xsaXN0TWVudUFubm90YXRpb258bGlzdE5vZGVUeXBlc3xsaXN0UGFuZWxDYXRlZ29yaWVzfGxpc3RSZWxhdGl2ZXN8bGlzdFNldHN8bGlzdFRyYW5zZm9ybXN8bGlzdFVuc2VsZWN0ZWR8bGlzdGVyRWRpdG9yfGxvYWRGbHVpZHxsb2FkTmV3U2hlbGZ8bG9hZFBsdWdpbnxsb2FkUGx1Z2luTGFuZ3VhZ2VSZXNvdXJjZXN8bG9hZFByZWZPYmplY3RzfGxvY2FsaXplZFBhbmVsTGFiZWx8bG9ja05vZGV8bG9mdHxsb2d8bG9uZ05hbWVPZnxsb29rVGhydXxsc3xsc1Rocm91Z2hGaWx0ZXJ8bHNUeXBlfGxzVUl8bWFnfG1ha2VJZGVudGl0eXxtYWtlTGl2ZXxtYWtlUGFpbnRhYmxlfG1ha2VSb2xsfG1ha2VTaW5nbGVTdXJmYWNlfG1ha2VUdWJlT258bWFrZWJvdHxtYW5pcE1vdmVDb250ZXh0fG1hbmlwTW92ZUxpbWl0c0N0eHxtYW5pcE9wdGlvbnN8bWFuaXBSb3RhdGVDb250ZXh0fG1hbmlwUm90YXRlTGltaXRzQ3R4fG1hbmlwU2NhbGVDb250ZXh0fG1hbmlwU2NhbGVMaW1pdHNDdHh8bWFya2VyfG1hdGNofG1heHxtZW1vcnl8bWVudXxtZW51QmFyTGF5b3V0fG1lbnVFZGl0b3J8bWVudUl0ZW18bWVudUl0ZW1Ub1NoZWxmfG1lbnVTZXR8bWVudVNldFByZWZ8bWVzc2FnZUxpbmV8bWlufG1pbmltaXplQXBwfG1pcnJvckpvaW50fG1vZGVsQ3VycmVudFRpbWVDdHh8bW9kZWxFZGl0b3J8bW9kZWxQYW5lbHxtb3VzZXxtb3ZJbnxtb3ZPdXR8bW92ZXxtb3ZlSUt0b0ZLfG1vdmVLZXlDdHh8bW92ZVZlcnRleEFsb25nRGlyZWN0aW9ufG11bHRpUHJvZmlsZUJpcmFpbFN1cmZhY2V8bXV0ZXxuUGFydGljbGV8bmFtZUNvbW1hbmR8bmFtZUZpZWxkfG5hbWVzcGFjZXxuYW1lc3BhY2VJbmZvfG5ld1BhbmVsSXRlbXN8bmV3dG9ufG5vZGVDYXN0fG5vZGVJY29uQnV0dG9ufG5vZGVPdXRsaW5lcnxub2RlUHJlc2V0fG5vZGVUeXBlfG5vaXNlfG5vbkxpbmVhcnxub3JtYWxDb25zdHJhaW50fG5vcm1hbGl6ZXxudXJic0Jvb2xlYW58bnVyYnNDb3B5VVZTZXR8bnVyYnNDdWJlfG51cmJzRWRpdFVWfG51cmJzUGxhbmV8bnVyYnNTZWxlY3R8bnVyYnNTcXVhcmV8bnVyYnNUb1BvbHl8bnVyYnNUb1BvbHlnb25zUHJlZnxudXJic1RvU3ViZGl2fG51cmJzVG9TdWJkaXZQcmVmfG51cmJzVVZTZXR8bnVyYnNWaWV3RGlyZWN0aW9uVmVjdG9yfG9iakV4aXN0c3xvYmplY3RDZW50ZXJ8b2JqZWN0TGF5ZXJ8b2JqZWN0VHlwZXxvYmplY3RUeXBlVUl8b2Jzb2xldGVQcm9jfG9jZWFuTnVyYnNQcmV2aWV3UGxhbmV8b2Zmc2V0Q3VydmV8b2Zmc2V0Q3VydmVPblN1cmZhY2V8b2Zmc2V0U3VyZmFjZXxvcGVuR0xFeHRlbnNpb258b3Blbk1heWFQcmVmfG9wdGlvbk1lbnV8b3B0aW9uTWVudUdycHxvcHRpb25WYXJ8b3JiaXR8b3JiaXRDdHh8b3JpZW50Q29uc3RyYWludHxvdXRsaW5lckVkaXRvcnxvdXRsaW5lclBhbmVsfG92ZXJyaWRlTW9kaWZpZXJ8cGFpbnRFZmZlY3RzRGlzcGxheXxwYWlyQmxlbmR8cGFsZXR0ZVBvcnR8cGFuZUxheW91dHxwYW5lbHxwYW5lbENvbmZpZ3VyYXRpb258cGFuZWxIaXN0b3J5fHBhcmFtRGltQ29udGV4dHxwYXJhbURpbWVuc2lvbnxwYXJhbUxvY2F0b3J8cGFyZW50fHBhcmVudENvbnN0cmFpbnR8cGFydGljbGV8cGFydGljbGVFeGlzdHN8cGFydGljbGVJbnN0YW5jZXJ8cGFydGljbGVSZW5kZXJJbmZvfHBhcnRpdGlvbnxwYXN0ZUtleXxwYXRoQW5pbWF0aW9ufHBhdXNlfHBjbG9zZXxwZXJjZW50fHBlcmZvcm1hbmNlT3B0aW9uc3xwZnhzdHJva2VzfHBpY2tXYWxrfHBpY3R1cmV8cGl4ZWxNb3ZlfHBsYW5hclNyZnxwbGFuZXxwbGF5fHBsYXliYWNrT3B0aW9uc3xwbGF5Ymxhc3R8cGx1Z0F0dHJ8cGx1Z05vZGV8cGx1Z2luSW5mb3xwbHVnaW5SZXNvdXJjZVV0aWx8cG9pbnRDb25zdHJhaW50fHBvaW50Q3VydmVDb25zdHJhaW50fHBvaW50TGlnaHR8cG9pbnRNYXRyaXhNdWx0fHBvaW50T25DdXJ2ZXxwb2ludE9uU3VyZmFjZXxwb2ludFBvc2l0aW9ufHBvbGVWZWN0b3JDb25zdHJhaW50fHBvbHlBcHBlbmR8cG9seUFwcGVuZEZhY2V0Q3R4fHBvbHlBcHBlbmRWZXJ0ZXh8cG9seUF1dG9Qcm9qZWN0aW9ufHBvbHlBdmVyYWdlTm9ybWFsfHBvbHlBdmVyYWdlVmVydGV4fHBvbHlCZXZlbHxwb2x5QmxlbmRDb2xvcnxwb2x5QmxpbmREYXRhfHBvbHlCb29sT3B8cG9seUJyaWRnZUVkZ2V8cG9seUNhY2hlTW9uaXRvcnxwb2x5Q2hlY2t8cG9seUNoaXBPZmZ8cG9seUNsaXBib2FyZHxwb2x5Q2xvc2VCb3JkZXJ8cG9seUNvbGxhcHNlRWRnZXxwb2x5Q29sbGFwc2VGYWNldHxwb2x5Q29sb3JCbGluZERhdGF8cG9seUNvbG9yRGVsfHBvbHlDb2xvclBlclZlcnRleHxwb2x5Q29sb3JTZXR8cG9seUNvbXBhcmV8cG9seUNvbmV8cG9seUNvcHlVVnxwb2x5Q3JlYXNlfHBvbHlDcmVhc2VDdHh8cG9seUNyZWF0ZUZhY2V0fHBvbHlDcmVhdGVGYWNldEN0eHxwb2x5Q3ViZXxwb2x5Q3V0fHBvbHlDdXRDdHh8cG9seUN5bGluZGVyfHBvbHlDeWxpbmRyaWNhbFByb2plY3Rpb258cG9seURlbEVkZ2V8cG9seURlbEZhY2V0fHBvbHlEZWxWZXJ0ZXh8cG9seUR1cGxpY2F0ZUFuZENvbm5lY3R8cG9seUR1cGxpY2F0ZUVkZ2V8cG9seUVkaXRVVnxwb2x5RWRpdFVWU2hlbGx8cG9seUV2YWx1YXRlfHBvbHlFeHRydWRlRWRnZXxwb2x5RXh0cnVkZUZhY2V0fHBvbHlFeHRydWRlVmVydGV4fHBvbHlGbGlwRWRnZXxwb2x5RmxpcFVWfHBvbHlGb3JjZVVWfHBvbHlHZW9TYW1wbGVyfHBvbHlIZWxpeHxwb2x5SW5mb3xwb2x5SW5zdGFsbEFjdGlvbnxwb2x5TGF5b3V0VVZ8cG9seUxpc3RDb21wb25lbnRDb252ZXJzaW9ufHBvbHlNYXBDdXR8cG9seU1hcERlbHxwb2x5TWFwU2V3fHBvbHlNYXBTZXdNb3ZlfHBvbHlNZXJnZUVkZ2V8cG9seU1lcmdlRWRnZUN0eHxwb2x5TWVyZ2VGYWNldHxwb2x5TWVyZ2VGYWNldEN0eHxwb2x5TWVyZ2VVVnxwb2x5TWVyZ2VWZXJ0ZXh8cG9seU1pcnJvckZhY2V8cG9seU1vdmVFZGdlfHBvbHlNb3ZlRmFjZXR8cG9seU1vdmVGYWNldFVWfHBvbHlNb3ZlVVZ8cG9seU1vdmVWZXJ0ZXh8cG9seU5vcm1hbHxwb2x5Tm9ybWFsUGVyVmVydGV4fHBvbHlOb3JtYWxpemVVVnxwb2x5T3B0VXZzfHBvbHlPcHRpb25zfHBvbHlPdXRwdXR8cG9seVBpcGV8cG9seVBsYW5hclByb2plY3Rpb258cG9seVBsYW5lfHBvbHlQbGF0b25pY1NvbGlkfHBvbHlQb2tlfHBvbHlQcmltaXRpdmV8cG9seVByaXNtfHBvbHlQcm9qZWN0aW9ufHBvbHlQeXJhbWlkfHBvbHlRdWFkfHBvbHlRdWVyeUJsaW5kRGF0YXxwb2x5UmVkdWNlfHBvbHlTZWxlY3R8cG9seVNlbGVjdENvbnN0cmFpbnR8cG9seVNlbGVjdENvbnN0cmFpbnRNb25pdG9yfHBvbHlTZWxlY3RDdHh8cG9seVNlbGVjdEVkaXRDdHh8cG9seVNlcGFyYXRlfHBvbHlTZXRUb0ZhY2VOb3JtYWx8cG9seVNld0VkZ2V8cG9seVNob3J0ZXN0UGF0aEN0eHxwb2x5U21vb3RofHBvbHlTb2Z0RWRnZXxwb2x5U3BoZXJlfHBvbHlTcGhlcmljYWxQcm9qZWN0aW9ufHBvbHlTcGxpdHxwb2x5U3BsaXRDdHh8cG9seVNwbGl0RWRnZXxwb2x5U3BsaXRSaW5nfHBvbHlTcGxpdFZlcnRleHxwb2x5U3RyYWlnaHRlblVWQm9yZGVyfHBvbHlTdWJkaXZpZGVFZGdlfHBvbHlTdWJkaXZpZGVGYWNldHxwb2x5VG9TdWJkaXZ8cG9seVRvcnVzfHBvbHlUcmFuc2Zlcnxwb2x5VHJpYW5ndWxhdGV8cG9seVVWU2V0fHBvbHlVbml0ZXxwb2x5V2VkZ2VGYWNlfHBvcGVufHBvcHVwTWVudXxwb3NlfHBvd3xwcmVsb2FkUmVmRWR8cHJpbnR8cHJvZ3Jlc3NCYXJ8cHJvZ3Jlc3NXaW5kb3d8cHJvakZpbGVWaWV3ZXJ8cHJvamVjdEN1cnZlfHByb2plY3RUYW5nZW50fHByb2plY3Rpb25Db250ZXh0fHByb2plY3Rpb25NYW5pcHxwcm9tcHREaWFsb2d8cHJvcE1vZEN0eHxwcm9wTW92ZXxwc2RDaGFubmVsT3V0bGluZXJ8cHNkRWRpdFRleHR1cmVGaWxlfHBzZEV4cG9ydHxwc2RUZXh0dXJlRmlsZXxwdXRlbnZ8cHdkfHB5dGhvbnxxdWVyeVN1YmRpdnxxdWl0fHJhZF90b19kZWd8cmFkaWFsfHJhZGlvQnV0dG9ufHJhZGlvQnV0dG9uR3JwfHJhZGlvQ29sbGVjdGlvbnxyYWRpb01lbnVJdGVtQ29sbGVjdGlvbnxyYW1wQ29sb3JQb3J0fHJhbmR8cmFuZG9taXplRm9sbGljbGVzfHJhbmRzdGF0ZXxyYW5nZUNvbnRyb2x8cmVhZFRha2V8cmVidWlsZEN1cnZlfHJlYnVpbGRTdXJmYWNlfHJlY29yZEF0dHJ8cmVjb3JkRGV2aWNlfHJlZG98cmVmZXJlbmNlfHJlZmVyZW5jZUVkaXR8cmVmZXJlbmNlUXVlcnl8cmVmaW5lU3ViZGl2U2VsZWN0aW9uTGlzdHxyZWZyZXNofHJlZnJlc2hBRXxyZWdpc3RlclBsdWdpblJlc291cmNlfHJlaGFzaHxyZWxvYWRJbWFnZXxyZW1vdmVKb2ludHxyZW1vdmVNdWx0aUluc3RhbmNlfHJlbW92ZVBhbmVsQ2F0ZWdvcnl8cmVuYW1lfHJlbmFtZUF0dHJ8cmVuYW1lU2VsZWN0aW9uTGlzdHxyZW5hbWVVSXxyZW5kZXJ8cmVuZGVyR2xvYmFsc05vZGV8cmVuZGVySW5mb3xyZW5kZXJMYXllckJ1dHRvbnxyZW5kZXJMYXllclBhcmVudHxyZW5kZXJMYXllclBvc3RQcm9jZXNzfHJlbmRlckxheWVyVW5wYXJlbnR8cmVuZGVyTWFuaXB8cmVuZGVyUGFydGl0aW9ufHJlbmRlclF1YWxpdHlOb2RlfHJlbmRlclNldHRpbmdzfHJlbmRlclRodW1ibmFpbFVwZGF0ZXxyZW5kZXJXaW5kb3dFZGl0b3J8cmVuZGVyV2luZG93U2VsZWN0Q29udGV4dHxyZW5kZXJlcnxyZW9yZGVyfHJlb3JkZXJEZWZvcm1lcnN8cmVxdWlyZXN8cmVyb290fHJlc2FtcGxlRmx1aWR8cmVzZXRBRXxyZXNldFBmeFRvUG9seUNhbWVyYXxyZXNldFRvb2x8cmVzb2x1dGlvbk5vZGV8cmV0YXJnZXR8cmV2ZXJzZUN1cnZlfHJldmVyc2VTdXJmYWNlfHJldm9sdmV8cmdiX3RvX2hzdnxyaWdpZEJvZHl8cmlnaWRTb2x2ZXJ8cm9sbHxyb2xsQ3R4fHJvb3RPZnxyb3R8cm90YXRlfHJvdGF0aW9uSW50ZXJwb2xhdGlvbnxyb3VuZENvbnN0YW50UmFkaXVzfHJvd0NvbHVtbkxheW91dHxyb3dMYXlvdXR8cnVuVGltZUNvbW1hbmR8cnVudXB8c2FtcGxlSW1hZ2V8c2F2ZUFsbFNoZWx2ZXN8c2F2ZUF0dHJQcmVzZXR8c2F2ZUZsdWlkfHNhdmVJbWFnZXxzYXZlSW5pdGlhbFN0YXRlfHNhdmVNZW51fHNhdmVQcmVmT2JqZWN0c3xzYXZlUHJlZnN8c2F2ZVNoZWxmfHNhdmVUb29sU2V0dGluZ3N8c2NhbGV8c2NhbGVCcnVzaEJyaWdodG5lc3N8c2NhbGVDb21wb25lbnRzfHNjYWxlQ29uc3RyYWludHxzY2FsZUtleXxzY2FsZUtleUN0eHxzY2VuZUVkaXRvcnxzY2VuZVVJUmVwbGFjZW1lbnR8c2NtaHxzY3JpcHRDdHh8c2NyaXB0RWRpdG9ySW5mb3xzY3JpcHRKb2J8c2NyaXB0Tm9kZXxzY3JpcHRUYWJsZXxzY3JpcHRUb1NoZWxmfHNjcmlwdGVkUGFuZWx8c2NyaXB0ZWRQYW5lbFR5cGV8c2Nyb2xsRmllbGR8c2Nyb2xsTGF5b3V0fHNjdWxwdHxzZWFyY2hQYXRoQXJyYXl8c2VlZHxzZWxMb2FkU2V0dGluZ3N8c2VsZWN0fHNlbGVjdENvbnRleHR8c2VsZWN0Q3VydmVDVnxzZWxlY3RLZXl8c2VsZWN0S2V5Q3R4fHNlbGVjdEtleWZyYW1lUmVnaW9uQ3R4fHNlbGVjdE1vZGV8c2VsZWN0UHJlZnxzZWxlY3RQcmlvcml0eXxzZWxlY3RUeXBlfHNlbGVjdGVkTm9kZXN8c2VsZWN0aW9uQ29ubmVjdGlvbnxzZXBhcmF0b3J8c2V0QXR0cnxzZXRBdHRyRW51bVJlc291cmNlfHNldEF0dHJNYXBwaW5nfHNldEF0dHJOaWNlTmFtZVJlc291cmNlfHNldENvbnN0cmFpbnRSZXN0UG9zaXRpb258c2V0RGVmYXVsdFNoYWRpbmdHcm91cHxzZXREcml2ZW5LZXlmcmFtZXxzZXREeW5hbWljfHNldEVkaXRDdHh8c2V0RWRpdG9yfHNldEZsdWlkQXR0cnxzZXRGb2N1c3xzZXRJbmZpbml0eXxzZXRJbnB1dERldmljZU1hcHBpbmd8c2V0S2V5Q3R4fHNldEtleVBhdGh8c2V0S2V5ZnJhbWV8c2V0S2V5ZnJhbWVCbGVuZHNoYXBlVGFyZ2V0V3RzfHNldE1lbnVNb2RlfHNldE5vZGVOaWNlTmFtZVJlc291cmNlfHNldE5vZGVUeXBlRmxhZ3xzZXRQYXJlbnR8c2V0UGFydGljbGVBdHRyfHNldFBmeFRvUG9seUNhbWVyYXxzZXRQbHVnaW5SZXNvdXJjZXxzZXRQcm9qZWN0fHNldFN0YW1wRGVuc2l0eXxzZXRTdGFydHVwTWVzc2FnZXxzZXRTdGF0ZXxzZXRUb29sVG98c2V0VUlUZW1wbGF0ZXxzZXRYZm9ybU1hbmlwfHNldHN8c2hhZGluZ0Nvbm5lY3Rpb258c2hhZGluZ0dlb21ldHJ5UmVsQ3R4fHNoYWRpbmdMaWdodFJlbEN0eHxzaGFkaW5nTmV0d29ya0NvbXBhcmV8c2hhZGluZ05vZGV8c2hhcGVDb21wYXJlfHNoZWxmQnV0dG9ufHNoZWxmTGF5b3V0fHNoZWxmVGFiTGF5b3V0fHNoZWxsRmllbGR8c2hvcnROYW1lT2Z8c2hvd0hlbHB8c2hvd0hpZGRlbnxzaG93TWFuaXBDdHh8c2hvd1NlbGVjdGlvbkluVGl0bGV8c2hvd1NoYWRpbmdHcm91cEF0dHJFZGl0b3J8c2hvd1dpbmRvd3xzaWdufHNpbXBsaWZ5fHNpbnxzaW5nbGVQcm9maWxlQmlyYWlsU3VyZmFjZXxzaXplfHNpemVCeXRlc3xza2luQ2x1c3Rlcnxza2luUGVyY2VudHxzbW9vdGhDdXJ2ZXxzbW9vdGhUYW5nZW50U3VyZmFjZXxzbW9vdGhzdGVwfHNuYXAydG8yfHNuYXBLZXl8c25hcE1vZGV8c25hcFRvZ2V0aGVyQ3R4fHNuYXBzaG90fHNvZnR8c29mdE1vZHxzb2Z0TW9kQ3R4fHNvcnR8c291bmR8c291bmRDb250cm9sfHNvdXJjZXxzcGFjZUxvY2F0b3J8c3BoZXJlfHNwaHJhbmR8c3BvdExpZ2h0fHNwb3RMaWdodFByZXZpZXdQb3J0fHNwcmVhZFNoZWV0RWRpdG9yfHNwcmluZ3xzcXJ0fHNxdWFyZVN1cmZhY2V8c3J0Q29udGV4dHxzdGFja1RyYWNlfHN0YXJ0U3RyaW5nfHN0YXJ0c1dpdGh8c3RpdGNoQW5kRXhwbG9kZVNoZWxsfHN0aXRjaFN1cmZhY2V8c3RpdGNoU3VyZmFjZVBvaW50c3xzdHJjbXB8c3RyaW5nQXJyYXlDYXRlbmF0ZXxzdHJpbmdBcnJheUNvbnRhaW5zfHN0cmluZ0FycmF5Q291bnR8c3RyaW5nQXJyYXlJbnNlcnRBdEluZGV4fHN0cmluZ0FycmF5SW50ZXJzZWN0b3J8c3RyaW5nQXJyYXlSZW1vdmV8c3RyaW5nQXJyYXlSZW1vdmVBdEluZGV4fHN0cmluZ0FycmF5UmVtb3ZlRHVwbGljYXRlc3xzdHJpbmdBcnJheVJlbW92ZUV4YWN0fHN0cmluZ0FycmF5VG9TdHJpbmd8c3RyaW5nVG9TdHJpbmdBcnJheXxzdHJpcHxzdHJpcFByZWZpeEZyb21OYW1lfHN0cm9rZXxzdWJkQXV0b1Byb2plY3Rpb258c3ViZENsZWFuVG9wb2xvZ3l8c3ViZENvbGxhcHNlfHN1YmREdXBsaWNhdGVBbmRDb25uZWN0fHN1YmRFZGl0VVZ8c3ViZExpc3RDb21wb25lbnRDb252ZXJzaW9ufHN1YmRNYXBDdXR8c3ViZE1hcFNld01vdmV8c3ViZE1hdGNoVG9wb2xvZ3l8c3ViZE1pcnJvcnxzdWJkVG9CbGluZHxzdWJkVG9Qb2x5fHN1YmRUcmFuc2ZlclVWc1RvQ2FjaGV8c3ViZGl2fHN1YmRpdkNyZWFzZXxzdWJkaXZEaXNwbGF5U21vb3RobmVzc3xzdWJzdGl0dXRlfHN1YnN0aXR1dGVBbGxTdHJpbmd8c3Vic3RpdHV0ZUdlb21ldHJ5fHN1YnN0cmluZ3xzdXJmYWNlfHN1cmZhY2VTYW1wbGVyfHN1cmZhY2VTaGFkZXJMaXN0fHN3YXRjaERpc3BsYXlQb3J0fHN3aXRjaFRhYmxlfHN5bWJvbEJ1dHRvbnxzeW1ib2xDaGVja0JveHxzeXNGaWxlfHN5c3RlbXx0YWJMYXlvdXR8dGFufHRhbmdlbnRDb25zdHJhaW50fHRleExhdHRpY2VEZWZvcm1Db250ZXh0fHRleE1hbmlwQ29udGV4dHx0ZXhNb3ZlQ29udGV4dHx0ZXhNb3ZlVVZTaGVsbENvbnRleHR8dGV4Um90YXRlQ29udGV4dHx0ZXhTY2FsZUNvbnRleHR8dGV4U2VsZWN0Q29udGV4dHx0ZXhTZWxlY3RTaG9ydGVzdFBhdGhDdHh8dGV4U211ZGdlVVZDb250ZXh0fHRleFdpblRvb2xDdHh8dGV4dHx0ZXh0Q3VydmVzfHRleHRGaWVsZHx0ZXh0RmllbGRCdXR0b25HcnB8dGV4dEZpZWxkR3JwfHRleHRNYW5pcHx0ZXh0U2Nyb2xsTGlzdHx0ZXh0VG9TaGVsZnx0ZXh0dXJlRGlzcGxhY2VQbGFuZXx0ZXh0dXJlSGFpckNvbG9yfHRleHR1cmVQbGFjZW1lbnRDb250ZXh0fHRleHR1cmVXaW5kb3d8dGhyZWFkQ291bnR8dGhyZWVQb2ludEFyY0N0eHx0aW1lQ29udHJvbHx0aW1lUG9ydHx0aW1lclh8dG9OYXRpdmVQYXRofHRvZ2dsZXx0b2dnbGVBeGlzfHRvZ2dsZVdpbmRvd1Zpc2liaWxpdHl8dG9rZW5pemV8dG9rZW5pemVMaXN0fHRvbGVyYW5jZXx0b2xvd2VyfHRvb2xCdXR0b258dG9vbENvbGxlY3Rpb258dG9vbERyb3BwZWR8dG9vbEhhc09wdGlvbnN8dG9vbFByb3BlcnR5V2luZG93fHRvcnVzfHRvdXBwZXJ8dHJhY2V8dHJhY2t8dHJhY2tDdHh8dHJhbnNmZXJBdHRyaWJ1dGVzfHRyYW5zZm9ybUNvbXBhcmV8dHJhbnNmb3JtTGltaXRzfHRyYW5zbGF0b3J8dHJpbXx0cnVuY3x0cnVuY2F0ZUZsdWlkQ2FjaGV8dHJ1bmNhdGVIYWlyQ2FjaGV8dHVtYmxlfHR1bWJsZUN0eHx0dXJidWxlbmNlfHR3b1BvaW50QXJjQ3R4fHVpUmVzfHVpVGVtcGxhdGV8dW5hc3NpZ25JbnB1dERldmljZXx1bmRvfHVuZG9JbmZvfHVuZ3JvdXB8dW5pZm9ybXx1bml0fHVubG9hZFBsdWdpbnx1bnRhbmdsZVVWfHVudGl0bGVkRmlsZU5hbWV8dW50cmltfHVwQXhpc3x1cGRhdGVBRXx1c2VyQ3R4fHV2TGlua3x1dlNuYXBzaG90fHZhbGlkYXRlU2hlbGZOYW1lfHZlY3Rvcml6ZXx2aWV3MmRUb29sQ3R4fHZpZXdDYW1lcmF8dmlld0NsaXBQbGFuZXx2aWV3Rml0fHZpZXdIZWFkT258dmlld0xvb2tBdHx2aWV3TWFuaXB8dmlld1BsYWNlfHZpZXdTZXR8dmlzb3J8dm9sdW1lQXhpc3x2b3J0ZXh8d2FpdEN1cnNvcnx3YXJuaW5nfHdlYkJyb3dzZXJ8d2ViQnJvd3NlclByZWZzfHdoYXRJc3x3aW5kb3d8d2luZG93UHJlZnx3aXJlfHdpcmVDb250ZXh0fHdvcmtzcGFjZXx3cmlua2xlfHdyaW5rbGVDb250ZXh0fHdyaXRlVGFrZXx4Ym1MYW5nUGF0aExpc3R8eGZvcm0pXGIvLG9wZXJhdG9yOlsvXCtbKz1dP3wtWy09XT98JiZ8XHxcfHxbPD5dPXxbKlwvIT1dPT98WyVeXS8se3BhdHRlcm46LyhefFtePF0pPCg/ITwpLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W14+XSk+KD8hPikvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovPDx8Pj58Wy4sOjs/XFtcXSgpe31dL30sdC5sYW5ndWFnZXMubWVsLmNvZGUuaW5zaWRlLnJlc3Q9dC5sYW5ndWFnZXMubWVsfXJldHVybiBxZH12YXIgVmQsQWs7ZnVuY3Rpb24gWTUoKXtpZihBaylyZXR1cm4gVmQ7QWs9MSxWZD1lLGUuZGlzcGxheU5hbWU9Im1lcm1haWQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm1lcm1haWQ9e2NvbW1lbnQ6e3BhdHRlcm46LyUlLiovLGdyZWVkeTohMH0sc3R5bGU6e3BhdHRlcm46L14oWyBcdF0qKD86Y2xhc3NEZWZ8bGlua1N0eWxlfHN0eWxlKVsgXHRdK1tcdyQtXStbIFx0XSspXHcuKlteXHM7XS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwcm9wZXJ0eTovXGJcd1tcdy1dKig/PVsgXHRdKjopLyxvcGVyYXRvcjovOi8scHVuY3R1YXRpb246LywvfX0sImludGVyLWFycm93LWxhYmVsIjp7cGF0dGVybjovKFtePD5veC49LV0pKD86LVstLl18PT0pKD8hWzw+b3guPS1dKVsgXHRdKig/OiJbXiJcclxuXSoifFteXHMiLj0tXSg/OlteXHJcbi49LV0qW15ccy49LV0pPylbIFx0XSooPzpcListPj98LS0rWy0+XXw9PStbPT5dKSg/IVs8Pm94Lj0tXSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7YXJyb3c6e3BhdHRlcm46Lyg/OlwuKy0+P3wtLStbLT5dfD09K1s9Pl0pJC8sYWxpYXM6Im9wZXJhdG9yIn0sbGFiZWw6e3BhdHRlcm46L14oW1xzXFNdezJ9WyBcdF0qKVxTKD86W1xzXFNdKlxTKT8vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InByb3BlcnR5In0sImFycm93LWhlYWQiOntwYXR0ZXJuOi9eXFMrLyxhbGlhczpbImFycm93Iiwib3BlcmF0b3IiXX19fSxhcnJvdzpbe3BhdHRlcm46LyhefFtee318by4tXSlbfH1dW3xvXSg/Oi0tfFwuXC4pW3xvXVt8e10oPyFbe318by4tXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0se3BhdHRlcm46LyhefFtePD5veC49LV0pKD86WzxveF0oPzo9PSt8LS0rfC1cLiotKVs+b3hdP3woPzo9PSt8LS0rfC1cLiotKVs+b3hdfD09PSt8LS0tK3wtXC4rLSkoPyFbPD5veC49LV0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi8oXnxbXjw+KCl4LV0pKD86LS0/KD86Pj58W3g+KV0pKD8hWzw+KCl4XSl8KD86PDx8W3g8KF0pLS0/KD8hLSkpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi8oXnxbXjw+fCpvLi1dKSg/Olsqb10tLXwtLVsqb118PFx8Pyg/Oi0tfFwuXC4pfCg/Oi0tfFwuXC4pXHw/PnwtLXxcLlwuKSg/IVs8Pnwqby4tXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn1dLGxhYmVsOntwYXR0ZXJuOi8oXnxbXnw8XSlcfCg/OlteXHJcbiJ8XXwiW14iXHJcbl0qIikrXHwvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LHRleHQ6e3BhdHRlcm46Lyg/OlsoXFt7XSt8XGI+KSg/OlteXHJcbiIoKVxbXF17fV18IlteIlxyXG5dKiIpKyg/OlspXF19XSt8PikvLGFsaWFzOiJzdHJpbmcifSxzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXSoiLyxncmVlZHk6ITB9LGFubm90YXRpb246e3BhdHRlcm46Lzw8KD86YWJzdHJhY3R8Y2hvaWNlfGVudW1lcmF0aW9ufGZvcmt8aW50ZXJmYWNlfGpvaW58c2VydmljZSk+PnxcW1xbKD86Y2hvaWNlfGZvcmt8am9pbilcXVxdL2ksYWxpYXM6ImltcG9ydGFudCJ9LGtleXdvcmQ6W3twYXR0ZXJuOi8oXlsgXHRdKikoPzphY3Rpb258Y2FsbGJhY2t8Y2xhc3N8Y2xhc3NEZWZ8Y2xhc3NEaWFncmFtfGNsaWNrfGRpcmVjdGlvbnxlckRpYWdyYW18Zmxvd2NoYXJ0fGdhbnR0fGdpdEdyYXBofGdyYXBofGpvdXJuZXl8bGlua3xsaW5rU3R5bGV8cGllfHJlcXVpcmVtZW50RGlhZ3JhbXxzZXF1ZW5jZURpYWdyYW18c3RhdGVEaWFncmFtfHN0YXRlRGlhZ3JhbS12MnxzdHlsZXxzdWJncmFwaCkoPyFbXHckLV0pL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXlsgXHRdKikoPzphY3RpdmF0ZXxhbHR8YW5kfGFzfGF1dG9udW1iZXJ8ZGVhY3RpdmF0ZXxlbHNlfGVuZCg/OlsgXHRdK25vdGUpP3xsb29wfG9wdHxwYXJ8cGFydGljaXBhbnR8cmVjdHxzdGF0ZXxub3RlWyBcdF0rKD86b3ZlcnwoPzpsZWZ0fHJpZ2h0KVsgXHRdK29mKSkoPyFbXHckLV0pL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sZW50aXR5Oi8jW2EtejAtOV0rOy8sb3BlcmF0b3I6e3BhdHRlcm46Lyhcd1sgXHRdKikmKD89WyBcdF0qXHcpfDo6Onw6Lyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWygpe307XS99fXJldHVybiBWZH12YXIgSGQseGs7ZnVuY3Rpb24gSzUoKXtpZih4aylyZXR1cm4gSGQ7eGs9MSxIZD1lLGUuZGlzcGxheU5hbWU9Im1pemFyIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5taXphcj17Y29tbWVudDovOjouKy8sa2V5d29yZDovQHByb29mXGJ8XGIoPzphY2NvcmRpbmd8YWdncmVnYXRlfGFsbHxhbmR8YW50b255bXxhcmV8YXN8YXNzb2NpYXRpdml0eXxhc3N1bWV8YXN5bW1ldHJ5fGF0dHJ8YmV8YmVnaW58YmVpbmd8Ynl8Y2FuY2VsZWR8Y2FzZXxjYXNlc3xjbHVzdGVycz98Y29oZXJlbmNlfGNvbW11dGF0aXZpdHl8Y29tcGF0aWJpbGl0eXxjb25uZWN0ZWRuZXNzfGNvbnNpZGVyfGNvbnNpc3RlbmN5fGNvbnN0cnVjdG9yc3xjb250cmFkaWN0aW9ufGNvcnJlY3RuZXNzfGRlZnxkZWZmdW5jfGRlZmluZXxkZWZpbml0aW9ucz98ZGVmcHJlZHxkb3xkb2VzfGVuZHxlbnZpcm9ufGVxdWFsc3xleHxleGFjdGx5fGV4aXN0ZW5jZXxmb3J8ZnJvbXxmdW5jfGdpdmVufGhlbmNlfGhlcmVieXxob2xkc3xpZGVtcG90ZW5jZXxpZGVudGl0eXxpZmY/fGltcGxpZXN8aW52b2x1dGl2ZW5lc3N8aXJyZWZsZXhpdml0eXxpc3xpdHxsZXR8bWVhbnN8bW9kZXxub258bm90fG5vdGF0aW9ucz98bm93fG9mfG9yfG90aGVyd2lzZXxvdmVyfHBlcnxwcmVkfHByZWZpeHxwcm9qZWN0aXZpdHl8cHJvb2Z8cHJvdmlkZWR8cXVhfHJlY29uc2lkZXJ8cmVkZWZpbmV8cmVkdWNlfHJlZHVjaWJpbGl0eXxyZWZsZXhpdml0eXxyZWdpc3RyYXRpb25zP3xyZXF1aXJlbWVudHN8cmVzZXJ2ZXxzY2h8c2NoZW1lcz98c2VjdGlvbnxzZWxlY3RvcnxzZXR8c2V0aG9vZHxzdHxzdHJ1Y3R8c3VjaHxzdXBwb3NlfHN5bW1ldHJ5fHN5bm9ueW18dGFrZXx0aGF0fHRoZXx0aGVufHRoZW9yZW1zP3x0aGVzaXN8dGh1c3x0b3x0cmFuc2l0aXZpdHl8dW5pcXVlbmVzc3x2b2NhYnVsYXIoPzppZXN8eSl8d2hlbnx3aGVyZXx3aXRofHdydClcYi8scGFyYW1ldGVyOntwYXR0ZXJuOi9cJCg/OjEwfFxkKS8sYWxpYXM6InZhcmlhYmxlIn0sdmFyaWFibGU6L1xiXHcrKD89OikvLG51bWJlcjovKD86XGJ8LSlcZCtcYi8sb3BlcmF0b3I6L1wuXC5cLnwtPnwmfFwuPz0vLHB1bmN0dWF0aW9uOi9cKCN8I1wpfFssOjtcW1xdKCl7fV0vfX1yZXR1cm4gSGR9dmFyIFdkLFJrO2Z1bmN0aW9uIFg1KCl7aWYoUmspcmV0dXJuIFdkO1JrPTEsV2Q9ZSxlLmRpc3BsYXlOYW1lPSJtb25nb2RiIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9WyIkZXEiLCIkZ3QiLCIkZ3RlIiwiJGluIiwiJGx0IiwiJGx0ZSIsIiRuZSIsIiRuaW4iLCIkYW5kIiwiJG5vdCIsIiRub3IiLCIkb3IiLCIkZXhpc3RzIiwiJHR5cGUiLCIkZXhwciIsIiRqc29uU2NoZW1hIiwiJG1vZCIsIiRyZWdleCIsIiR0ZXh0IiwiJHdoZXJlIiwiJGdlb0ludGVyc2VjdHMiLCIkZ2VvV2l0aGluIiwiJG5lYXIiLCIkbmVhclNwaGVyZSIsIiRhbGwiLCIkZWxlbU1hdGNoIiwiJHNpemUiLCIkYml0c0FsbENsZWFyIiwiJGJpdHNBbGxTZXQiLCIkYml0c0FueUNsZWFyIiwiJGJpdHNBbnlTZXQiLCIkY29tbWVudCIsIiRlbGVtTWF0Y2giLCIkbWV0YSIsIiRzbGljZSIsIiRjdXJyZW50RGF0ZSIsIiRpbmMiLCIkbWluIiwiJG1heCIsIiRtdWwiLCIkcmVuYW1lIiwiJHNldCIsIiRzZXRPbkluc2VydCIsIiR1bnNldCIsIiRhZGRUb1NldCIsIiRwb3AiLCIkcHVsbCIsIiRwdXNoIiwiJHB1bGxBbGwiLCIkZWFjaCIsIiRwb3NpdGlvbiIsIiRzbGljZSIsIiRzb3J0IiwiJGJpdCIsIiRhZGRGaWVsZHMiLCIkYnVja2V0IiwiJGJ1Y2tldEF1dG8iLCIkY29sbFN0YXRzIiwiJGNvdW50IiwiJGN1cnJlbnRPcCIsIiRmYWNldCIsIiRnZW9OZWFyIiwiJGdyYXBoTG9va3VwIiwiJGdyb3VwIiwiJGluZGV4U3RhdHMiLCIkbGltaXQiLCIkbGlzdExvY2FsU2Vzc2lvbnMiLCIkbGlzdFNlc3Npb25zIiwiJGxvb2t1cCIsIiRtYXRjaCIsIiRtZXJnZSIsIiRvdXQiLCIkcGxhbkNhY2hlU3RhdHMiLCIkcHJvamVjdCIsIiRyZWRhY3QiLCIkcmVwbGFjZVJvb3QiLCIkcmVwbGFjZVdpdGgiLCIkc2FtcGxlIiwiJHNldCIsIiRza2lwIiwiJHNvcnQiLCIkc29ydEJ5Q291bnQiLCIkdW5pb25XaXRoIiwiJHVuc2V0IiwiJHVud2luZCIsIiRzZXRXaW5kb3dGaWVsZHMiLCIkYWJzIiwiJGFjY3VtdWxhdG9yIiwiJGFjb3MiLCIkYWNvc2giLCIkYWRkIiwiJGFkZFRvU2V0IiwiJGFsbEVsZW1lbnRzVHJ1ZSIsIiRhbmQiLCIkYW55RWxlbWVudFRydWUiLCIkYXJyYXlFbGVtQXQiLCIkYXJyYXlUb09iamVjdCIsIiRhc2luIiwiJGFzaW5oIiwiJGF0YW4iLCIkYXRhbjIiLCIkYXRhbmgiLCIkYXZnIiwiJGJpbmFyeVNpemUiLCIkYnNvblNpemUiLCIkY2VpbCIsIiRjbXAiLCIkY29uY2F0IiwiJGNvbmNhdEFycmF5cyIsIiRjb25kIiwiJGNvbnZlcnQiLCIkY29zIiwiJGRhdGVGcm9tUGFydHMiLCIkZGF0ZVRvUGFydHMiLCIkZGF0ZUZyb21TdHJpbmciLCIkZGF0ZVRvU3RyaW5nIiwiJGRheU9mTW9udGgiLCIkZGF5T2ZXZWVrIiwiJGRheU9mWWVhciIsIiRkZWdyZWVzVG9SYWRpYW5zIiwiJGRpdmlkZSIsIiRlcSIsIiRleHAiLCIkZmlsdGVyIiwiJGZpcnN0IiwiJGZsb29yIiwiJGZ1bmN0aW9uIiwiJGd0IiwiJGd0ZSIsIiRob3VyIiwiJGlmTnVsbCIsIiRpbiIsIiRpbmRleE9mQXJyYXkiLCIkaW5kZXhPZkJ5dGVzIiwiJGluZGV4T2ZDUCIsIiRpc0FycmF5IiwiJGlzTnVtYmVyIiwiJGlzb0RheU9mV2VlayIsIiRpc29XZWVrIiwiJGlzb1dlZWtZZWFyIiwiJGxhc3QiLCIkbGFzdCIsIiRsZXQiLCIkbGl0ZXJhbCIsIiRsbiIsIiRsb2ciLCIkbG9nMTAiLCIkbHQiLCIkbHRlIiwiJGx0cmltIiwiJG1hcCIsIiRtYXgiLCIkbWVyZ2VPYmplY3RzIiwiJG1ldGEiLCIkbWluIiwiJG1pbGxpc2Vjb25kIiwiJG1pbnV0ZSIsIiRtb2QiLCIkbW9udGgiLCIkbXVsdGlwbHkiLCIkbmUiLCIkbm90IiwiJG9iamVjdFRvQXJyYXkiLCIkb3IiLCIkcG93IiwiJHB1c2giLCIkcmFkaWFuc1RvRGVncmVlcyIsIiRyYW5nZSIsIiRyZWR1Y2UiLCIkcmVnZXhGaW5kIiwiJHJlZ2V4RmluZEFsbCIsIiRyZWdleE1hdGNoIiwiJHJlcGxhY2VPbmUiLCIkcmVwbGFjZUFsbCIsIiRyZXZlcnNlQXJyYXkiLCIkcm91bmQiLCIkcnRyaW0iLCIkc2Vjb25kIiwiJHNldERpZmZlcmVuY2UiLCIkc2V0RXF1YWxzIiwiJHNldEludGVyc2VjdGlvbiIsIiRzZXRJc1N1YnNldCIsIiRzZXRVbmlvbiIsIiRzaXplIiwiJHNpbiIsIiRzbGljZSIsIiRzcGxpdCIsIiRzcXJ0IiwiJHN0ZERldlBvcCIsIiRzdGREZXZTYW1wIiwiJHN0cmNhc2VjbXAiLCIkc3RyTGVuQnl0ZXMiLCIkc3RyTGVuQ1AiLCIkc3Vic3RyIiwiJHN1YnN0ckJ5dGVzIiwiJHN1YnN0ckNQIiwiJHN1YnRyYWN0IiwiJHN1bSIsIiRzd2l0Y2giLCIkdGFuIiwiJHRvQm9vbCIsIiR0b0RhdGUiLCIkdG9EZWNpbWFsIiwiJHRvRG91YmxlIiwiJHRvSW50IiwiJHRvTG9uZyIsIiR0b09iamVjdElkIiwiJHRvU3RyaW5nIiwiJHRvTG93ZXIiLCIkdG9VcHBlciIsIiR0cmltIiwiJHRydW5jIiwiJHR5cGUiLCIkd2VlayIsIiR5ZWFyIiwiJHppcCIsIiRjb3VudCIsIiRkYXRlQWRkIiwiJGRhdGVEaWZmIiwiJGRhdGVTdWJ0cmFjdCIsIiRkYXRlVHJ1bmMiLCIkZ2V0RmllbGQiLCIkcmFuZCIsIiRzYW1wbGVSYXRlIiwiJHNldEZpZWxkIiwiJHVuc2V0RmllbGQiLCIkY29tbWVudCIsIiRleHBsYWluIiwiJGhpbnQiLCIkbWF4IiwiJG1heFRpbWVNUyIsIiRtaW4iLCIkb3JkZXJieSIsIiRxdWVyeSIsIiRyZXR1cm5LZXkiLCIkc2hvd0Rpc2tMb2MiLCIkbmF0dXJhbCJdLGE9WyJPYmplY3RJZCIsIkNvZGUiLCJCaW5EYXRhIiwiREJSZWYiLCJUaW1lc3RhbXAiLCJOdW1iZXJMb25nIiwiTnVtYmVyRGVjaW1hbCIsIk1heEtleSIsIk1pbktleSIsIlJlZ0V4cCIsIklTT0RhdGUiLCJVVUlEIl07cj1yLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5yZXBsYWNlKCIkIiwiXFwkIil9KTt2YXIgaT0iKD86IityLmpvaW4oInwiKSsiKVxcYiI7bi5sYW5ndWFnZXMubW9uZ29kYj1uLmxhbmd1YWdlcy5leHRlbmQoImphdmFzY3JpcHQiLHt9KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1vbmdvZGIiLCJzdHJpbmciLHtwcm9wZXJ0eTp7cGF0dGVybjovKD86KFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMXwoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSopKD89XHMqOikvLGdyZWVkeTohMCxpbnNpZGU6e2tleXdvcmQ6UmVnRXhwKGBeKFsnIl0pP2AraSsiKD86XFwxKT8kIil9fX0pLG4ubGFuZ3VhZ2VzLm1vbmdvZGIuc3RyaW5nLmluc2lkZT17dXJsOntwYXR0ZXJuOi9odHRwcz86XC9cL1stXHdAOiUuK34jPV17MSwyNTZ9XC5bYS16MC05KCldezEsNn1cYlstXHcoKUA6JSsufiM/Ji89XSovaSxncmVlZHk6ITB9LGVudGl0eTp7cGF0dGVybjovXGIoPzooPzpbMDFdP1xkXGQ/fDJbMC00XVxkfDI1WzAtNV0pXC4pezN9KD86WzAxXT9cZFxkP3wyWzAtNF1cZHwyNVswLTVdKVxiLyxncmVlZHk6ITB9fSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm1vbmdvZGIiLCJjb25zdGFudCIse2J1aWx0aW46e3BhdHRlcm46UmVnRXhwKCJcXGIoPzoiK2Euam9pbigifCIpKyIpXFxiIiksYWxpYXM6ImtleXdvcmQifX0pfSkodCl9cmV0dXJuIFdkfXZhciBZZCxfaztmdW5jdGlvbiBaNSgpe2lmKF9rKXJldHVybiBZZDtfaz0xLFlkPWUsZS5kaXNwbGF5TmFtZT0ibW9ua2V5IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5tb25rZXk9e2NvbW1lbnQ6e3BhdHRlcm46L14jUmVtXHNbXHNcU10qP14jRW5kfCcuKy9pbSxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIlteIlxyXG5dKiIvLGdyZWVkeTohMH0scHJlcHJvY2Vzc29yOntwYXR0ZXJuOi8oXlsgXHRdKikjLisvbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoicHJvcGVydHkifSxmdW5jdGlvbjovXGJcdysoPz1cKCkvLCJ0eXBlLWNoYXIiOntwYXR0ZXJuOi9cYls/JSMkXS8sYWxpYXM6ImNsYXNzLW5hbWUifSxudW1iZXI6e3BhdHRlcm46LygoPzpcLlwuKT8pKD86KD86XGJ8XEItXC4/fFxCXC4pXGQrKD86KD8hXC5cLilcLlxkKik/fFwkW1xkYS1mXSspL2ksbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzpBYnN0cmFjdHxBcnJheXxCb29sfENhc2V8Q2F0Y2h8Q2xhc3N8Q29uc3R8Q29udGludWV8RGVmYXVsdHxFYWNoaW58RWxzZXxFbHNlSWZ8RW5kfEVuZElmfEV4aXR8RXh0ZW5kc3xFeHRlcm58RmFsc2V8RmllbGR8RmluYWx8RmxvYXR8Rm9yfEZvcmV2ZXJ8RnVuY3Rpb258R2xvYmFsfElmfEltcGxlbWVudHN8SW1wb3J0fElubGluZXxJbnR8SW50ZXJmYWNlfExvY2FsfE1ldGhvZHxNb2R1bGV8TmV3fE5leHR8TnVsbHxPYmplY3R8UHJpdmF0ZXxQcm9wZXJ0eXxQdWJsaWN8UmVwZWF0fFJldHVybnxTZWxlY3R8U2VsZnxTdGVwfFN0cmljdHxTdHJpbmd8U3VwZXJ8VGhlbnxUaHJvd3xUb3xUcnVlfFRyeXxVbnRpbHxWb2lkfFdlbmR8V2hpbGUpXGIvaSxvcGVyYXRvcjovXC5cLnw8Wz0+XT98Pj0/fDo/PXwoPzpbK1wtKlwvJn58XXxcYig/Ok1vZHxTaGx8U2hyKVxiKT0/fFxiKD86QW5kfE5vdHxPcilcYi9pLHB1bmN0dWF0aW9uOi9bLiw6OygpXFtcXV0vfX1yZXR1cm4gWWR9dmFyIEtkLElrO2Z1bmN0aW9uIFE1KCl7aWYoSWspcmV0dXJuIEtkO0lrPTEsS2Q9ZSxlLmRpc3BsYXlOYW1lPSJtb29uc2NyaXB0IixlLmFsaWFzZXM9WyJtb29uIl07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5tb29uc2NyaXB0PXtjb21tZW50Oi8tLS4qLyxzdHJpbmc6W3twYXR0ZXJuOi8nW14nXSonfFxbKD0qKVxbW1xzXFNdKj9cXVwxXF0vLGdyZWVkeTohMH0se3BhdHRlcm46LyJbXiJdKiIvLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46LyNce1tee31dKlx9LyxpbnNpZGU6e21vb25zY3JpcHQ6e3BhdHRlcm46LyheI1x7KVtcc1xTXSsoPz1cfSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LCJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovI1x7fFx9LyxhbGlhczoicHVuY3R1YXRpb24ifX19fX1dLCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46LyhcYig/OmNsYXNzfGV4dGVuZHMpWyBcdF0rKVx3Ky8sbG9va2JlaGluZDohMH0sL1xiW0EtWl1cdyovXSxrZXl3b3JkOi9cYig/OmNsYXNzfGNvbnRpbnVlfGRvfGVsc2V8ZWxzZWlmfGV4cG9ydHxleHRlbmRzfGZvcnxmcm9tfGlmfGltcG9ydHxpbnxsb2NhbHxuaWx8cmV0dXJufHNlbGZ8c3VwZXJ8c3dpdGNofHRoZW58dW5sZXNzfHVzaW5nfHdoZW58d2hpbGV8d2l0aClcYi8sdmFyaWFibGU6L0BAP1x3Ki8scHJvcGVydHk6e3BhdHRlcm46L1xiKD8hXGQpXHcrKD89Oil8KDopKD8hXGQpXHcrLyxsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjp7cGF0dGVybjovXGIoPzpfR3xfVkVSU0lPTnxhc3NlcnR8Y29sbGVjdGdhcmJhZ2V8Y29yb3V0aW5lXC4oPzpjcmVhdGV8cmVzdW1lfHJ1bm5pbmd8c3RhdHVzfHdyYXB8eWllbGQpfGRlYnVnXC4oPzpkZWJ1Z3xnZXRmZW52fGdldGhvb2t8Z2V0aW5mb3xnZXRsb2NhbHxnZXRtZXRhdGFibGV8Z2V0cmVnaXN0cnl8Z2V0dXB2YWx1ZXxzZXRmZW52fHNldGhvb2t8c2V0bG9jYWx8c2V0bWV0YXRhYmxlfHNldHVwdmFsdWV8dHJhY2ViYWNrKXxkb2ZpbGV8ZXJyb3J8Z2V0ZmVudnxnZXRtZXRhdGFibGV8aW9cLig/OmNsb3NlfGZsdXNofGlucHV0fGxpbmVzfG9wZW58b3V0cHV0fHBvcGVufHJlYWR8c3RkZXJyfHN0ZGlufHN0ZG91dHx0bXBmaWxlfHR5cGV8d3JpdGUpfGlwYWlyc3xsb2FkfGxvYWRmaWxlfGxvYWRzdHJpbmd8bWF0aFwuKD86YWJzfGFjb3N8YXNpbnxhdGFufGF0YW4yfGNlaWx8Y29zfGNvc2h8ZGVnfGV4cHxmbG9vcnxmbW9kfGZyZXhwfGxkZXhwfGxvZ3xsb2cxMHxtYXh8bWlufG1vZGZ8cGl8cG93fHJhZHxyYW5kb218cmFuZG9tc2VlZHxzaW58c2luaHxzcXJ0fHRhbnx0YW5oKXxtb2R1bGV8bmV4dHxvc1wuKD86Y2xvY2t8ZGF0ZXxkaWZmdGltZXxleGVjdXRlfGV4aXR8Z2V0ZW52fHJlbW92ZXxyZW5hbWV8c2V0bG9jYWxlfHRpbWV8dG1wbmFtZSl8cGFja2FnZVwuKD86Y3BhdGh8bG9hZGVkfGxvYWRsaWJ8cGF0aHxwcmVsb2FkfHNlZWFsbCl8cGFpcnN8cGNhbGx8cHJpbnR8cmF3ZXF1YWx8cmF3Z2V0fHJhd3NldHxyZXF1aXJlfHNlbGVjdHxzZXRmZW52fHNldG1ldGF0YWJsZXxzdHJpbmdcLig/OmJ5dGV8Y2hhcnxkdW1wfGZpbmR8Zm9ybWF0fGdtYXRjaHxnc3VifGxlbnxsb3dlcnxtYXRjaHxyZXB8cmV2ZXJzZXxzdWJ8dXBwZXIpfHRhYmxlXC4oPzpjb25jYXR8aW5zZXJ0fG1heG58cmVtb3ZlfHNvcnQpfHRvbnVtYmVyfHRvc3RyaW5nfHR5cGV8dW5wYWNrfHhwY2FsbClcYi8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6Lyg/OlxCXC5cZCt8XGJcZCtcLlxkK3xcYlxkKyg/PVtlRV0pKSg/OltlRV1bLStdP1xkKyk/XGJ8XGIoPzoweFthLWZBLUZcZF0rfFxkKykoPzpVP0xMKT9cYi8sb3BlcmF0b3I6L1wuezN9fFstPV0+fH49fCg/OlstKyovJTw+IT1dfFwuXC4pPT98WzojXl18XGIoPzphbmR8b3IpXGI9P3xcYig/Om5vdClcYi8scHVuY3R1YXRpb246L1suLCgpW1xde31cXF0vfSx0Lmxhbmd1YWdlcy5tb29uc2NyaXB0LnN0cmluZ1sxXS5pbnNpZGUuaW50ZXJwb2xhdGlvbi5pbnNpZGUubW9vbnNjcmlwdC5pbnNpZGU9dC5sYW5ndWFnZXMubW9vbnNjcmlwdCx0Lmxhbmd1YWdlcy5tb29uPXQubGFuZ3VhZ2VzLm1vb25zY3JpcHR9cmV0dXJuIEtkfXZhciBYZCxOaztmdW5jdGlvbiBKNSgpe2lmKE5rKXJldHVybiBYZDtOaz0xLFhkPWUsZS5kaXNwbGF5TmFtZT0ibjFxbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMubjFxbD17Y29tbWVudDp7cGF0dGVybjovXC9cKltcc1xTXSo/KD86JHxcKlwvKXwtLS4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFxbXHNcU118KD8hXDEpW15cXF18XDFcMSkqXDEvLGdyZWVkeTohMH0saWRlbnRpZmllcjp7cGF0dGVybjovYCg/OlxcW1xzXFNdfFteXFxgXXxgYCkqYC8sZ3JlZWR5OiEwfSxwYXJhbWV0ZXI6L1wkW1x3Ll0rLyxrZXl3b3JkOi9cYig/OkFEVklTRXxBTEx8QUxURVJ8QU5BTFlaRXxBU3xBU0N8QVR8QkVHSU58QklOQVJZfEJPT0xFQU58QlJFQUt8QlVDS0VUfEJVSUxEfEJZfENBTEx8Q0FTVHxDTFVTVEVSfENPTExBVEV8Q09MTEVDVElPTnxDT01NSVR8Q09NTUlUVEVEfENPTk5FQ1R8Q09OVElOVUV8Q09SUkVMQVRFfENPUlJFTEFURUR8Q09WRVJ8Q1JFQVRFfENVUlJFTlR8REFUQUJBU0V8REFUQVNFVHxEQVRBU1RPUkV8REVDTEFSRXxERUNSRU1FTlR8REVMRVRFfERFUklWRUR8REVTQ3xERVNDUklCRXxESVNUSU5DVHxET3xEUk9QfEVBQ0h8RUxFTUVOVHxFWENFUFR8RVhDTFVERXxFWEVDVVRFfEVYUExBSU58RkVUQ0h8RklMVEVSfEZMQVRURU58RkxVU0h8Rk9MTE9XSU5HfEZPUnxGT1JDRXxGUk9NfEZUU3xGVU5DVElPTnxHT0xBTkd8R1JBTlR8R1JPVVB8R1JPVVBTfEdTSXxIQVNIfEhBVklOR3xJRnxJR05PUkV8SUxJS0V8SU5DTFVERXxJTkNSRU1FTlR8SU5ERVh8SU5GRVJ8SU5MSU5FfElOTkVSfElOU0VSVHxJTlRFUlNFQ1R8SU5UT3xJU3xJU09MQVRJT058SkFWQVNDUklQVHxKT0lOfEtFWXxLRVlTfEtFWVNQQUNFfEtOT1dOfExBTkdVQUdFfExBU1R8TEVGVHxMRVR8TEVUVElOR3xMRVZFTHxMSU1JVHxMU018TUFQfE1BUFBJTkd8TUFUQ0hFRHxNQVRFUklBTElaRUR8TUVSR0V8TUlOVVN8TUlTU0lOR3xOQU1FU1BBQ0V8TkVTVHxOTHxOT3xOVEhfVkFMVUV8TlVMTHxOVUxMU3xOVU1CRVJ8T0JKRUNUfE9GRlNFVHxPTnxPUFRJT058T1BUSU9OU3xPUkRFUnxPVEhFUlN8T1VURVJ8T1ZFUnxQQVJTRXxQQVJUSVRJT058UEFTU1dPUkR8UEFUSHxQT09MfFBSRUNFRElOR3xQUkVQQVJFfFBSSU1BUll8UFJJVkFURXxQUklWSUxFR0V8UFJPQkV8UFJPQ0VEVVJFfFBVQkxJQ3xSQU5HRXxSQVd8UkVBTE18UkVEVUNFfFJFTkFNRXxSRVNQRUNUfFJFVFVSTnxSRVRVUk5JTkd8UkVWT0tFfFJJR0hUfFJPTEV8Uk9MTEJBQ0t8Uk9XfFJPV1N8U0FUSVNGSUVTfFNBVkVQT0lOVHxTQ0hFTUF8U0NPUEV8U0VMRUNUfFNFTEZ8U0VNSXxTRVR8U0hPV3xTT01FfFNUQVJUfFNUQVRJU1RJQ1N8U1RSSU5HfFNZU1RFTXxUSUVTfFRPfFRSQU58VFJBTlNBQ1RJT058VFJJR0dFUnxUUlVOQ0FURXxVTkJPVU5ERUR8VU5ERVJ8VU5JT058VU5JUVVFfFVOS05PV058VU5ORVNUfFVOU0VUfFVQREFURXxVUFNFUlR8VVNFfFVTRVJ8VVNJTkd8VkFMSURBVEV8VkFMVUV8VkFMVUVTfFZJQXxWSUVXfFdIRVJFfFdISUxFfFdJTkRPV3xXSVRIfFdPUkt8WE9SKVxiL2ksZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksYm9vbGVhbjovXGIoPzpGQUxTRXxUUlVFKVxiL2ksbnVtYmVyOi8oPzpcYlxkK1wufFxCXC4pXGQrZVsrXC1dP1xkK1xifFxiXGQrKD86XC5cZCopP3xcQlwuXGQrXGIvaSxvcGVyYXRvcjovWy0rKlwvJV18IT18PT0/fFx8XHx8PFs+PV0/fD49P3xcYig/OkFORHxBTll8QVJSQVl8QkVUV0VFTnxDQVNFfEVMU0V8RU5EfEVWRVJZfEVYSVNUU3xGSVJTVHxJTnxMSUtFfE5PVHxPUnxUSEVOfFZBTFVFRHxXSEVOfFdJVEhJTilcYi9pLHB1bmN0dWF0aW9uOi9bO1tcXSgpLC57fTpdL319cmV0dXJuIFhkfXZhciBaZCxDaztmdW5jdGlvbiBlVygpe2lmKENrKXJldHVybiBaZDtDaz0xLFpkPWUsZS5kaXNwbGF5TmFtZT0ibjRqcyIsZS5hbGlhc2VzPVsibjRqc2QiXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm40anM9dC5sYW5ndWFnZXMuZXh0ZW5kKCJqYXZhc2NyaXB0Iix7a2V5d29yZDovXGIoPzpBcnJheXxhbnl8Ym9vbGVhbnxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnN0fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGRlYnVnZ2VyfGRlY2xhcmV8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZhbHNlfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2V0fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxtb2R1bGV8bmV3fG51bGx8bnVtYmVyfHBhY2thZ2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJldHVybnxzZXR8c3RhdGljfHN0cmluZ3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnVlfHRyeXx0eXBlb2Z8dmFyfHZvaWR8d2hpbGV8d2l0aHx5aWVsZClcYi99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm40anMiLCJjb25zdGFudCIse2Fubm90YXRpb246e3BhdHRlcm46L0ArXHcrLyxhbGlhczoib3BlcmF0b3IifX0pLHQubGFuZ3VhZ2VzLm40anNkPXQubGFuZ3VhZ2VzLm40anN9cmV0dXJuIFpkfXZhciBRZCxPaztmdW5jdGlvbiB0Vygpe2lmKE9rKXJldHVybiBRZDtPaz0xLFFkPWUsZS5kaXNwbGF5TmFtZT0ibmFuZDJ0ZXRyaXNIZGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzWyJuYW5kMnRldHJpcy1oZGwiXT17Y29tbWVudDovXC9cLy4qfFwvXCpbXHNcU10qPyg/OlwqXC98JCkvLGtleXdvcmQ6L1xiKD86QlVJTFRJTnxDSElQfENMT0NLRUR8SU58T1VUfFBBUlRTKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGZ1bmN0aW9uOi9cYltBLVphLXpdW0EtWmEtejAtOV0qKD89XCgpLyxudW1iZXI6L1xiXGQrXGIvLG9wZXJhdG9yOi89fFwuXC4vLHB1bmN0dWF0aW9uOi9be31bXF07KCksOl0vfX1yZXR1cm4gUWR9dmFyIEpkLExrO2Z1bmN0aW9uIG5XKCl7aWYoTGspcmV0dXJuIEpkO0xrPTEsSmQ9ZSxlLmRpc3BsYXlOYW1lPSJuYW5pc2NyaXB0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1x7W15cclxuXFtcXXt9XSpcfS8sYT17InF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqIi8sYWxpYXM6Im9wZXJhdG9yIn0sImNvbW1hbmQtcGFyYW0taWQiOntwYXR0ZXJuOi8oXHMpXHcrOi8sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkifSwiY29tbWFuZC1wYXJhbS12YWx1ZSI6W3twYXR0ZXJuOnIsYWxpYXM6InNlbGVjdG9yIn0se3BhdHRlcm46LyhbXHQgXSlcUysvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJvcGVyYXRvciJ9LHtwYXR0ZXJuOi9cUyg/Oi4qXFMpPy8sYWxpYXM6Im9wZXJhdG9yIn1dfTtuLmxhbmd1YWdlcy5uYW5pc2NyaXB0PXtjb21tZW50OntwYXR0ZXJuOi9eKFtcdCBdKik7LiovbSxsb29rYmVoaW5kOiEwfSxkZWZpbmU6e3BhdHRlcm46L14+LisvbSxhbGlhczoidGFnIixpbnNpZGU6e3ZhbHVlOntwYXR0ZXJuOi8oXj5cdytbXHQgXSspKD8hXHMpW157fVxyXG5dKy8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxrZXk6e3BhdHRlcm46LyhePilcdysvLGxvb2tiZWhpbmQ6ITB9fX0sbGFiZWw6e3BhdHRlcm46L14oW1x0IF0qKSNbXHQgXSpcdytbXHQgXSokL20sbG9va2JlaGluZDohMCxhbGlhczoicmVnZXgifSxjb21tYW5kOntwYXR0ZXJuOi9eKFtcdCBdKilAXHcrKD89W1x0IF18JCkuKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIixpbnNpZGU6eyJjb21tYW5kLW5hbWUiOi9eQFx3Ky8sZXhwcmVzc2lvbjp7cGF0dGVybjpyLGdyZWVkeTohMCxhbGlhczoic2VsZWN0b3IifSwiY29tbWFuZC1wYXJhbXMiOntwYXR0ZXJuOi9ccypcU1tcc1xTXSovLGluc2lkZTphfX19LCJnZW5lcmljLXRleHQiOntwYXR0ZXJuOi8oXlsgXHRdKilbXiNAPjtcc10uKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIixpbnNpZGU6eyJlc2NhcGVkLWNoYXIiOi9cXFt7fVxbXF0iXS8sZXhwcmVzc2lvbjp7cGF0dGVybjpyLGdyZWVkeTohMCxhbGlhczoic2VsZWN0b3IifSwiaW5saW5lLWNvbW1hbmQiOntwYXR0ZXJuOi9cW1tcdCBdKlx3W15cclxuXFtcXV0qXF0vLGdyZWVkeTohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7ImNvbW1hbmQtcGFyYW1zIjp7cGF0dGVybjovKF5cW1tcdCBdKlx3K1xiKVtcc1xTXSsoPz1cXSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTphfSwiY29tbWFuZC1wYXJhbS1uYW1lIjp7cGF0dGVybjovXihcW1tcdCBdKilcdysvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im5hbWUifSwic3RhcnQtc3RvcC1jaGFyIjovW1xbXF1dL319fX19LG4ubGFuZ3VhZ2VzLm5hbmk9bi5sYW5ndWFnZXMubmFuaXNjcmlwdCxuLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKHMpe3ZhciBsPXMudG9rZW5zO2wuZm9yRWFjaChmdW5jdGlvbih1KXtpZih0eXBlb2YgdSE9InN0cmluZyImJnUudHlwZT09PSJnZW5lcmljLXRleHQiKXt2YXIgYz1vKHUpO2koYyl8fCh1LnR5cGU9ImJhZC1saW5lIix1LmNvbnRlbnQ9Yyl9fSl9KTtmdW5jdGlvbiBpKHMpe2Zvcih2YXIgbD0iW117fSIsdT1bXSxjPTA7YzxzLmxlbmd0aDtjKyspe3ZhciBkPXNbY10scD1sLmluZGV4T2YoZCk7aWYocCE9PS0xKXtpZihwJTI9PT0wKXUucHVzaChwKzEpO2Vsc2UgaWYodS5wb3AoKSE9PXApcmV0dXJuITF9fXJldHVybiB1Lmxlbmd0aD09PTB9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gdHlwZW9mIHM9PSJzdHJpbmciP3M6QXJyYXkuaXNBcnJheShzKT9zLm1hcChvKS5qb2luKCIiKTpvKHMuY29udGVudCl9fSkodCl9cmV0dXJuIEpkfXZhciBlcCxEaztmdW5jdGlvbiByVygpe2lmKERrKXJldHVybiBlcDtEaz0xLGVwPWUsZS5kaXNwbGF5TmFtZT0ibmFzbSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMubmFzbT17Y29tbWVudDovOy4qJC9tLHN0cmluZzovKFsiJ2BdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxsYWJlbDp7cGF0dGVybjovKF5ccyopW0EtWmEtei5fPyRdW1x3Lj8kQH4jXSo6L20sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxrZXl3b3JkOlsvXFs/QklUUyAoPzoxNnwzMnw2NClcXT8vLHtwYXR0ZXJuOi8oXlxzKilzZWN0aW9uXHMqW2Etei5dKzo/L2ltLGxvb2tiZWhpbmQ6ITB9LC8oPzpleHRlcm58Z2xvYmFsKVteO1xyXG5dKi9pLC8oPzpDUFV8REVGQVVMVHxGTE9BVCkuKiQvbV0scmVnaXN0ZXI6e3BhdHRlcm46L1xiKD86c3RcZHxbeHl6XW1tXGRcZD98W2NkdF1yXGR8clxkXGQ/W2J3ZF0/fFtlcl0/W2FiY2RdeHxbYWJjZF1baGxdfFtlcl0/KD86YnB8ZGl8c2l8c3ApfFtjZGVmZ3NdcylcYi9pLGFsaWFzOiJ2YXJpYWJsZSJ9LG51bWJlcjovKD86XGJ8KD89XCQpKSg/OjBbaHhdKD86XC5bXGRhLWZdK3xbXGRhLWZdKyg/OlwuW1xkYS1mXSspPykoPzpwWystXT9cZCspP3xcZFtcZGEtZl0rW2h4XXxcJFxkW1xkYS1mXSp8MFtvcV1bMC03XSt8WzAtN10rW29xXXwwW2J5XVswMV0rfFswMV0rW2J5XXwwW2R0XVxkK3woPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OlwuP2VbKy1dP1xkKyk/W2R0XT8pXGIvaSxvcGVyYXRvcjovW1xbXF0qK1wtXC8lPD49JnwkIV0vfX1yZXR1cm4gZXB9dmFyIHRwLE1rO2Z1bmN0aW9uIGFXKCl7aWYoTWspcmV0dXJuIHRwO01rPTEsdHA9ZSxlLmRpc3BsYXlOYW1lPSJuZW9uIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5uZW9uPXtjb21tZW50OntwYXR0ZXJuOi8jLiovLGdyZWVkeTohMH0sZGF0ZXRpbWU6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pXGRcZFxkXGQtXGRcZD8tXGRcZD8oPzooPzpbVHRdfCArKVxkXGQ/OlxkXGQ6XGRcZCg/OlwuXGQqKT8gKig/Olp8Wy0rXVxkXGQ/KD86Oj9cZFxkKT8pPyk/KD89JHxbXF19KSxcc10pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxrZXk6e3BhdHRlcm46LyhefFtbeygsXHNdKVteLDo9W1xde30oKSciXHNdKyg/PVxzKjooPzokfFtcXX0pLFxzXSl8XHMqPSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0cnVsZSJ9LG51bWJlcjp7cGF0dGVybjovKF58W1t7KD06LFxzXSlbKy1dPyg/OjB4W1xkYS1mQS1GXSt8MG9bMC03XSt8MGJbMDFdK3woPzpcZCsoPzpcLlxkKik/fFwuP1xkKykoPzpbZUVdWystXT9cZCspPykoPz0kfFtcXX0pLDo9XHNdKS8sbG9va2JlaGluZDohMH0sYm9vbGVhbjp7cGF0dGVybjovKF58W1t7KD06LFxzXSkoPzpmYWxzZXxub3x0cnVlfHllcykoPz0kfFtcXX0pLDo9XHNdKS9pLGxvb2tiZWhpbmQ6ITB9LG51bGw6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pKD86bnVsbCkoPz0kfFtcXX0pLDo9XHNdKS9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxzdHJpbmc6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pKD86KCcnJ3wiIiIpXHI/XG4oPzooPzpbXlxyXG5dfFxyP1xuKD8hW1x0IF0qXDIpKSpccj9cbik/W1x0IF0qXDJ8J1teJ1xyXG5dKid8Iig/OlxcLnxbXlxcIlxyXG5dKSoiKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGxpdGVyYWw6e3BhdHRlcm46LyhefFtbeyg9Oixcc10pKD86W14jIicsOj1bXF17fSgpXHNgLV18WzotXVteIicsPVtcXXt9KClcc10pKD86W14sOj1cXX0pKFxzXXw6KD8hW1xzLFxdfSldfCQpfFsgXHRdK1teIyw6PVxdfSkoXHNdKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LHB1bmN0dWF0aW9uOi9bLDo9W1xde30oKS1dL319cmV0dXJuIHRwfXZhciBucCxQaztmdW5jdGlvbiBpVygpe2lmKFBrKXJldHVybiBucDtQaz0xLG5wPWUsZS5kaXNwbGF5TmFtZT0ibmV2b2QiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm5ldm9kPXtjb21tZW50Oi9cL1wvLip8KD86XC9cKltcc1xTXSo/KD86XCpcL3wkKSkvLHN0cmluZzp7cGF0dGVybjovKD86Iig/OiIifFteIl0pKiIoPyEiKXwnKD86Jyd8W14nXSkqJyg/IScpKSE/XCo/LyxncmVlZHk6ITAsaW5zaWRlOnsic3RyaW5nLWF0dHJzIjovISR8IVwqJHxcKiQvfX0sbmFtZXNwYWNlOntwYXR0ZXJuOi8oQG5hbWVzcGFjZVxzKylbYS16QS1aMC05XC0uXSsoPz1ccypceykvLGxvb2tiZWhpbmQ6ITB9LHBhdHRlcm46e3BhdHRlcm46LyhAcGF0dGVyblxzKyk/Iz9bYS16QS1aMC05XC0uXSsoPzpccypcKFxzKig/On5ccyopP1thLXpBLVowLTlcLS5dK1xzKig/OixccyooPzp+XHMqKT9bYS16QS1aMC05XC0uXSopKlwpKT8oPz1ccyo9KS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJwYXR0ZXJuLW5hbWUiOntwYXR0ZXJuOi9eIz9bYS16QS1aMC05XC0uXSsvLGFsaWFzOiJjbGFzcy1uYW1lIn0sZmllbGRzOntwYXR0ZXJuOi9cKC4qXCkvLGluc2lkZTp7ImZpZWxkLW5hbWUiOntwYXR0ZXJuOi9bYS16QS1aMC05XC0uXSsvLGFsaWFzOiJ2YXJpYWJsZSJ9LHB1bmN0dWF0aW9uOi9bLCgpXS8sb3BlcmF0b3I6e3BhdHRlcm46L34vLGFsaWFzOiJmaWVsZC1oaWRkZW4tbWFyayJ9fX19fSxzZWFyY2g6e3BhdHRlcm46LyhAc2VhcmNoXHMrfCMpW2EtekEtWjAtOVwtLl0rKD86XC5cKik/KD89XHMqOykvLGFsaWFzOiJmdW5jdGlvbiIsbG9va2JlaGluZDohMH0sa2V5d29yZDovQCg/OmhhdmluZ3xpbnNpZGV8bmFtZXNwYWNlfG91dHNpZGV8cGF0dGVybnxyZXF1aXJlfHNlYXJjaHx3aGVyZSlcYi8sInN0YW5kYXJkLXBhdHRlcm4iOntwYXR0ZXJuOi9cYig/OkFscGhhfEFscGhhTnVtfEFueXxCbGFua3xFbmR8TGluZUJyZWFrfE51bXxOdW1BbHBoYXxQdW5jdHxTcGFjZXxTdGFydHxTeW1ib2x8V29yZHxXb3JkQnJlYWspXGIoPzpcKFthLXpBLVowLTlcLS4sXHMrXSpcKSk/LyxpbnNpZGU6eyJzdGFuZGFyZC1wYXR0ZXJuLW5hbWUiOntwYXR0ZXJuOi9eW2EtekEtWjAtOVwtLl0rLyxhbGlhczoiYnVpbHRpbiJ9LHF1YW50aWZpZXI6e3BhdHRlcm46L1xiXGQrKD86XHMqXCt8XHMqLVxzKlxkKyk/KD8hXHcpLyxhbGlhczoibnVtYmVyIn0sInN0YW5kYXJkLXBhdHRlcm4tYXR0ciI6e3BhdHRlcm46L1thLXpBLVowLTlcLS5dKy8sYWxpYXM6ImJ1aWx0aW4ifSxwdW5jdHVhdGlvbjovWywoKV0vfX0scXVhbnRpZmllcjp7cGF0dGVybjovXGJcZCsoPzpccypcK3xccyotXHMqXGQrKT8oPyFcdykvLGFsaWFzOiJudW1iZXIifSxvcGVyYXRvcjpbe3BhdHRlcm46Lz0vLGFsaWFzOiJwYXR0ZXJuLWRlZiJ9LHtwYXR0ZXJuOi8mLyxhbGlhczoiY29uanVuY3Rpb24ifSx7cGF0dGVybjovfi8sYWxpYXM6ImV4Y2VwdGlvbiJ9LHtwYXR0ZXJuOi9cPy8sYWxpYXM6Im9wdGlvbmFsaXR5In0se3BhdHRlcm46L1tbXF1dLyxhbGlhczoicmVwZXRpdGlvbiJ9LHtwYXR0ZXJuOi9be31dLyxhbGlhczoidmFyaWF0aW9uIn0se3BhdHRlcm46L1srX10vLGFsaWFzOiJzZXF1ZW5jZSJ9LHtwYXR0ZXJuOi9cLnsyLDN9LyxhbGlhczoic3BhbiJ9XSwiZmllbGQtY2FwdHVyZSI6W3twYXR0ZXJuOi8oW2EtekEtWjAtOVwtLl0rXHMqXCgpXHMqW2EtekEtWjAtOVwtLl0rXHMqOlxzKlthLXpBLVowLTlcLS5dKyg/OlxzKixccypbYS16QS1aMC05XC0uXStccyo6XHMqW2EtekEtWjAtOVwtLl0rKSooPz1ccypcKSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiZmllbGQtbmFtZSI6e3BhdHRlcm46L1thLXpBLVowLTlcLS5dKy8sYWxpYXM6InZhcmlhYmxlIn0sY29sb246LzovfX0se3BhdHRlcm46L1thLXpBLVowLTlcLS5dK1xzKjovLGluc2lkZTp7ImZpZWxkLW5hbWUiOntwYXR0ZXJuOi9bYS16QS1aMC05XC0uXSsvLGFsaWFzOiJ2YXJpYWJsZSJ9LGNvbG9uOi86L319XSxwdW5jdHVhdGlvbjovWzo7LCgpXS8sbmFtZTovW2EtekEtWjAtOVwtLl0rL319cmV0dXJuIG5wfXZhciBycCxGaztmdW5jdGlvbiBvVygpe2lmKEZrKXJldHVybiBycDtGaz0xLHJwPWUsZS5kaXNwbGF5TmFtZT0ibmdpbngiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj0vXCQoPzpcd1thLXpcZF0qKD86X1teXHgwMC1ceDFGXHMiJ1xcKCkkXSopP3xce1tefVxzIidcXF0rXH0pL2k7bi5sYW5ndWFnZXMubmdpbng9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFtcc3t9O10pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sZGlyZWN0aXZlOntwYXR0ZXJuOi8oXnxccylcdyg/OlteO3t9IidcXFxzXXxcXC58Iig/OlteIlxcXXxcXC4pKiJ8Jyg/OlteJ1xcXXxcXC4pKid8XHMrKD86Iy4qKD8hLil8KD8hWyNcc10pKSkqPyg/PVxzKls7e10pLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3N0cmluZzp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFxcXCkqKSg/OiIoPzpbXiJcXF18XFwuKSoifCcoPzpbXidcXF18XFwuKSonKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntlc2NhcGU6e3BhdHRlcm46L1xcWyInXFxucnRdLyxhbGlhczoiZW50aXR5In0sdmFyaWFibGU6cn19LGNvbW1lbnQ6e3BhdHRlcm46LyhccykjLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxrZXl3b3JkOntwYXR0ZXJuOi9eXFMrLyxncmVlZHk6ITB9LGJvb2xlYW46e3BhdHRlcm46LyhccykoPzpvZmZ8b24pKD8hXFMpLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46LyhccylcZCtbYS16XSooPyFcUykvaSxsb29rYmVoaW5kOiEwfSx2YXJpYWJsZTpyfX0scHVuY3R1YXRpb246L1t7fTtdL319KSh0KX1yZXR1cm4gcnB9dmFyIGFwLFVrO2Z1bmN0aW9uIHNXKCl7aWYoVWspcmV0dXJuIGFwO1VrPTEsYXA9ZSxlLmRpc3BsYXlOYW1lPSJuaW0iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm5pbT17Y29tbWVudDp7cGF0dGVybjovIy4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKD86XGIoPyFcZCkoPzpcd3xcXHhbODlhLWZBLUZdWzAtOWEtZkEtRl0pKyk/KD86IiIiW1xzXFNdKj8iIiIoPyEiKXwiKD86XFxbXHNcU118IiJ8W14iXFxdKSoiKS8sZ3JlZWR5OiEwfSxjaGFyOntwYXR0ZXJuOi8nKD86XFwoPzpcZCt8eFtcZGEtZkEtRl17MCwyfXwuKXxbXiddKScvLGdyZWVkeTohMH0sZnVuY3Rpb246e3BhdHRlcm46Lyg/Oig/IVxkKSg/Olx3fFxceFs4OWEtZkEtRl1bMC05YS1mQS1GXSkrfGBbXmBcclxuXStgKVwqPyg/OlxbW15cXV0rXF0pPyg/PVxzKlwoKS8sZ3JlZWR5OiEwLGluc2lkZTp7b3BlcmF0b3I6L1wqJC99fSxpZGVudGlmaWVyOntwYXR0ZXJuOi9gW15gXHJcbl0rYC8sZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L2AvfX0sbnVtYmVyOi9cYig/OjBbeFhvT2JCXVtcZGEtZkEtRl9dK3xcZFtcZF9dKig/Oig/IVwuXC4pXC5bXGRfXSopPyg/OltlRV1bKy1dP1xkW1xkX10qKT8pKD86Jz9baXVmXVxkKik/LyxrZXl3b3JkOi9cYig/OmFkZHJ8YXN8YXNtfGF0b21pY3xiaW5kfGJsb2NrfGJyZWFrfGNhc2V8Y2FzdHxjb25jZXB0fGNvbnN0fGNvbnRpbnVlfGNvbnZlcnRlcnxkZWZlcnxkaXNjYXJkfGRpc3RpbmN0fGRvfGVsaWZ8ZWxzZXxlbmR8ZW51bXxleGNlcHR8ZXhwb3J0fGZpbmFsbHl8Zm9yfGZyb218ZnVuY3xnZW5lcmljfGlmfGltcG9ydHxpbmNsdWRlfGludGVyZmFjZXxpdGVyYXRvcnxsZXR8bWFjcm98bWV0aG9kfG1peGlufG5pbHxvYmplY3R8b3V0fHByb2N8cHRyfHJhaXNlfHJlZnxyZXR1cm58c3RhdGljfHRlbXBsYXRlfHRyeXx0dXBsZXx0eXBlfHVzaW5nfHZhcnx3aGVufHdoaWxlfHdpdGh8d2l0aG91dHx5aWVsZClcYi8sb3BlcmF0b3I6e3BhdHRlcm46LyhefFsoe1xbXSg/PVwuXC4pfCg/IVsoe1xbXVwuKS4pKD86KD86Wz0rXC0qXC88PkAkfiYlfCE/XjpcXF18XC5cLnxcLig/IVspfVxdXSkpK3xcYig/OmFuZHxkaXZ8aW58aXN8aXNub3R8bW9kfG5vdHxub3RpbnxvZnxvcnxzaGx8c2hyfHhvcilcYikvbSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWyh7XFtdXC58XC5bKX1cXV18W2AoKXt9XFtcXSw6XS99fXJldHVybiBhcH12YXIgaXAsQms7ZnVuY3Rpb24gbFcoKXtpZihCaylyZXR1cm4gaXA7Qms9MSxpcD1lLGUuZGlzcGxheU5hbWU9Im5peCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMubml4PXtjb21tZW50OntwYXR0ZXJuOi9cL1wqW1xzXFNdKj9cKlwvfCMuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFxbXHNcU10pKiJ8JycoPzooPyEnJylbXHNcU118JycoPzonfFxcfFwkXHspKSonJy8sZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKF58KD86XnwoPyEnJykuKVteXFxdKVwkXHsoPzpbXnt9XXxce1tefV0qXH0pKlx9Lyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfX19LHVybDpbL1xiKD86W2Etel17Myw3fTpcL1wvKVtcd1wtKyV+XC8uOiM9PyZdKy8se3BhdHRlcm46LyhbXlwvXSkoPzpbXHdcLSslfi46Iz0/Jl0qKD8hXC9cLylbXHdcLSslflwvLjojPT8mXSk/KD8hXC9cLylcL1tcd1wtKyV+XC8uOiM9PyZdKi8sbG9va2JlaGluZDohMH1dLGFudGlxdW90YXRpb246e3BhdHRlcm46L1wkKD89XHspLyxhbGlhczoiaW1wb3J0YW50In0sbnVtYmVyOi9cYlxkK1xiLyxrZXl3b3JkOi9cYig/OmFzc2VydHxidWlsdGluc3xlbHNlfGlmfGlufGluaGVyaXR8bGV0fG51bGx8b3J8dGhlbnx3aXRoKVxiLyxmdW5jdGlvbjovXGIoPzphYm9ydHxhZGR8YWxsfGFueXxhdHRyTmFtZXN8YXR0clZhbHVlc3xiYXNlTmFtZU9mfGNvbXBhcmVWZXJzaW9uc3xjb25jYXRMaXN0c3xjdXJyZW50U3lzdGVtfGRlZXBTZXF8ZGVyaXZhdGlvbnxkaXJPZnxkaXZ8ZWxlbSg/OkF0KT98ZmV0Y2goPzpUYXJiYWxsfHVybCl8ZmlsdGVyKD86U291cmNlKT98ZnJvbUpTT058Z2VuTGlzdHxnZXRBdHRyfGdldEVudnxoYXNBdHRyfGhhc2hTdHJpbmd8aGVhZHxpbXBvcnR8aW50ZXJzZWN0QXR0cnN8aXMoPzpBdHRyc3xCb29sfEZ1bmN0aW9ufEludHxMaXN0fE51bGx8U3RyaW5nKXxsZW5ndGh8bGVzc1RoYW58bGlzdFRvQXR0cnN8bWFwfG11bHxwYXJzZURydk5hbWV8cGF0aEV4aXN0c3xyZWFkKD86RGlyfEZpbGUpfHJlbW92ZUF0dHJzfHJlcGxhY2VTdHJpbmdzfHNlcXxzb3J0fHN0cmluZ0xlbmd0aHxzdWIoPzpzdHJpbmcpP3x0YWlsfHRocm93fHRvKD86RmlsZXxKU09OfFBhdGh8U3RyaW5nfFhNTCl8dHJhY2V8dHlwZU9mKVxifFxiZm9sZGwnXEIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6L1s9ITw+XT0/fFwrXCs/fFx8XHx8JiZ8XC9cL3wtPj98Wz9AXS8scHVuY3R1YXRpb246L1t7fSgpW1xdLiw6O10vfSx0Lmxhbmd1YWdlcy5uaXguc3RyaW5nLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZT10Lmxhbmd1YWdlcy5uaXh9cmV0dXJuIGlwfXZhciBvcCwkaztmdW5jdGlvbiB1Vygpe2lmKCRrKXJldHVybiBvcDskaz0xLG9wPWUsZS5kaXNwbGF5TmFtZT0ibnNpcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMubnNpcz17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/XCpcL3xbIztdLiopLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LGtleXdvcmQ6e3BhdHRlcm46LyheW1x0IF0qKSg/OkFib3J0fEFkZCg/OkJyYW5kaW5nSW1hZ2V8U2l6ZSl8QWR2U3BsYXNofEFsbG93KD86Um9vdERpckluc3RhbGx8U2tpcEZpbGVzKXxBdXRvQ2xvc2VXaW5kb3d8QkcoPzpGb250fEdyYWRpZW50fEltYWdlKXxCYW5uZXJ8QnJhbmRpbmdUZXh0fEJyaW5nVG9Gcm9udHxDUkNDaGVja3xDYWxsKD86SW5zdERMTCk/fENhcHRpb258Q2hhbmdlVUl8Q2hlY2tCaXRtYXB8Q2xlYXJFcnJvcnN8Q29tcGxldGVkVGV4dHxDb21wb25lbnRUZXh0fENvcHlGaWxlc3xDcmVhdGUoPzpEaXJlY3Rvcnl8Rm9udHxTaG9ydEN1dCl8RGVsZXRlKD86SU5JU2VjfElOSVN0cnxSZWdLZXl8UmVnVmFsdWUpP3xEZXRhaWwoPzpQcmludHxzQnV0dG9uVGV4dCl8RGlhbGVyfERpcig/OlRleHR8VmFyfFZlcmlmeSl8RW5hYmxlV2luZG93fEVudW0oPzpSZWdLZXl8UmVnVmFsdWUpfEV4Y2h8RXhlYyg/OlNoZWxsKD86V2FpdCk/fFdhaXQpP3xFeHBhbmRFbnZTdHJpbmdzfEZpbGUoPzpCdWZTaXplfENsb3NlfEVycm9yVGV4dHxPcGVufFJlYWR8UmVhZEJ5dGV8UmVhZFVURjE2TEV8UmVhZFdvcmR8U2Vla3xXcml0ZXxXcml0ZUJ5dGV8V3JpdGVVVEYxNkxFfFdyaXRlV29yZCk/fEZpbmQoPzpDbG9zZXxGaXJzdHxOZXh0fFdpbmRvdyl8Rmx1c2hJTkl8R2V0KD86Q3VySW5zdFR5cGV8Q3VycmVudEFkZHJlc3N8RExMVmVyc2lvbig/OkxvY2FsKT98RGxnSXRlbXxFcnJvckxldmVsfEZpbGVUaW1lKD86TG9jYWwpP3xGdWxsUGF0aE5hbWV8RnVuY3Rpb24oPzpBZGRyZXNzfEVuZCk/fEluc3REaXJFcnJvcnxMYWJlbEFkZHJlc3N8VGVtcEZpbGVOYW1lKXxHb3RvfEhpZGVXaW5kb3d8SWNvbnxJZig/OkFib3J0fEVycm9yc3xGaWxlRXhpc3RzfFJlYm9vdEZsYWd8U2lsZW50KXxJbml0UGx1Z2luc0RpcnxJbnN0UHJvZ3Jlc3NGbGFnc3xJbnN0KD86VHlwZSg/OkdldFRleHR8U2V0VGV4dCk/KXxJbnN0YWxsKD86QnV0dG9uVGV4dHxDb2xvcnN8RGlyKD86UmVnS2V5KT8pfEludCg/OjY0fFB0cik/Q21wVT98SW50KD86NjQpP0ZtdHxJbnQoPzpQdHIpP09wfElzV2luZG93fExhbmcoPzpETEx8U3RyaW5nKXxMaWNlbnNlKD86QmtDb2xvcnxEYXRhfEZvcmNlU2VsZWN0aW9ufExhbmdTdHJpbmd8VGV4dCl8TG9hZExhbmd1YWdlRmlsZXxMb2NrV2luZG93fExvZyg/OlNldHxUZXh0KXxNYW5pZmVzdCg/OkRQSUF3YXJlfFN1cHBvcnRlZE9TKXxNYXRofE1lc3NhZ2VCb3h8TWlzY0J1dHRvblRleHR8TlNJU2RsfE5hbWV8Tm9wfE91dEZpbGV8UEUoPzpEbGxDaGFyYWN0ZXJpc3RpY3N8U3Vic3lzVmVyKXxQYWdlKD86Q2FsbGJhY2tzKT98UG9wfFB1c2h8UXVpdHxSTURpcnxSZWFkKD86RW52U3RyfElOSVN0cnxSZWdEV09SRHxSZWdTdHIpfFJlYm9vdHxSZWdETEx8UmVuYW1lfFJlcXVlc3RFeGVjdXRpb25MZXZlbHxSZXNlcnZlRmlsZXxSZXR1cm58U2VhcmNoUGF0aHxTZWN0aW9uKD86RW5kfEdldEZsYWdzfEdldEluc3RUeXBlc3xHZXRTaXplfEdldFRleHR8R3JvdXB8SW58U2V0RmxhZ3N8U2V0SW5zdFR5cGVzfFNldFNpemV8U2V0VGV4dCk/fFNlbmRNZXNzYWdlfFNldCg/OkF1dG9DbG9zZXxCcmFuZGluZ0ltYWdlfENvbXByZXNzfENvbXByZXNzb3IoPzpEaWN0U2l6ZSk/fEN0bENvbG9yc3xDdXJJbnN0VHlwZXxEYXRhYmxvY2tPcHRpbWl6ZXxEYXRlU2F2ZXxEZXRhaWxzKD86UHJpbnR8Vmlldyl8RXJyb3JMZXZlbHxFcnJvcnN8RmlsZUF0dHJpYnV0ZXN8Rm9udHxPdXRQYXRofE92ZXJ3cml0ZXxQbHVnaW5VbmxvYWR8UmVib290RmxhZ3xSZWdWaWV3fFNoZWxsVmFyQ29udGV4dHxTaWxlbnQpfFNob3coPzpJbnN0RGV0YWlsc3xVbmluc3REZXRhaWxzfFdpbmRvdyl8U2lsZW50KD86SW5zdGFsbHxVbkluc3RhbGwpfFNsZWVwfFNwYWNlVGV4dHN8U3BsYXNofFN0YXJ0TWVudXxTdHIoPzpDbXBTP3xDcHl8TGVuKXxTdWJDYXB0aW9ufFN5c3RlbXxVblJlZ0RMTHxVbmljb2RlfFVuaW5zdFBhZ2V8VW5pbnN0YWxsKD86QnV0dG9uVGV4dHxDYXB0aW9ufEljb258U3ViQ2FwdGlvbnxUZXh0KXxVc2VySW5mb3xWSSg/OkFkZFZlcnNpb25LZXl8RmlsZVZlcnNpb258UHJvZHVjdFZlcnNpb24pfFZQYXRjaHxWYXJ8V2luZG93SWNvbnxXcml0ZSg/OklOSVN0cnxSZWcoPzpCaW58RFdPUkR8RXhwYW5kU3RyfE11bHRpU3RyfE5vbmV8U3RyKXxVbmluc3RhbGxlcil8WFBTdHlsZXxucyg/OkRpYWxvZ3N8RXhlYykpXGIvbSxsb29rYmVoaW5kOiEwfSxwcm9wZXJ0eTovXGIoPzpBUkNISVZFfEZJTEVfKD86QVRUUklCVVRFX0FSQ0hJVkV8QVRUUklCVVRFX05PUk1BTHxBVFRSSUJVVEVfT0ZGTElORXxBVFRSSUJVVEVfUkVBRE9OTFl8QVRUUklCVVRFX1NZU1RFTXxBVFRSSUJVVEVfVEVNUE9SQVJZKXxISyg/Oig/OkNSfENVfExNKSg/OjMyfDY0KT98RER8UER8VSl8SEtFWV8oPzpDTEFTU0VTX1JPT1R8Q1VSUkVOVF9DT05GSUd8Q1VSUkVOVF9VU0VSfERZTl9EQVRBfExPQ0FMX01BQ0hJTkV8UEVSRk9STUFOQ0VfREFUQXxVU0VSUyl8SUQoPzpBQk9SVHxDQU5DRUx8SUdOT1JFfE5PfE9LfFJFVFJZfFlFUyl8TUJfKD86QUJPUlRSRVRSWUlHTk9SRXxERUZCVVRUT04xfERFRkJVVFRPTjJ8REVGQlVUVE9OM3xERUZCVVRUT040fElDT05FWENMQU1BVElPTnxJQ09OSU5GT1JNQVRJT058SUNPTlFVRVNUSU9OfElDT05TVE9QfE9LfE9LQ0FOQ0VMfFJFVFJZQ0FOQ0VMfFJJR0hUfFJUTFJFQURJTkd8U0VURk9SRUdST1VORHxUT1BNT1NUfFVTRVJJQ09OfFlFU05PKXxOT1JNQUx8T0ZGTElORXxSRUFET05MWXxTSENUWHxTSEVMTF9DT05URVhUfFNZU1RFTXxURU1QT1JBUll8YWRtaW58YWxsfGF1dG98Ym90aHxjb2xvcmVkfGZhbHNlfGZvcmNlfGhpZGV8aGlnaGVzdHxsYXN0dXNlZHxsZWF2ZXxsaXN0b25seXxub25lfG5vcm1hbHxub3RzZXR8b2ZmfG9ufG9wZW58cHJpbnR8c2hvd3xzaWxlbnR8c2lsZW50bG9nfHNtb290aHx0ZXh0b25seXx0cnVlfHVzZXIpXGIvLGNvbnN0YW50Oi9cJFx7WyFcd1wuOlxeLV0rXH18XCRcKFshXHdcLjpcXi1dK1wpLyx2YXJpYWJsZTovXCRcd1tcd1wuXSovLG51bWJlcjovXGIweFtcZEEtRmEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXS0/XGQrKT8vLG9wZXJhdG9yOi8tLT98XCtcKz98PD0/fD49P3w9PT89P3wmJj98XHxcfD98Wz8qXC9+XiVdLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS8saW1wb3J0YW50OntwYXR0ZXJuOi8oXltcdCBdKikhKD86YWRkaW5jbHVkZWRpcnxhZGRwbHVnaW5kaXJ8YXBwZW5kZmlsZXxjZHxkZWZpbmV8ZGVsZmlsZXxlY2hvfGVsc2V8ZW5kaWZ8ZXJyb3J8ZXhlY3V0ZXxmaW5hbGl6ZXxnZXRkbGx2ZXJzaW9ufGdldHRsYnZlcnNpb258aWZ8aWZkZWZ8aWZtYWNyb2RlZnxpZm1hY3JvbmRlZnxpZm5kZWZ8aW5jbHVkZXxpbnNlcnRtYWNyb3xtYWNyb3xtYWNyb2VuZHxtYWtlbnNpc3xwYWNraGRyfHByYWdtYXxzZWFyY2hwYXJzZXxzZWFyY2hyZXBsYWNlfHN5c3RlbXx0ZW1wZmlsZXx1bmRlZnx2ZXJib3NlfHdhcm5pbmcpXGIvaW0sbG9va2JlaGluZDohMH19fXJldHVybiBvcH12YXIgc3Asems7ZnVuY3Rpb24gY1coKXtpZih6aylyZXR1cm4gc3A7ems9MTt2YXIgZT1FcigpO3NwPXQsdC5kaXNwbGF5TmFtZT0ib2JqZWN0aXZlYyIsdC5hbGlhc2VzPVsib2JqYyJdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxuLmxhbmd1YWdlcy5vYmplY3RpdmVjPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiYyIse3N0cmluZzp7cGF0dGVybjovQD8iKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqIi8sZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmFzbXxhdXRvfGJyZWFrfGNhc2V8Y2hhcnxjb25zdHxjb250aW51ZXxkZWZhdWx0fGRvfGRvdWJsZXxlbHNlfGVudW18ZXh0ZXJufGZsb2F0fGZvcnxnb3RvfGlmfGlufGlubGluZXxpbnR8bG9uZ3xyZWdpc3RlcnxyZXR1cm58c2VsZnxzaG9ydHxzaWduZWR8c2l6ZW9mfHN0YXRpY3xzdHJ1Y3R8c3VwZXJ8c3dpdGNofHR5cGVkZWZ8dHlwZW9mfHVuaW9ufHVuc2lnbmVkfHZvaWR8dm9sYXRpbGV8d2hpbGUpXGJ8KD86QGludGVyZmFjZXxAZW5kfEBpbXBsZW1lbnRhdGlvbnxAcHJvdG9jb2x8QGNsYXNzfEBwdWJsaWN8QHByb3RlY3RlZHxAcHJpdmF0ZXxAcHJvcGVydHl8QHRyeXxAY2F0Y2h8QGZpbmFsbHl8QHRocm93fEBzeW50aGVzaXplfEBkeW5hbWljfEBzZWxlY3RvcilcYi8sb3BlcmF0b3I6Ly1bLT5dP3xcK1wrP3whPT98PDw/PT98Pj4/PT98PT0/fCYmP3xcfFx8P3xbfl4lPypcL0BdL30pLGRlbGV0ZSBuLmxhbmd1YWdlcy5vYmplY3RpdmVjWyJjbGFzcy1uYW1lIl0sbi5sYW5ndWFnZXMub2JqYz1uLmxhbmd1YWdlcy5vYmplY3RpdmVjfXJldHVybiBzcH12YXIgbHAsams7ZnVuY3Rpb24gZFcoKXtpZihqaylyZXR1cm4gbHA7ams9MSxscD1lLGUuZGlzcGxheU5hbWU9Im9jYW1sIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5vY2FtbD17Y29tbWVudDp7cGF0dGVybjovXChcKltcc1xTXSo/XCpcKS8sZ3JlZWR5OiEwfSxjaGFyOntwYXR0ZXJuOi8nKD86W15cXFxyXG4nXXxcXCg/Oi58W294XT9bMC05YS1mXXsxLDN9KSknL2ksZ3JlZWR5OiEwfSxzdHJpbmc6W3twYXR0ZXJuOi8iKD86XFwoPzpbXHNcU118XHJcbil8W15cXFxyXG4iXSkqIi8sZ3JlZWR5OiEwfSx7cGF0dGVybjovXHsoW2Etel9dKilcfFtcc1xTXSo/XHxcMVx9LyxncmVlZHk6ITB9XSxudW1iZXI6Wy9cYig/OjBiWzAxXVswMV9dKnwwb1swLTddWzAtN19dKilcYi9pLC9cYjB4W2EtZjAtOV1bYS1mMC05X10qKD86XC5bYS1mMC05X10qKT8oPzpwWystXT9cZFtcZF9dKik/KD8hXHcpL2ksL1xiXGRbXGRfXSooPzpcLltcZF9dKik/KD86ZVsrLV0/XGRbXGRfXSopPyg/IVx3KS9pXSxkaXJlY3RpdmU6e3BhdHRlcm46L1xCI1x3Ky8sYWxpYXM6InByb3BlcnR5In0sbGFiZWw6e3BhdHRlcm46L1xCflx3Ky8sYWxpYXM6InByb3BlcnR5In0sInR5cGUtdmFyaWFibGUiOntwYXR0ZXJuOi9cQidcdysvLGFsaWFzOiJmdW5jdGlvbiJ9LHZhcmlhbnQ6e3BhdHRlcm46L2BcdysvLGFsaWFzOiJzeW1ib2wifSxrZXl3b3JkOi9cYig/OmFzfGFzc2VydHxiZWdpbnxjbGFzc3xjb25zdHJhaW50fGRvfGRvbmV8ZG93bnRvfGVsc2V8ZW5kfGV4Y2VwdGlvbnxleHRlcm5hbHxmb3J8ZnVufGZ1bmN0aW9ufGZ1bmN0b3J8aWZ8aW58aW5jbHVkZXxpbmhlcml0fGluaXRpYWxpemVyfGxhenl8bGV0fG1hdGNofG1ldGhvZHxtb2R1bGV8bXV0YWJsZXxuZXd8bm9ucmVjfG9iamVjdHxvZnxvcGVufHByaXZhdGV8cmVjfHNpZ3xzdHJ1Y3R8dGhlbnx0b3x0cnl8dHlwZXx2YWx8dmFsdWV8dmlydHVhbHx3aGVufHdoZXJlfHdoaWxlfHdpdGgpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sIm9wZXJhdG9yLWxpa2UtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9cW1s8PnxdfFs+fF1cXXxcezx8Plx9LyxhbGlhczoicHVuY3R1YXRpb24ifSxvcGVyYXRvcjovXC5bLn5dfDpbPT5dfFs9PD5AXnwmK1wtKlwvJCUhP35dWyEkJSYqK1wtLlwvOjw9Pj9AXnx+XSp8XGIoPzphbmR8YXNyfGxhbmR8bG9yfGxzbHxsc3J8bHhvcnxtb2R8b3IpXGIvLHB1bmN0dWF0aW9uOi87O3w6OnxbKCl7fVxbXF0uLDo7I118XGJfXGIvfX1yZXR1cm4gbHB9dmFyIHVwLEdrO2Z1bmN0aW9uIHBXKCl7aWYoR2spcmV0dXJuIHVwO0drPTE7dmFyIGU9RXIoKTt1cD10LHQuZGlzcGxheU5hbWU9Im9wZW5jbCIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtyLmxhbmd1YWdlcy5vcGVuY2w9ci5sYW5ndWFnZXMuZXh0ZW5kKCJjIix7a2V5d29yZDovXGIoPzooPzpfXyk/KD86Y29uc3RhbnR8Z2xvYmFsfGtlcm5lbHxsb2NhbHxwcml2YXRlfHJlYWRfb25seXxyZWFkX3dyaXRlfHdyaXRlX29ubHkpfF9fYXR0cmlidXRlX198YXV0b3woPzpib29sfHU/KD86Y2hhcnxpbnR8bG9uZ3xzaG9ydCl8aGFsZnxxdWFkKSg/OjJ8M3w0fDh8MTYpP3xicmVha3xjYXNlfGNvbXBsZXh8Y29uc3R8Y29udGludWV8KD86ZG91YmxlfGZsb2F0KSg/OjE2KD86eCg/OjF8Mnw0fDh8MTYpKT98MXgoPzoxfDJ8NHw4fDE2KXwyKD86eCg/OjF8Mnw0fDh8MTYpKT98M3w0KD86eCg/OjF8Mnw0fDh8MTYpKT98OCg/OngoPzoxfDJ8NHw4fDE2KSk/KT98ZGVmYXVsdHxkb3xlbHNlfGVudW18ZXh0ZXJufGZvcnxnb3RvfGlmfGltYWdpbmFyeXxpbmxpbmV8cGFja2VkfHBpcGV8cmVnaXN0ZXJ8cmVzdHJpY3R8cmV0dXJufHNpZ25lZHxzaXplb2Z8c3RhdGljfHN0cnVjdHxzd2l0Y2h8dHlwZWRlZnx1bmlmb3JtfHVuaW9ufHVuc2lnbmVkfHZvaWR8dm9sYXRpbGV8d2hpbGUpXGIvLG51bWJlcjovKD86XGIweCg/OltcZGEtZl0rKD86XC5bXGRhLWZdKik/fFwuW1xkYS1mXSspKD86cFsrLV0/XGQrKT98KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8pW2Z1aGxdezAsNH0vaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLCJjb25zdGFudC1vcGVuY2wta2VybmVsIjp7cGF0dGVybjovXGIoPzpDSEFSXyg/OkJJVHxNQVh8TUlOKXxDTEtfKD86QUREUkVTU18oPzpDTEFNUCg/Ol9UT19FREdFKT98Tk9ORXxSRVBFQVQpfEZJTFRFUl8oPzpMSU5FQVJ8TkVBUkVTVCl8KD86R0xPQkFMfExPQ0FMKV9NRU1fRkVOQ0V8Tk9STUFMSVpFRF9DT09SRFNfKD86RkFMU0V8VFJVRSkpfENMXyg/OkJHUkF8KD86SEFMRl8pP0ZMT0FUfElOVEVOU0lUWXxMVU1JTkFOQ0V8QT9SP0c/Qj9bQXhdP3woPzooPzpVTik/U0lHTkVEfFtVU11OT1JNKV8oPzpJTlQoPzo4fDE2fDMyKSl8VU5PUk1fKD86SU5UXzEwMTAxMHxTSE9SVF8oPzo1NTV8NTY1KSkpfCg/OkRCTHxGTFR8SEFMRilfKD86RElHfEVQU0lMT058KD86TUFYfE1JTikoPzooPzpfMTApP19FWFApP3xNQU5UX0RJRyl8RkxUX1JBRElYfEhVR0VfVkFMRj98KD86SU5UfExPTkd8U0NIQVJ8U0hSVClfKD86TUFYfE1JTil8SU5GSU5JVFl8TUFYRkxPQVR8TV8oPzpbMTJdX1BJfDJfU1FSVFBJfEV8TE4oPzoyfDEwKXxMT0coPzoyfDEwKUU/fFBJKD86X1syNF0pP3xTUVJUKD86MV8yfDIpKSg/Ol9GfF9IKT98TkFOfCg/OlVDSEFSfFVJTlR8VUxPTkd8VVNIUlQpX01BWClcYi8sYWxpYXM6ImNvbnN0YW50In19KSxyLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIm9wZW5jbCIsImNsYXNzLW5hbWUiLHsiYnVpbHRpbi10eXBlIjp7cGF0dGVybjovXGIoPzpfY2xfKD86Y29tbWFuZF9xdWV1ZXxjb250ZXh0fGRldmljZV9pZHxldmVudHxrZXJuZWx8bWVtfHBsYXRmb3JtX2lkfHByb2dyYW18c2FtcGxlcil8Y2xfKD86aW1hZ2VfZm9ybWF0fG1lbV9mZW5jZV9mbGFncyl8Y2xrX2V2ZW50X3R8ZXZlbnRfdHxpbWFnZSg/OjFkXyg/OmFycmF5X3xidWZmZXJfKT90fDJkXyg/OmFycmF5Xyg/OmRlcHRoX3xtc2FhX2RlcHRoX3xtc2FhXyk/fGRlcHRoX3xtc2FhX2RlcHRoX3xtc2FhXyk/dHwzZF90KXxpbnRwdHJfdHxuZHJhbmdlX3R8cHRyZGlmZl90fHF1ZXVlX3R8cmVzZXJ2ZV9pZF90fHNhbXBsZXJfdHxzaXplX3R8dWludHB0cl90KVxiLyxhbGlhczoia2V5d29yZCJ9fSk7dmFyIGE9eyJ0eXBlLW9wZW5jbC1ob3N0Ijp7cGF0dGVybjovXGIoPzpjbF8oPzpHTGVudW18R0xpbnR8R0x1aW58YWRkcmVzc2luZ19tb2RlfGJpdGZpZWxkfGJvb2x8YnVmZmVyX2NyZWF0ZV90eXBlfGJ1aWxkX3N0YXR1c3xjaGFubmVsXyg/Om9yZGVyfHR5cGUpfCg/OnU/KD86Y2hhcnxpbnR8bG9uZ3xzaG9ydCl8ZG91YmxlfGZsb2F0KSg/OjJ8M3w0fDh8MTYpP3xjb21tYW5kXyg/OnF1ZXVlKD86X2luZm98X3Byb3BlcnRpZXMpP3x0eXBlKXxjb250ZXh0KD86X2luZm98X3Byb3BlcnRpZXMpP3xkZXZpY2VfKD86ZXhlY19jYXBhYmlsaXRpZXN8ZnBfY29uZmlnfGlkfGluZm98bG9jYWxfbWVtX3R5cGV8bWVtX2NhY2hlX3R5cGV8dHlwZSl8KD86ZXZlbnR8c2FtcGxlcikoPzpfaW5mbyk/fGZpbHRlcl9tb2RlfGhhbGZ8aW1hZ2VfaW5mb3xrZXJuZWwoPzpfaW5mb3xfd29ya19ncm91cF9pbmZvKT98bWFwX2ZsYWdzfG1lbSg/Ol9mbGFnc3xfaW5mb3xfb2JqZWN0X3R5cGUpP3xwbGF0Zm9ybV8oPzppZHxpbmZvKXxwcm9maWxpbmdfaW5mb3xwcm9ncmFtKD86X2J1aWxkX2luZm98X2luZm8pPykpXGIvLGFsaWFzOiJrZXl3b3JkIn0sImJvb2xlYW4tb3BlbmNsLWhvc3QiOntwYXR0ZXJuOi9cYkNMXyg/OkZBTFNFfFRSVUUpXGIvLGFsaWFzOiJib29sZWFuIn0sImNvbnN0YW50LW9wZW5jbC1ob3N0Ijp7cGF0dGVybjovXGJDTF8oPzpBfEFCR1J8QUREUkVTU18oPzpDTEFNUCg/Ol9UT19FREdFKT98TUlSUk9SRURfUkVQRUFUfE5PTkV8UkVQRUFUKXxBUkdCfEJHUkF8QkxPQ0tJTkd8QlVGRkVSX0NSRUFURV9UWVBFX1JFR0lPTnxCVUlMRF8oPzpFUlJPUnxJTl9QUk9HUkVTU3xOT05FfFBST0dSQU1fRkFJTFVSRXxTVUNDRVNTKXxDT01NQU5EXyg/OkFDUVVJUkVfR0xfT0JKRUNUU3xCQVJSSUVSfENPUFlfKD86QlVGRkVSKD86X1JFQ1R8X1RPX0lNQUdFKT98SU1BR0UoPzpfVE9fQlVGRkVSKT8pfEZJTExfKD86QlVGRkVSfElNQUdFKXxNQVAoPzpfQlVGRkVSfF9JTUFHRSl8TUFSS0VSfE1JR1JBVEUoPzpfU1ZNKT9fTUVNX09CSkVDVFN8TkFUSVZFX0tFUk5FTHxORFJBTkdFX0tFUk5FTHxSRUFEXyg/OkJVRkZFUig/Ol9SRUNUKT98SU1BR0UpfFJFTEVBU0VfR0xfT0JKRUNUU3xTVk1fKD86RlJFRXxNQVB8TUVNQ1BZfE1FTUZJTEx8VU5NQVApfFRBU0t8VU5NQVBfTUVNX09CSkVDVHxVU0VSfFdSSVRFXyg/OkJVRkZFUig/Ol9SRUNUKT98SU1BR0UpKXxDT01QSUxFUl9OT1RfQVZBSUxBQkxFfENPTVBJTEVfUFJPR1JBTV9GQUlMVVJFfENPTVBMRVRFfENPTlRFWFRfKD86REVWSUNFU3xJTlRFUk9QX1VTRVJfU1lOQ3xOVU1fREVWSUNFU3xQTEFURk9STXxQUk9QRVJUSUVTfFJFRkVSRU5DRV9DT1VOVCl8REVQVEgoPzpfU1RFTkNJTCk/fERFVklDRV8oPzpBRERSRVNTX0JJVFN8QUZGSU5JVFlfRE9NQUlOXyg/OkxbMS00XV9DQUNIRXxORVhUX1BBUlRJVElPTkFCTEV8TlVNQSl8QVZBSUxBQkxFfEJVSUxUX0lOX0tFUk5FTFN8Q09NUElMRVJfQVZBSUxBQkxFfERPVUJMRV9GUF9DT05GSUd8RU5ESUFOX0xJVFRMRXxFUlJPUl9DT1JSRUNUSU9OX1NVUFBPUlR8RVhFQ1VUSU9OX0NBUEFCSUxJVElFU3xFWFRFTlNJT05TfEdMT0JBTF8oPzpNRU1fKD86Q0FDSEVMSU5FX1NJWkV8Q0FDSEVfU0laRXxDQUNIRV9UWVBFfFNJWkUpfFZBUklBQkxFX1BSRUZFUlJFRF9UT1RBTF9TSVpFKXxIT1NUX1VOSUZJRURfTUVNT1JZfElMX1ZFUlNJT058SU1BR0UoPzoyRF9NQVhfKD86SEVJR0hUfFdJRFRIKXwzRF9NQVhfKD86REVQVEh8SEVJR0hUfFdJRFRIKXxfQkFTRV9BRERSRVNTX0FMSUdOTUVOVHxfTUFYX0FSUkFZX1NJWkV8X01BWF9CVUZGRVJfU0laRXxfUElUQ0hfQUxJR05NRU5UfF9TVVBQT1JUKXxMSU5LRVJfQVZBSUxBQkxFfExPQ0FMX01FTV9TSVpFfExPQ0FMX01FTV9UWVBFfE1BWF8oPzpDTE9DS19GUkVRVUVOQ1l8Q09NUFVURV9VTklUU3xDT05TVEFOVF9BUkdTfENPTlNUQU5UX0JVRkZFUl9TSVpFfEdMT0JBTF9WQVJJQUJMRV9TSVpFfE1FTV9BTExPQ19TSVpFfE5VTV9TVUJfR1JPVVBTfE9OX0RFVklDRV8oPzpFVkVOVFN8UVVFVUVTKXxQQVJBTUVURVJfU0laRXxQSVBFX0FSR1N8UkVBRF9JTUFHRV9BUkdTfFJFQURfV1JJVEVfSU1BR0VfQVJHU3xTQU1QTEVSU3xXT1JLX0dST1VQX1NJWkV8V09SS19JVEVNX0RJTUVOU0lPTlN8V09SS19JVEVNX1NJWkVTfFdSSVRFX0lNQUdFX0FSR1MpfE1FTV9CQVNFX0FERFJfQUxJR058TUlOX0RBVEFfVFlQRV9BTElHTl9TSVpFfE5BTUV8TkFUSVZFX1ZFQ1RPUl9XSURUSF8oPzpDSEFSfERPVUJMRXxGTE9BVHxIQUxGfElOVHxMT05HfFNIT1JUKXxOT1RfKD86QVZBSUxBQkxFfEZPVU5EKXxPUEVOQ0xfQ19WRVJTSU9OfFBBUkVOVF9ERVZJQ0V8UEFSVElUSU9OXyg/OkFGRklOSVRZX0RPTUFJTnxCWV9BRkZJTklUWV9ET01BSU58QllfQ09VTlRTfEJZX0NPVU5UU19MSVNUX0VORHxFUVVBTExZfEZBSUxFRHxNQVhfU1VCX0RFVklDRVN8UFJPUEVSVElFU3xUWVBFKXxQSVBFX01BWF8oPzpBQ1RJVkVfUkVTRVJWQVRJT05TfFBBQ0tFVF9TSVpFKXxQTEFURk9STXxQUkVGRVJSRURfKD86R0xPQkFMX0FUT01JQ19BTElHTk1FTlR8SU5URVJPUF9VU0VSX1NZTkN8TE9DQUxfQVRPTUlDX0FMSUdOTUVOVHxQTEFURk9STV9BVE9NSUNfQUxJR05NRU5UfFZFQ1RPUl9XSURUSF8oPzpDSEFSfERPVUJMRXxGTE9BVHxIQUxGfElOVHxMT05HfFNIT1JUKSl8UFJJTlRGX0JVRkZFUl9TSVpFfFBST0ZJTEV8UFJPRklMSU5HX1RJTUVSX1JFU09MVVRJT058UVVFVUVfKD86T05fKD86REVWSUNFXyg/Ok1BWF9TSVpFfFBSRUZFUlJFRF9TSVpFfFBST1BFUlRJRVMpfEhPU1RfUFJPUEVSVElFUyl8UFJPUEVSVElFUyl8UkVGRVJFTkNFX0NPVU5UfFNJTkdMRV9GUF9DT05GSUd8U1VCX0dST1VQX0lOREVQRU5ERU5UX0ZPUldBUkRfUFJPR1JFU1N8U1ZNXyg/OkFUT01JQ1N8Q0FQQUJJTElUSUVTfENPQVJTRV9HUkFJTl9CVUZGRVJ8RklORV9HUkFJTl9CVUZGRVJ8RklORV9HUkFJTl9TWVNURU0pfFRZUEUoPzpfQUNDRUxFUkFUT1J8X0FMTHxfQ1BVfF9DVVNUT018X0RFRkFVTFR8X0dQVSk/fFZFTkRPUig/Ol9JRCk/fFZFUlNJT04pfERSSVZFUl9WRVJTSU9OfEVWRU5UXyg/OkNPTU1BTkRfKD86RVhFQ1VUSU9OX1NUQVRVU3xRVUVVRXxUWVBFKXxDT05URVhUfFJFRkVSRU5DRV9DT1VOVCl8RVhFQ18oPzpLRVJORUx8TkFUSVZFX0tFUk5FTHxTVEFUVVNfRVJST1JfRk9SX0VWRU5UU19JTl9XQUlUX0xJU1QpfEZJTFRFUl8oPzpMSU5FQVJ8TkVBUkVTVCl8RkxPQVR8RlBfKD86Q09SUkVDVExZX1JPVU5ERURfRElWSURFX1NRUlR8REVOT1JNfEZNQXxJTkZfTkFOfFJPVU5EX1RPX0lORnxST1VORF9UT19ORUFSRVNUfFJPVU5EX1RPX1pFUk98U09GVF9GTE9BVCl8R0xPQkFMfEhBTEZfRkxPQVR8SU1BR0VfKD86QVJSQVlfU0laRXxCVUZGRVJ8REVQVEh8RUxFTUVOVF9TSVpFfEZPUk1BVHxGT1JNQVRfTUlTTUFUQ0h8Rk9STUFUX05PVF9TVVBQT1JURUR8SEVJR0hUfE5VTV9NSVBfTEVWRUxTfE5VTV9TQU1QTEVTfFJPV19QSVRDSHxTTElDRV9QSVRDSHxXSURUSCl8SU5URU5TSVRZfElOVkFMSURfKD86QVJHX0lOREVYfEFSR19TSVpFfEFSR19WQUxVRXxCSU5BUll8QlVGRkVSX1NJWkV8QlVJTERfT1BUSU9OU3xDT01NQU5EX1FVRVVFfENPTVBJTEVSX09QVElPTlN8Q09OVEVYVHxERVZJQ0V8REVWSUNFX1BBUlRJVElPTl9DT1VOVHxERVZJQ0VfUVVFVUV8REVWSUNFX1RZUEV8RVZFTlR8RVZFTlRfV0FJVF9MSVNUfEdMT0JBTF9PRkZTRVR8R0xPQkFMX1dPUktfU0laRXxHTF9PQkpFQ1R8SE9TVF9QVFJ8SU1BR0VfREVTQ1JJUFRPUnxJTUFHRV9GT1JNQVRfREVTQ1JJUFRPUnxJTUFHRV9TSVpFfEtFUk5FTHxLRVJORUxfQVJHU3xLRVJORUxfREVGSU5JVElPTnxLRVJORUxfTkFNRXxMSU5LRVJfT1BUSU9OU3xNRU1fT0JKRUNUfE1JUF9MRVZFTHxPUEVSQVRJT058UElQRV9TSVpFfFBMQVRGT1JNfFBST0dSQU18UFJPR1JBTV9FWEVDVVRBQkxFfFBST1BFUlRZfFFVRVVFX1BST1BFUlRJRVN8U0FNUExFUnxWQUxVRXxXT1JLX0RJTUVOU0lPTnxXT1JLX0dST1VQX1NJWkV8V09SS19JVEVNX1NJWkUpfEtFUk5FTF8oPzpBUkdfKD86QUNDRVNTXyg/Ok5PTkV8UVVBTElGSUVSfFJFQURfT05MWXxSRUFEX1dSSVRFfFdSSVRFX09OTFkpfEFERFJFU1NfKD86Q09OU1RBTlR8R0xPQkFMfExPQ0FMfFBSSVZBVEV8UVVBTElGSUVSKXxJTkZPX05PVF9BVkFJTEFCTEV8TkFNRXxUWVBFXyg/OkNPTlNUfE5BTUV8Tk9ORXxQSVBFfFFVQUxJRklFUnxSRVNUUklDVHxWT0xBVElMRSkpfEFUVFJJQlVURVN8Q09NUElMRV9OVU1fU1VCX0dST1VQU3xDT01QSUxFX1dPUktfR1JPVVBfU0laRXxDT05URVhUfEVYRUNfSU5GT19TVk1fRklORV9HUkFJTl9TWVNURU18RVhFQ19JTkZPX1NWTV9QVFJTfEZVTkNUSU9OX05BTUV8R0xPQkFMX1dPUktfU0laRXxMT0NBTF9NRU1fU0laRXxMT0NBTF9TSVpFX0ZPUl9TVUJfR1JPVVBfQ09VTlR8TUFYX05VTV9TVUJfR1JPVVBTfE1BWF9TVUJfR1JPVVBfU0laRV9GT1JfTkRSQU5HRXxOVU1fQVJHU3xQUkVGRVJSRURfV09SS19HUk9VUF9TSVpFX01VTFRJUExFfFBSSVZBVEVfTUVNX1NJWkV8UFJPR1JBTXxSRUZFUkVOQ0VfQ09VTlR8U1VCX0dST1VQX0NPVU5UX0ZPUl9ORFJBTkdFfFdPUktfR1JPVVBfU0laRSl8TElOS0VSX05PVF9BVkFJTEFCTEV8TElOS19QUk9HUkFNX0ZBSUxVUkV8TE9DQUx8TFVNSU5BTkNFfE1BUF8oPzpGQUlMVVJFfFJFQUR8V1JJVEV8V1JJVEVfSU5WQUxJREFURV9SRUdJT04pfE1FTV8oPzpBTExPQ19IT1NUX1BUUnxBU1NPQ0lBVEVEX01FTU9CSkVDVHxDT05URVhUfENPUFlfSE9TVF9QVFJ8Q09QWV9PVkVSTEFQfEZMQUdTfEhPU1RfTk9fQUNDRVNTfEhPU1RfUFRSfEhPU1RfUkVBRF9PTkxZfEhPU1RfV1JJVEVfT05MWXxLRVJORUxfUkVBRF9BTkRfV1JJVEV8TUFQX0NPVU5UfE9CSkVDVF8oPzpBTExPQ0FUSU9OX0ZBSUxVUkV8QlVGRkVSfElNQUdFMUR8SU1BR0UxRF9BUlJBWXxJTUFHRTFEX0JVRkZFUnxJTUFHRTJEfElNQUdFMkRfQVJSQVl8SU1BR0UzRHxQSVBFKXxPRkZTRVR8UkVBRF9PTkxZfFJFQURfV1JJVEV8UkVGRVJFTkNFX0NPVU5UfFNJWkV8U1ZNX0FUT01JQ1N8U1ZNX0ZJTkVfR1JBSU5fQlVGRkVSfFRZUEV8VVNFU19TVk1fUE9JTlRFUnxVU0VfSE9TVF9QVFJ8V1JJVEVfT05MWSl8TUlHUkFURV9NRU1fT0JKRUNUXyg/OkNPTlRFTlRfVU5ERUZJTkVEfEhPU1QpfE1JU0FMSUdORURfU1VCX0JVRkZFUl9PRkZTRVR8Tk9ORXxOT05fQkxPQ0tJTkd8T1VUX09GXyg/OkhPU1RfTUVNT1JZfFJFU09VUkNFUyl8UElQRV8oPzpNQVhfUEFDS0VUU3xQQUNLRVRfU0laRSl8UExBVEZPUk1fKD86RVhURU5TSU9OU3xIT1NUX1RJTUVSX1JFU09MVVRJT058TkFNRXxQUk9GSUxFfFZFTkRPUnxWRVJTSU9OKXxQUk9GSUxJTkdfKD86Q09NTUFORF8oPzpDT01QTEVURXxFTkR8UVVFVUVEfFNUQVJUfFNVQk1JVCl8SU5GT19OT1RfQVZBSUxBQkxFKXxQUk9HUkFNXyg/OkJJTkFSSUVTfEJJTkFSWV9TSVpFU3xCSU5BUllfVFlQRSg/Ol9DT01QSUxFRF9PQkpFQ1R8X0VYRUNVVEFCTEV8X0xJQlJBUll8X05PTkUpP3xCVUlMRF8oPzpHTE9CQUxfVkFSSUFCTEVfVE9UQUxfU0laRXxMT0d8T1BUSU9OU3xTVEFUVVMpfENPTlRFWFR8REVWSUNFU3xJTHxLRVJORUxfTkFNRVN8TlVNX0RFVklDRVN8TlVNX0tFUk5FTFN8UkVGRVJFTkNFX0NPVU5UfFNPVVJDRSl8UVVFVUVEfFFVRVVFXyg/OkNPTlRFWFR8REVWSUNFfERFVklDRV9ERUZBVUxUfE9OX0RFVklDRXxPTl9ERVZJQ0VfREVGQVVMVHxPVVRfT0ZfT1JERVJfRVhFQ19NT0RFX0VOQUJMRXxQUk9GSUxJTkdfRU5BQkxFfFBST1BFUlRJRVN8UkVGRVJFTkNFX0NPVU5UfFNJWkUpfFJ8UkF8UkVBRF8oPzpPTkxZfFdSSVRFKV9DQUNIRXxSR3xSR0J8UkdCQXxSR0J4fFJHeHxSVU5OSU5HfFJ4fFNBTVBMRVJfKD86QUREUkVTU0lOR19NT0RFfENPTlRFWFR8RklMVEVSX01PREV8TE9EX01BWHxMT0RfTUlOfE1JUF9GSUxURVJfTU9ERXxOT1JNQUxJWkVEX0NPT1JEU3xSRUZFUkVOQ0VfQ09VTlQpfCg/OlVOKT9TSUdORURfSU5UKD86OHwxNnwzMil8U05PUk1fSU5UKD86OHwxNil8U1VCTUlUVEVEfFNVQ0NFU1N8VU5PUk1fSU5UKD86OHwxNnwyNHxfMTAxMDEwfF8xMDEwMTBfMil8VU5PUk1fU0hPUlRfKD86NTU1fDU2NSl8VkVSU0lPTl8oPzoxXzB8MV8xfDFfMnwyXzB8Ml8xKXxzQkdSQXxzUkdCfHNSR0JBfHNSR0J4KVxiLyxhbGlhczoiY29uc3RhbnQifSwiZnVuY3Rpb24tb3BlbmNsLWhvc3QiOntwYXR0ZXJuOi9cYmNsKD86QnVpbGRQcm9ncmFtfENsb25lS2VybmVsfENvbXBpbGVQcm9ncmFtfENyZWF0ZSg/OkJ1ZmZlcnxDb21tYW5kUXVldWUoPzpXaXRoUHJvcGVydGllcyk/fENvbnRleHR8Q29udGV4dEZyb21UeXBlfEltYWdlfEltYWdlMkR8SW1hZ2UzRHxLZXJuZWx8S2VybmVsc0luUHJvZ3JhbXxQaXBlfFByb2dyYW1XaXRoKD86QmluYXJ5fEJ1aWx0SW5LZXJuZWxzfElMfFNvdXJjZSl8U2FtcGxlcnxTYW1wbGVyV2l0aFByb3BlcnRpZXN8U3ViQnVmZmVyfFN1YkRldmljZXN8VXNlckV2ZW50KXxFbnF1ZXVlKD86KD86QmFycmllcnxNYXJrZXIpKD86V2l0aFdhaXRMaXN0KT98Q29weSg/OkJ1ZmZlcig/OlJlY3R8VG9JbWFnZSk/fEltYWdlKD86VG9CdWZmZXIpPyl8KD86RmlsbHxNYXApKD86QnVmZmVyfEltYWdlKXxNaWdyYXRlTWVtT2JqZWN0c3xORFJhbmdlS2VybmVsfE5hdGl2ZUtlcm5lbHwoPzpSZWFkfFdyaXRlKSg/OkJ1ZmZlcig/OlJlY3QpP3xJbWFnZSl8U1ZNKD86RnJlZXxNYXB8TWVtRmlsbHxNZW1jcHl8TWlncmF0ZU1lbXxVbm1hcCl8VGFza3xVbm1hcE1lbU9iamVjdHxXYWl0Rm9yRXZlbnRzKXxGaW5pc2h8Rmx1c2h8R2V0KD86Q29tbWFuZFF1ZXVlSW5mb3xDb250ZXh0SW5mb3xEZXZpY2UoPzpBbmRIb3N0VGltZXJ8SURzfEluZm8pfEV2ZW50KD86UHJvZmlsaW5nKT9JbmZvfEV4dGVuc2lvbkZ1bmN0aW9uQWRkcmVzcyg/OkZvclBsYXRmb3JtKT98SG9zdFRpbWVyfEltYWdlSW5mb3xLZXJuZWwoPzpBcmdJbmZvfEluZm98U3ViR3JvdXBJbmZvfFdvcmtHcm91cEluZm8pfE1lbU9iamVjdEluZm98UGlwZUluZm98UGxhdGZvcm0oPzpJRHN8SW5mbyl8UHJvZ3JhbSg/OkJ1aWxkKT9JbmZvfFNhbXBsZXJJbmZvfFN1cHBvcnRlZEltYWdlRm9ybWF0cyl8TGlua1Byb2dyYW18KD86UmVsZWFzZXxSZXRhaW4pKD86Q29tbWFuZFF1ZXVlfENvbnRleHR8RGV2aWNlfEV2ZW50fEtlcm5lbHxNZW1PYmplY3R8UHJvZ3JhbXxTYW1wbGVyKXxTVk0oPzpBbGxvY3xGcmVlKXxTZXQoPzpDb21tYW5kUXVldWVQcm9wZXJ0eXxEZWZhdWx0RGV2aWNlQ29tbWFuZFF1ZXVlfEV2ZW50Q2FsbGJhY2t8S2VybmVsfEtlcm5lbCg/OkFyZyg/OlNWTVBvaW50ZXIpP3xFeGVjSW5mbyl8TWVtT2JqZWN0RGVzdHJ1Y3RvckNhbGxiYWNrfFVzZXJFdmVudFN0YXR1cyl8VW5sb2FkKD86UGxhdGZvcm0pP0NvbXBpbGVyfFdhaXRGb3JFdmVudHMpXGIvLGFsaWFzOiJmdW5jdGlvbiJ9fTtyLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImMiLCJrZXl3b3JkIixhKSxyLmxhbmd1YWdlcy5jcHAmJihhWyJ0eXBlLW9wZW5jbC1ob3N0LWNwcCJdPXtwYXR0ZXJuOi9cYig/OkJ1ZmZlcnxCdWZmZXJHTHxCdWZmZXJSZW5kZXJHTHxDb21tYW5kUXVldWV8Q29udGV4dHxEZXZpY2V8RGV2aWNlQ29tbWFuZFF1ZXVlfEVucXVldWVBcmdzfEV2ZW50fEltYWdlfEltYWdlMUR8SW1hZ2UxREFycmF5fEltYWdlMURCdWZmZXJ8SW1hZ2UyRHxJbWFnZTJEQXJyYXl8SW1hZ2UyREdMfEltYWdlM0R8SW1hZ2UzREdMfEltYWdlRm9ybWF0fEltYWdlR0x8S2VybmVsfEtlcm5lbEZ1bmN0b3J8TG9jYWxTcGFjZUFyZ3xNZW1vcnl8TkRSYW5nZXxQaXBlfFBsYXRmb3JtfFByb2dyYW18U1ZNQWxsb2NhdG9yfFNWTVRyYWl0QXRvbWljfFNWTVRyYWl0Q29hcnNlfFNWTVRyYWl0RmluZXxTVk1UcmFpdFJlYWRPbmx5fFNWTVRyYWl0UmVhZFdyaXRlfFNWTVRyYWl0V3JpdGVPbmx5fFNhbXBsZXJ8VXNlckV2ZW50KVxiLyxhbGlhczoia2V5d29yZCJ9LHIubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiY3BwIiwia2V5d29yZCIsYSkpfShuKX1yZXR1cm4gdXB9dmFyIGNwLHFrO2Z1bmN0aW9uIGZXKCl7aWYocWspcmV0dXJuIGNwO3FrPTEsY3A9ZSxlLmRpc3BsYXlOYW1lPSJvcGVucWFzbSIsZS5hbGlhc2VzPVsicWFzbSJdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMub3BlbnFhc209e2NvbW1lbnQ6L1wvXCpbXHNcU10qP1wqXC98XC9cLy4qLyxzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXHRdKiJ8J1teJ1xyXG5cdF0qJy8sZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OkNYfE9QRU5RQVNNfFV8YmFycmllcnxib3hhc3xib3h0b3xicmVha3xjb25zdHxjb250aW51ZXxjdHJsfGRlZnxkZWZjYWx8ZGVmY2FsZ3JhbW1hcnxkZWxheXxlbHNlfGVuZHxmb3J8Z2F0ZXxncGhhc2V8aWZ8aW58aW5jbHVkZXxpbnZ8a2VybmVsfGxlbmd0aG9mfGxldHxtZWFzdXJlfHBvd3xyZXNldHxyZXR1cm58cm90YXJ5fHN0cmV0Y2hpbmZ8d2hpbGUpXGJ8I3ByYWdtYVxiLywiY2xhc3MtbmFtZSI6L1xiKD86YW5nbGV8Yml0fGJvb2x8Y3JlZ3xmaXhlZHxmbG9hdHxpbnR8bGVuZ3RofHFyZWd8cXViaXR8c3RyZXRjaHx1aW50KVxiLyxmdW5jdGlvbjovXGIoPzpjb3N8ZXhwfGxufHBvcGNvdW50fHJvdGx8cm90cnxzaW58c3FydHx0YW4pXGIoPz1ccypcKCkvLGNvbnN0YW50Oi9cYig/OmV1bGVyfHBpfHRhdSlcYnzPgHzwnZyPfOKEhy8sbnVtYmVyOntwYXR0ZXJuOi8oXnxbXi5cdyRdKSg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86ZVsrLV0/XGQrKT8oPzpkdHxuc3x1c3zCtXN8bXN8cyk/L2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Ly0+fD4+PT98PDw9P3wmJnxcfFx8fFwrXCt8LS18WyE9PD4mfH5eK1wtKi8lXT0/fEAvLHB1bmN0dWF0aW9uOi9bKCl7fVxbXF07LDouXS99LHQubGFuZ3VhZ2VzLnFhc209dC5sYW5ndWFnZXMub3BlbnFhc219cmV0dXJuIGNwfXZhciBkcCxWaztmdW5jdGlvbiBtVygpe2lmKFZrKXJldHVybiBkcDtWaz0xLGRwPWUsZS5kaXNwbGF5TmFtZT0ib3oiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLm96PXtjb21tZW50OntwYXR0ZXJuOi9cL1wqW1xzXFNdKj9cKlwvfCUuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFxbXHNcU10pKiIvLGdyZWVkeTohMH0sYXRvbTp7cGF0dGVybjovJyg/OlteJ1xcXXxcXFtcc1xTXSkqJy8sZ3JlZWR5OiEwLGFsaWFzOiJidWlsdGluIn0sa2V5d29yZDovXCR8XFtcXXxcYig/Ol98YXR8YXR0cnxjYXNlfGNhdGNofGNob2ljZXxjbGFzc3xjb25kfGRlY2xhcmV8ZGVmaW5lfGRpc3xlbHNlKD86Y2FzZXxpZik/fGVuZHxleHBvcnR8ZmFpbHxmYWxzZXxmZWF0fGZpbmFsbHl8ZnJvbXxmdW58ZnVuY3RvcnxpZnxpbXBvcnR8aW58bG9jYWx8bG9ja3xtZXRofG5pbHxub3R8b2Z8b3J8cHJlcGFyZXxwcm9jfHByb3B8cmFpc2V8cmVxdWlyZXxzZWxmfHNraXB8dGhlbnx0aHJlYWR8dHJ1ZXx0cnl8dW5pdClcYi8sZnVuY3Rpb246Wy9cYlthLXpdW0EtWmEtelxkXSooPz1cKCkvLHtwYXR0ZXJuOi8oXHspW0EtWl1bQS1aYS16XGRdKlxiLyxsb29rYmVoaW5kOiEwfV0sbnVtYmVyOi9cYig/OjBbYnhdW1xkYS1mXSt8XGQrKD86XC5cZCopPyg/OmV+P1xkKyk/KVxifCYoPzpbXlxcXXxcXCg/OlxkezN9fC4pKS9pLHZhcmlhYmxlOi9gKD86W15gXFxdfFxcLikrYC8sImF0dHItbmFtZSI6L1xiXHcrKD89WyBcdF0qOig/IVs6PV0pKS8sb3BlcmF0b3I6LzooPzo9fDo6Pyl8PFstOj1dP3w9KD86PXw8Pzo/KXw+PT86P3xcXD06P3whIT98W3wjK1wtKlwvLH5eQF18XGIoPzphbmR0aGVufGRpdnxtb2R8b3JlbHNlKVxiLyxwdW5jdHVhdGlvbjovW1xbXF0oKXt9Ljo7P10vfX1yZXR1cm4gZHB9dmFyIHBwLEhrO2Z1bmN0aW9uIGdXKCl7aWYoSGspcmV0dXJuIHBwO0hrPTEscHA9ZSxlLmRpc3BsYXlOYW1lPSJwYXJpZ3AiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnBhcmlncD17Y29tbWVudDovXC9cKltcc1xTXSo/XCpcL3xcXFxcLiovLHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXHJcbl18XFwuKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6ZnVuY3Rpb24oKXt2YXIgbj1bImJyZWFrcG9pbnQiLCJicmVhayIsImRiZ19kb3duIiwiZGJnX2VyciIsImRiZ191cCIsImRiZ194IiwiZm9yY29tcG9zaXRlIiwiZm9yZGl2IiwiZm9yZWxsIiwiZm9ycGFydCIsImZvcnByaW1lIiwiZm9yc3RlcCIsImZvcnN1Ymdyb3VwIiwiZm9ydmVjIiwiZm9yIiwiaWZlcnIiLCJpZiIsImxvY2FsIiwibXkiLCJuZXh0IiwicmV0dXJuIiwidW50aWwiLCJ3aGlsZSJdO3JldHVybiBuPW4ubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnNwbGl0KCIiKS5qb2luKCIgKiIpfSkuam9pbigifCIpLFJlZ0V4cCgiXFxiKD86IituKyIpXFxiIil9KCksZnVuY3Rpb246L1xiXHcoPzpbXHcgXSpcdyk/KD89ICpcKCkvLG51bWJlcjp7cGF0dGVybjovKCg/OlwuICpcLiAqKT8pKD86XGJcZCg/OiAqXGQpKig/OiAqKD8hXC4gKlwuKVwuKD86ICpcZCkqKT98XC4gKlxkKD86ICpcZCkqKSg/OiAqZSAqKD86WystXSAqKT9cZCg/OiAqXGQpKik/L2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6L1wuICpcLnxbKlwvIV0oPzogKj0pP3wlKD86ICo9fCg/OiAqIyk/KD86IConKSopP3xcKyg/OiAqWys9XSk/fC0oPzogKlstPT5dKT98PCg/OiAqPnwoPzogKjwpPyg/OiAqPSk/KT98Pig/OiAqPik/KD86ICo9KT98PSg/OiAqPSl7MCwyfXxcXCg/OiAqXC8pPyg/OiAqPSk/fCYoPzogKiYpP3xcfCAqXHx8Wycjfl5dLyxwdW5jdHVhdGlvbjovW1xbXF17fSgpLiw6O3xdL319cmV0dXJuIHBwfXZhciBmcCxXaztmdW5jdGlvbiBoVygpe2lmKFdrKXJldHVybiBmcDtXaz0xLGZwPWUsZS5kaXNwbGF5TmFtZT0icGFyc2VyIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9bi5sYW5ndWFnZXMucGFyc2VyPW4ubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7a2V5d29yZDp7cGF0dGVybjovKF58W15eXSkoPzpcXig/OmNhc2V8ZXZhbHxmb3J8aWZ8c3dpdGNofHRocm93KVxifEAoPzpCQVNFfENMQVNTfEdFVCg/Ol9ERUZBVUxUKT98T1BUSU9OU3xTRVRfREVGQVVMVHxVU0UpXGIpLyxsb29rYmVoaW5kOiEwfSx2YXJpYWJsZTp7cGF0dGVybjovKF58W15eXSlcQlwkKD86XHcrfCg/PVsue10pKSg/Oig/OlwufDo6PylcdyspKig/OlwufDo6Pyk/Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wufDorL319LGZ1bmN0aW9uOntwYXR0ZXJuOi8oXnxbXl5dKVxCW0BeXVx3Kyg/Oig/OlwufDo6PylcdyspKig/OlwufDo6Pyk/Lyxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDp7cGF0dGVybjovKF5AKSg/OkdFVF98U0VUXykvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9cLnw6Ky99fSxlc2NhcGU6e3BhdHRlcm46L1xeKD86WyReO0AoKVxbXF17fSInOl18I1thLWZcZF0qKS9pLGFsaWFzOiJidWlsdGluIn0scHVuY3R1YXRpb246L1tcW1xdKCl7fTtdL30pO3I9bi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwYXJzZXIiLCJrZXl3b3JkIix7InBhcnNlci1jb21tZW50Ijp7cGF0dGVybjovKFxzKSMuKi8sbG9va2JlaGluZDohMCxhbGlhczoiY29tbWVudCJ9LGV4cHJlc3Npb246e3BhdHRlcm46LyhefFteXl0pXCgoPzpbXigpXXxcKCg/OlteKCldfFwoKD86W14oKV0pKlwpKSpcKSkqXCkvLGdyZWVkeTohMCxsb29rYmVoaW5kOiEwLGluc2lkZTp7c3RyaW5nOntwYXR0ZXJuOi8oXnxbXl5dKShbIiddKSg/Oig/IVwyKVteXl18XF5bXHNcU10pKlwyLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOnIua2V5d29yZCx2YXJpYWJsZTpyLnZhcmlhYmxlLGZ1bmN0aW9uOnIuZnVuY3Rpb24sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6L1xiKD86MHhbYS1mXGRdK3xcZCsoPzpcLlxkKik/KD86ZVsrLV0/XGQrKT8pXGIvaSxlc2NhcGU6ci5lc2NhcGUsb3BlcmF0b3I6L1t+KypcL1xcJV18ISg/Olx8XHw/fD0pP3wmJj98XHxcfD98PT18PFs8PV0/fD5bPj1dP3wtW2ZkXT98XGIoPzpkZWZ8ZXF8Z2V8Z3R8aW58aXN8bGV8bHR8bmUpXGIvLHB1bmN0dWF0aW9uOnIucHVuY3R1YXRpb259fX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgiaW5zaWRlIiwicHVuY3R1YXRpb24iLHtleHByZXNzaW9uOnIuZXhwcmVzc2lvbixrZXl3b3JkOnIua2V5d29yZCx2YXJpYWJsZTpyLnZhcmlhYmxlLGZ1bmN0aW9uOnIuZnVuY3Rpb24sZXNjYXBlOnIuZXNjYXBlLCJwYXJzZXItcHVuY3R1YXRpb24iOntwYXR0ZXJuOnIucHVuY3R1YXRpb24sYWxpYXM6InB1bmN0dWF0aW9uIn19LHIudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdKX0pKHQpfXJldHVybiBmcH12YXIgbXAsWWs7ZnVuY3Rpb24gYlcoKXtpZihZaylyZXR1cm4gbXA7WWs9MSxtcD1lLGUuZGlzcGxheU5hbWU9InBhc2NhbCIsZS5hbGlhc2VzPVsib2JqZWN0cGFzY2FsIl07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wYXNjYWw9e2RpcmVjdGl2ZTp7cGF0dGVybjovXHtcJFtcc1xTXSo/XH0vLGdyZWVkeTohMCxhbGlhczpbIm1hcmNvIiwicHJvcGVydHkiXX0sY29tbWVudDp7cGF0dGVybjovXChcKltcc1xTXSo/XCpcKXxce1tcc1xTXSo/XH18XC9cLy4qLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKD86Jyg/OicnfFteJ1xyXG5dKSonKD8hJyl8I1smJCVdP1thLWZcZF0rKSt8XF5bYS16XS9pLGdyZWVkeTohMH0sYXNtOntwYXR0ZXJuOi8oXGJhc21cYilbXHNcU10rPyg/PVxiZW5kXHMqWztbXSkvaSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6bnVsbH0sa2V5d29yZDpbe3BhdHRlcm46LyhefFteJl0pXGIoPzphYnNvbHV0ZXxhcnJheXxhc218YmVnaW58Y2FzZXxjb25zdHxjb25zdHJ1Y3RvcnxkZXN0cnVjdG9yfGRvfGRvd250b3xlbHNlfGVuZHxmaWxlfGZvcnxmdW5jdGlvbnxnb3RvfGlmfGltcGxlbWVudGF0aW9ufGluaGVyaXRlZHxpbmxpbmV8aW50ZXJmYWNlfGxhYmVsfG5pbHxvYmplY3R8b2Z8b3BlcmF0b3J8cGFja2VkfHByb2NlZHVyZXxwcm9ncmFtfHJlY29yZHxyZWludHJvZHVjZXxyZXBlYXR8c2VsZnxzZXR8c3RyaW5nfHRoZW58dG98dHlwZXx1bml0fHVudGlsfHVzZXN8dmFyfHdoaWxlfHdpdGgpXGIvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W14mXSlcYig/OmRpc3Bvc2V8ZXhpdHxmYWxzZXxuZXd8dHJ1ZSlcYi9pLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXnxbXiZdKVxiKD86Y2xhc3N8ZGlzcGludGVyZmFjZXxleGNlcHR8ZXhwb3J0c3xmaW5hbGl6YXRpb258ZmluYWxseXxpbml0aWFsaXphdGlvbnxpbmxpbmV8bGlicmFyeXxvbnxvdXR8cGFja2VkfHByb3BlcnR5fHJhaXNlfHJlc291cmNlc3RyaW5nfHRocmVhZHZhcnx0cnkpXGIvaSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W14mXSlcYig/OmFic29sdXRlfGFic3RyYWN0fGFsaWFzfGFzc2VtYmxlcnxiaXRwYWNrZWR8YnJlYWt8Y2RlY2x8Y29udGludWV8Y3BwZGVjbHxjdmFyfGRlZmF1bHR8ZGVwcmVjYXRlZHxkeW5hbWljfGVudW1lcmF0b3J8ZXhwZXJpbWVudGFsfGV4cG9ydHxleHRlcm5hbHxmYXJ8ZmFyMTZ8Zm9yd2FyZHxnZW5lcmljfGhlbHBlcnxpbXBsZW1lbnRzfGluZGV4fGludGVycnVwdHxpb2NoZWNrc3xsb2NhbHxtZXNzYWdlfG5hbWV8bmVhcnxub2RlZmF1bHR8bm9yZXR1cm58bm9zdGFja2ZyYW1lfG9sZGZwY2NhbGx8b3RoZXJ3aXNlfG92ZXJsb2FkfG92ZXJyaWRlfHBhc2NhbHxwbGF0Zm9ybXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cHVibGlzaGVkfHJlYWR8cmVnaXN0ZXJ8cmVpbnRyb2R1Y2V8cmVzdWx0fHNhZmVjYWxsfHNhdmVyZWdpc3RlcnN8c29mdGZsb2F0fHNwZWNpYWxpemV8c3RhdGljfHN0ZGNhbGx8c3RvcmVkfHN0cmljdHx1bmFsaWduZWR8dW5pbXBsZW1lbnRlZHx2YXJhcmdzfHZpcnR1YWx8d3JpdGUpXGIvaSxsb29rYmVoaW5kOiEwfV0sbnVtYmVyOlsvKD86WyYlXVxkK3xcJFthLWZcZF0rKS9pLC9cYlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspPy9pXSxvcGVyYXRvcjpbL1wuXC58XCpcKnw6PXw8Wzw9Pl0/fD5bPj1dP3xbK1wtKlwvXT0/fFtAXj1dLyx7cGF0dGVybjovKF58W14mXSlcYig/OmFuZHxhc3xkaXZ8ZXhjbHVkZXxpbnxpbmNsdWRlfGlzfG1vZHxub3R8b3J8c2hsfHNocnx4b3IpXGIvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovXChcLnxcLlwpfFsoKVxbXF06OywuXS99LHQubGFuZ3VhZ2VzLnBhc2NhbC5hc20uaW5zaWRlPXQubGFuZ3VhZ2VzLmV4dGVuZCgicGFzY2FsIix7YXNtOnZvaWQgMCxrZXl3b3JkOnZvaWQgMCxvcGVyYXRvcjp2b2lkIDB9KSx0Lmxhbmd1YWdlcy5vYmplY3RwYXNjYWw9dC5sYW5ndWFnZXMucGFzY2FsfXJldHVybiBtcH12YXIgZ3AsS2s7ZnVuY3Rpb24geVcoKXtpZihLaylyZXR1cm4gZ3A7S2s9MSxncD1lLGUuZGlzcGxheU5hbWU9InBhc2NhbGlnbyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS9cKCg/OlteKCldfFwoKD86W14oKV18XChbXigpXSpcKSkqXCkpKlwpLy5zb3VyY2UsYT0vKD86XGJcdysoPzo8YnJhY2VzPik/fDxicmFjZXM+KS8uc291cmNlLnJlcGxhY2UoLzxicmFjZXM+L2csZnVuY3Rpb24oKXtyZXR1cm4gcn0pLGk9bi5sYW5ndWFnZXMucGFzY2FsaWdvPXtjb21tZW50Oi9cKFwqW1xzXFNdKz9cKlwpfFwvXC8uKi8sc3RyaW5nOntwYXR0ZXJuOi8oWyInYF0pKD86XFxbXHNcU118KD8hXDEpW15cXF0pKlwxfFxeW2Etel0vaSxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46UmVnRXhwKC8oXGJ0eXBlXHMrXHcrXHMraXNccyspPHR5cGU+Ly5zb3VyY2UucmVwbGFjZSgvPHR5cGU+L2csZnVuY3Rpb24oKXtyZXR1cm4gYX0pLCJpIiksbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH0se3BhdHRlcm46UmVnRXhwKC88dHlwZT4oPz1ccytpc1xiKS8uc291cmNlLnJlcGxhY2UoLzx0eXBlPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSwiaSIpLGluc2lkZTpudWxsfSx7cGF0dGVybjpSZWdFeHAoLyg6XHMqKTx0eXBlPi8uc291cmNlLnJlcGxhY2UoLzx0eXBlPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSksbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH1dLGtleXdvcmQ6e3BhdHRlcm46LyhefFteJl0pXGIoPzpiZWdpbnxibG9ja3xjYXNlfGNvbnN0fGVsc2V8ZW5kfGZhaWx8Zm9yfGZyb218ZnVuY3Rpb258aWZ8aXN8bmlsfG9mfHJlbW92ZXxyZXR1cm58c2tpcHx0aGVufHR5cGV8dmFyfHdoaWxlfHdpdGgpXGIvaSxsb29rYmVoaW5kOiEwfSxib29sZWFuOntwYXR0ZXJuOi8oXnxbXiZdKVxiKD86RmFsc2V8VHJ1ZSlcYi9pLGxvb2tiZWhpbmQ6ITB9LGJ1aWx0aW46e3BhdHRlcm46LyhefFteJl0pXGIoPzpib29sfGludHxsaXN0fG1hcHxuYXR8cmVjb3JkfHN0cmluZ3x1bml0KVxiL2ksbG9va2JlaGluZDohMH0sZnVuY3Rpb246L1xiXHcrKD89XHMqXCgpLyxudW1iZXI6Wy8lWzAxXSt8JlswLTddK3xcJFthLWZcZF0rL2ksL1xiXGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/KD86bXR6fG4pPy9pXSxvcGVyYXRvcjovLT58PVwvPXxcLlwufFwqXCp8Oj18PFs8PT5dP3w+Wz49XT98WytcLSpcL109P3xbQF49fF18XGIoPzphbmR8bW9kfG9yKVxiLyxwdW5jdHVhdGlvbjovXChcLnxcLlwpfFsoKVxbXF06Oywue31dL30sbz1bImNvbW1lbnQiLCJrZXl3b3JkIiwiYnVpbHRpbiIsIm9wZXJhdG9yIiwicHVuY3R1YXRpb24iXS5yZWR1Y2UoZnVuY3Rpb24ocyxsKXtyZXR1cm4gc1tsXT1pW2xdLHN9LHt9KTtpWyJjbGFzcy1uYW1lIl0uZm9yRWFjaChmdW5jdGlvbihzKXtzLmluc2lkZT1vfSl9KSh0KX1yZXR1cm4gZ3B9dmFyIGhwLFhrO2Z1bmN0aW9uIHZXKCl7aWYoWGspcmV0dXJuIGhwO1hrPTEsaHA9ZSxlLmRpc3BsYXlOYW1lPSJwY2F4aXMiLGUuYWxpYXNlcz1bInB4Il07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wY2F4aXM9e3N0cmluZzovIlteIl0qIi8sa2V5d29yZDp7cGF0dGVybjovKCg/Ol58OylccyopWy1BLVpcZF0rKD86XHMqXFtbLVx3XStcXSk/KD86XHMqXCgiW14iXSoiKD86LFxzKiJbXiJdKiIpKlwpKT8oPz1ccyo9KS8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntrZXl3b3JkOi9eWy1BLVpcZF0rLyxsYW5ndWFnZTp7cGF0dGVybjovXihccyopXFtbLVx3XStcXS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXFt8XF0kLyxwcm9wZXJ0eTovWy1cd10rL319LCJzdWIta2V5Ijp7cGF0dGVybjovXihccyopXFNbXHNcU10qLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cGFyYW1ldGVyOntwYXR0ZXJuOi8iW14iXSoiLyxhbGlhczoicHJvcGVydHkifSxwdW5jdHVhdGlvbjovXlwofFwpJHwsL319fX0sb3BlcmF0b3I6Lz0vLHRsaXN0OntwYXR0ZXJuOi9UTElTVFxzKlwoXHMqXHcrKD86KD86XHMqLFxzKiJbXiJdKiIpK3xccyosXHMqIlteIl0qIi0iW14iXSoiKT9ccypcKS8sZ3JlZWR5OiEwLGluc2lkZTp7ZnVuY3Rpb246L15UTElTVC8scHJvcGVydHk6e3BhdHRlcm46L14oXHMqXChccyopXHcrLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6LyJbXiJdKiIvLHB1bmN0dWF0aW9uOi9bKCksXS8sb3BlcmF0b3I6Ly0vfX0scHVuY3R1YXRpb246L1s7LF0vLG51bWJlcjp7cGF0dGVybjovKF58XHMpXGQrKD86XC5cZCspPyg/IVxTKS8sbG9va2JlaGluZDohMH0sYm9vbGVhbjovTk98WUVTL30sdC5sYW5ndWFnZXMucHg9dC5sYW5ndWFnZXMucGNheGlzfXJldHVybiBocH12YXIgYnAsWms7ZnVuY3Rpb24gRVcoKXtpZihaaylyZXR1cm4gYnA7Wms9MSxicD1lLGUuZGlzcGxheU5hbWU9InBlb3BsZWNvZGUiLGUuYWxpYXNlcz1bInBjb2RlIl07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wZW9wbGVjb2RlPXtjb21tZW50OlJlZ0V4cChbL1wvXCpbXHNcU10qP1wqXC8vLnNvdXJjZSwvXGJSRU1bXjtdKjsvLnNvdXJjZSwvPFwqKD86W148Kl18XCooPyE+KXw8KD8hXCopfDxcKig/Oig/IVwqPilbXHNcU10pKlwqPikqXCo+Ly5zb3VyY2UsL1wvXCtbXHNcU10qP1wrXC8vLnNvdXJjZV0uam9pbigifCIpKSxzdHJpbmc6e3BhdHRlcm46LycoPzonJ3xbXidcclxuXSkqJyg/IScpfCIoPzoiInxbXiJcclxuXSkqIig/ISIpLyxncmVlZHk6ITB9LHZhcmlhYmxlOi8lXHcrLywiZnVuY3Rpb24tZGVmaW5pdGlvbiI6e3BhdHRlcm46LygoPzpefFteXHctXSkoPzpmdW5jdGlvbnxtZXRob2QpXHMrKVx3Ky9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZ1bmN0aW9uIn0sImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oKD86XnxbXi1cd10pKD86YXN8Y2F0Y2h8Y2xhc3N8Y29tcG9uZW50fGNyZWF0ZXxleHRlbmRzfGdsb2JhbHxpbXBsZW1lbnRzfGluc3RhbmNlfGxvY2FsfG9mfHByb3BlcnR5fHJldHVybnMpXHMrKVx3Kyg/OjpcdyspKi9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovOi99fSxrZXl3b3JkOi9cYig/OmFic3RyYWN0fGFsaWFzfGFzfGNhdGNofGNsYXNzfGNvbXBvbmVudHxjb25zdGFudHxjcmVhdGV8ZGVjbGFyZXxlbHNlfGVuZC0oPzpjbGFzc3xldmFsdWF0ZXxmb3J8ZnVuY3Rpb258Z2V0fGlmfG1ldGhvZHxzZXR8dHJ5fHdoaWxlKXxldmFsdWF0ZXxleHRlbmRzfGZvcnxmdW5jdGlvbnxnZXR8Z2xvYmFsfGlmfGltcGxlbWVudHN8aW1wb3J0fGluc3RhbmNlfGxpYnJhcnl8bG9jYWx8bWV0aG9kfG51bGx8b2Z8b3V0fHBlb3BsZUNvZGV8cHJpdmF0ZXxwcm9ncmFtfHByb3BlcnR5fHByb3RlY3RlZHxyZWFkb25seXxyZWZ8cmVwZWF0fHJldHVybnM/fHNldHxzdGVwfHRoZW58dGhyb3d8dG98dHJ5fHVudGlsfHZhbHVlfHdoZW4oPzotb3RoZXIpP3x3aGlsZSlcYi9pLCJvcGVyYXRvci1rZXl3b3JkIjp7cGF0dGVybjovXGIoPzphbmR8bm90fG9yKVxiL2ksYWxpYXM6Im9wZXJhdG9yIn0sZnVuY3Rpb246L1tfYS16XVx3Kig/PVxzKlwoKS9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLG51bWJlcjovXGJcZCsoPzpcLlxkKyk/XGIvLG9wZXJhdG9yOi88PnxbPD5dPT98IT18XCpcKnxbLSsqL3w9QF0vLHB1bmN0dWF0aW9uOi9bOi47LCgpW1xdXS99LHQubGFuZ3VhZ2VzLnBjb2RlPXQubGFuZ3VhZ2VzLnBlb3BsZWNvZGV9cmV0dXJuIGJwfXZhciB5cCxRaztmdW5jdGlvbiBTVygpe2lmKFFrKXJldHVybiB5cDtRaz0xLHlwPWUsZS5kaXNwbGF5TmFtZT0icGVybCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS8oPzpcKCg/OlteKClcXF18XFxbXHNcU10pKlwpfFx7KD86W157fVxcXXxcXFtcc1xTXSkqXH18XFsoPzpbXltcXVxcXXxcXFtcc1xTXSkqXF18PCg/OltePD5cXF18XFxbXHNcU10pKj4pLy5zb3VyY2U7bi5sYW5ndWFnZXMucGVybD17Y29tbWVudDpbe3BhdHRlcm46LyheXHMqKT1cd1tcc1xTXSo/PWN1dC4qL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcJF0pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLHN0cmluZzpbe3BhdHRlcm46UmVnRXhwKC9cYig/OnF8cXF8cXd8cXgpKD8hW2EtekEtWjAtOV0pXHMqLy5zb3VyY2UrIig/OiIrWy8oW15hLXpBLVowLTlcc3soXFs8XSkoPzooPyFcMSlbXlxcXXxcXFtcc1xTXSkqXDEvLnNvdXJjZSwvKFthLXpBLVowLTldKSg/Oig/IVwyKVteXFxdfFxcW1xzXFNdKSpcMi8uc291cmNlLHJdLmpvaW4oInwiKSsiKSIpLGdyZWVkeTohMH0se3BhdHRlcm46LygifGApKD86KD8hXDEpW15cXF18XFxbXHNcU10pKlwxLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8nKD86W14nXFxcclxuXXxcXC4pKicvLGdyZWVkeTohMH1dLHJlZ2V4Olt7cGF0dGVybjpSZWdFeHAoL1xiKD86bXxxcikoPyFbYS16QS1aMC05XSlccyovLnNvdXJjZSsiKD86IitbLyhbXmEtekEtWjAtOVxzeyhcWzxdKSg/Oig/IVwxKVteXFxdfFxcW1xzXFNdKSpcMS8uc291cmNlLC8oW2EtekEtWjAtOV0pKD86KD8hXDIpW15cXF18XFxbXHNcU10pKlwyLy5zb3VyY2Uscl0uam9pbigifCIpKyIpIisvW21zaXhwb2R1YWxuZ2NdKi8uc291cmNlKSxncmVlZHk6ITB9LHtwYXR0ZXJuOlJlZ0V4cCgvKF58W14tXSlcYig/OnN8dHJ8eSkoPyFbYS16QS1aMC05XSlccyovLnNvdXJjZSsiKD86IitbLyhbXmEtekEtWjAtOVxzeyhcWzxdKSg/Oig/IVwyKVteXFxdfFxcW1xzXFNdKSpcMig/Oig/IVwyKVteXFxdfFxcW1xzXFNdKSpcMi8uc291cmNlLC8oW2EtekEtWjAtOV0pKD86KD8hXDMpW15cXF18XFxbXHNcU10pKlwzKD86KD8hXDMpW15cXF18XFxbXHNcU10pKlwzLy5zb3VyY2UscisvXHMqLy5zb3VyY2Urcl0uam9pbigifCIpKyIpIisvW21zaXhwb2R1YWxuZ2Nlcl0qLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovXC8oPzpbXlwvXFxcclxuXXxcXC4pKlwvW21zaXhwb2R1YWxuZ2NdKig/PVxzKig/OiR8W1xyXG4sLjt9KSZ8XC0rKn48PiE/Xl18KD86YW5kfGNtcHxlcXxnZXxndHxsZXxsdHxuZXxub3R8b3J8eHx4b3IpXGIpKS8sZ3JlZWR5OiEwfV0sdmFyaWFibGU6Wy9bJiokQCVdXHtcXltBLVpdK1x9LywvWyYqJEAlXVxeW0EtWl9dLywvWyYqJEAlXSM/KD89XHspLywvWyYqJEAlXSM/KD86KD86OjopKic/KD8hXGQpW1x3JF0rKD8hW1x3JF0pKSsoPzo6OikqLywvWyYqJEAlXVxkKy8sLyg/ISU9KVskQCVdWyEiIyQlJicoKSorLFwtLlwvOjs8PT4/QFtcXFxdXl9ge3x9fl0vXSxmaWxlaGFuZGxlOntwYXR0ZXJuOi88KD8hWzw9XSlcUyo/PnxcYl9cYi8sYWxpYXM6InN5bWJvbCJ9LCJ2LXN0cmluZyI6e3BhdHRlcm46L3ZcZCsoPzpcLlxkKykqfFxkKyg/OlwuXGQrKXsyLH0vLGFsaWFzOiJzdHJpbmcifSxmdW5jdGlvbjp7cGF0dGVybjovKFxic3ViWyBcdF0rKVx3Ky8sbG9va2JlaGluZDohMH0sa2V5d29yZDovXGIoPzphbnl8YnJlYWt8Y29udGludWV8ZGVmYXVsdHxkZWxldGV8ZGllfGRvfGVsc2V8ZWxzaWZ8ZXZhbHxmb3J8Zm9yZWFjaHxnaXZlbnxnb3RvfGlmfGxhc3R8bG9jYWx8bXl8bmV4dHxvdXJ8cGFja2FnZXxwcmludHxyZWRvfHJlcXVpcmV8cmV0dXJufHNheXxzdGF0ZXxzdWJ8c3dpdGNofHVuZGVmfHVubGVzc3x1bnRpbHx1c2V8d2hlbnx3aGlsZSlcYi8sbnVtYmVyOi9cYig/OjB4W1xkQS1GYS1mXSg/Ol8/W1xkQS1GYS1mXSkqfDBiWzAxXSg/Ol8/WzAxXSkqfCg/Oig/OlxkKD86Xz9cZCkqKT9cLik/XGQoPzpfP1xkKSooPzpbRWVdWystXT9cZCspPylcYi8sb3BlcmF0b3I6Ly1bcnd4b1JXWE9lenNmZGxwU2JjdHVna1RCTUFDXVxifFwrWys9XT98LVstPT5dP3xcKlwqPz0/fFwvXC8/PT98PVs9fj5dP3x+W349XT98XHxcfD89P3wmJj89P3w8KD86PT4/fDw9Pyk/fD4+Pz0/fCFbfj1dP3xbJV5dPT98XC4oPzo9fFwuXC4/KT98W1xcP118XGJ4KD86PXxcYil8XGIoPzphbmR8Y21wfGVxfGdlfGd0fGxlfGx0fG5lfG5vdHxvcnx4b3IpXGIvLHB1bmN0dWF0aW9uOi9be31bXF07KCksOl0vfX0pKHQpfXJldHVybiB5cH12YXIgdnAsSms7ZnVuY3Rpb24gd1coKXtpZihKaylyZXR1cm4gdnA7Sms9MTt2YXIgZT1YcygpO3ZwPXQsdC5kaXNwbGF5TmFtZT0icGhwRXh0cmFzIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicGhwIiwidmFyaWFibGUiLHt0aGlzOntwYXR0ZXJuOi9cJHRoaXNcYi8sYWxpYXM6ImtleXdvcmQifSxnbG9iYWw6L1wkKD86R0xPQkFMU3xIVFRQX1JBV19QT1NUX0RBVEF8Xyg/OkNPT0tJRXxFTlZ8RklMRVN8R0VUfFBPU1R8UkVRVUVTVHxTRVJWRVJ8U0VTU0lPTil8YXJnY3xhcmd2fGh0dHBfcmVzcG9uc2VfaGVhZGVyfHBocF9lcnJvcm1zZylcYi8sc2NvcGU6e3BhdHRlcm46L1xiW1x3XFxdKzo6LyxpbnNpZGU6e2tleXdvcmQ6L1xiKD86cGFyZW50fHNlbGZ8c3RhdGljKVxiLyxwdW5jdHVhdGlvbjovOjp8XFwvfX19KX1yZXR1cm4gdnB9dmFyIEVwLGVBO2Z1bmN0aW9uIFRXKCl7aWYoZUEpcmV0dXJuIEVwO2VBPTE7dmFyIGU9WHMoKSx0PUtzKCk7RXA9bixuLmRpc3BsYXlOYW1lPSJwaHBkb2MiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKHIpe3IucmVnaXN0ZXIoZSksci5yZWdpc3Rlcih0KSxmdW5jdGlvbihhKXt2YXIgaT0vKD86XGJbYS16QS1aXVx3KnxbfFxcW1xdXSkrLy5zb3VyY2U7YS5sYW5ndWFnZXMucGhwZG9jPWEubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YWRvY2xpa2UiLHtwYXJhbWV0ZXI6e3BhdHRlcm46UmVnRXhwKCIoQCg/Omdsb2JhbHxwYXJhbXxwcm9wZXJ0eSg/Oi1yZWFkfC13cml0ZSk/fHZhcilcXHMrKD86IitpKyJcXHMrKT8pXFwkXFx3KyIpLGxvb2tiZWhpbmQ6ITB9fSksYS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwaHBkb2MiLCJrZXl3b3JkIix7ImNsYXNzLW5hbWUiOlt7cGF0dGVybjpSZWdFeHAoIihAKD86Z2xvYmFsfHBhY2thZ2V8cGFyYW18cHJvcGVydHkoPzotcmVhZHwtd3JpdGUpP3xyZXR1cm58c3VicGFja2FnZXx0aHJvd3N8dmFyKVxccyspIitpKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDovXGIoPzphcnJheXxib29sfGJvb2xlYW58Y2FsbGJhY2t8ZG91YmxlfGZhbHNlfGZsb2F0fGludHxpbnRlZ2VyfG1peGVkfG51bGx8b2JqZWN0fHJlc291cmNlfHNlbGZ8c3RyaW5nfHRydWV8dm9pZClcYi8scHVuY3R1YXRpb246L1t8XFxbXF0oKV0vfX1dfSksYS5sYW5ndWFnZXMuamF2YWRvY2xpa2UuYWRkU3VwcG9ydCgicGhwIixhLmxhbmd1YWdlcy5waHBkb2MpfShyKX1yZXR1cm4gRXB9dmFyIFNwLHRBO2Z1bmN0aW9uIGtXKCl7aWYodEEpcmV0dXJuIFNwO3RBPTE7dmFyIGU9T2IoKTtTcD10LHQuZGlzcGxheU5hbWU9InBsc3FsIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLnBsc3FsPW4ubGFuZ3VhZ2VzLmV4dGVuZCgic3FsIix7Y29tbWVudDp7cGF0dGVybjovXC9cKltcc1xTXSo/XCpcL3wtLS4qLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86QXxBQ0NFU1NJQkxFfEFERHxBR0VOVHxBR0dSRUdBVEV8QUxMfEFMVEVSfEFORHxBTll8QVJSQVl8QVN8QVNDfEFUfEFUVFJJQlVURXxBVVRISUR8QVZHfEJFR0lOfEJFVFdFRU58QkZJTEVfQkFTRXxCSU5BUll8QkxPQl9CQVNFfEJMT0NLfEJPRFl8Qk9USHxCT1VORHxCVUxLfEJZfEJZVEV8Q3xDQUxMfENBTExJTkd8Q0FTQ0FERXxDQVNFfENIQVJ8Q0hBUkFDVEVSfENIQVJTRVR8Q0hBUlNFVEZPUk18Q0hBUlNFVElEfENIQVJfQkFTRXxDSEVDS3xDTE9CX0JBU0V8Q0xPTkV8Q0xPU0V8Q0xVU1RFUnxDTFVTVEVSU3xDT0xBVVRIfENPTExFQ1R8Q09MVU1OU3xDT01NRU5UfENPTU1JVHxDT01NSVRURUR8Q09NUElMRUR8Q09NUFJFU1N8Q09OTkVDVHxDT05TVEFOVHxDT05TVFJVQ1RPUnxDT05URVhUfENPTlRJTlVFfENPTlZFUlR8Q09VTlR8Q1JBU0h8Q1JFQVRFfENSRURFTlRJQUx8Q1VSUkVOVHxDVVJTT1J8Q1VTVE9NREFUVU18REFOR0xJTkd8REFUQXxEQVRFfERBVEVfQkFTRXxEQVl8REVDTEFSRXxERUZBVUxUfERFRklORXxERUxFVEV8REVTQ3xERVRFUk1JTklTVElDfERJUkVDVE9SWXxESVNUSU5DVHxET1VCTEV8RFJPUHxEVVJBVElPTnxFTEVNRU5UfEVMU0V8RUxTSUZ8RU1QVFl8RU5EfEVTQ0FQRXxFWENFUFR8RVhDRVBUSU9OfEVYQ0VQVElPTlN8RVhDTFVTSVZFfEVYRUNVVEV8RVhJU1RTfEVYSVR8RVhURVJOQUx8RkVUQ0h8RklOQUx8RklSU1R8RklYRUR8RkxPQVR8Rk9SfEZPUkFMTHxGT1JDRXxGUk9NfEZVTkNUSU9OfEdFTkVSQUx8R09UT3xHUkFOVHxHUk9VUHxIQVNIfEhBVklOR3xIRUFQfEhJRERFTnxIT1VSfElERU5USUZJRUR8SUZ8SU1NRURJQVRFfElNTVVUQUJMRXxJTnxJTkNMVURJTkd8SU5ERVh8SU5ERVhFU3xJTkRJQ0FUT1J8SU5ESUNFU3xJTkZJTklURXxJTlNFUlR8SU5TVEFOVElBQkxFfElOVHxJTlRFUkZBQ0V8SU5URVJTRUNUfElOVEVSVkFMfElOVE98SU5WQUxJREFURXxJU3xJU09MQVRJT058SkFWQXxMQU5HVUFHRXxMQVJHRXxMRUFESU5HfExFTkdUSHxMRVZFTHxMSUJSQVJZfExJS0V8TElLRTJ8TElLRTR8TElLRUN8TElNSVR8TElNSVRFRHxMT0NBTHxMT0NLfExPTkd8TE9PUHxNQVB8TUFYfE1BWExFTnxNRU1CRVJ8TUVSR0V8TUlOfE1JTlVTfE1JTlVURXxNT0R8TU9ERXxNT0RJRll8TU9OVEh8TVVMVElTRVR8TVVUQUJMRXxOQU1FfE5BTnxOQVRJT05BTHxOQVRJVkV8TkNIQVJ8TkVXfE5PQ09NUFJFU1N8Tk9DT1BZfE5PVHxOT1dBSVR8TlVMTHxOVU1CRVJfQkFTRXxPQkpFQ1R8T0NJQ09MTHxPQ0lEQVRFfE9DSURBVEVUSU1FfE9DSURVUkFUSU9OfE9DSUlOVEVSVkFMfE9DSUxPQkxPQ0FUT1J8T0NJTlVNQkVSfE9DSVJBV3xPQ0lSRUZ8T0NJUkVGQ1VSU09SfE9DSVJPV0lEfE9DSVNUUklOR3xPQ0lUWVBFfE9GfE9MRHxPTnxPTkxZfE9QQVFVRXxPUEVOfE9QRVJBVE9SfE9QVElPTnxPUnxPUkFDTEV8T1JBREFUQXxPUkRFUnxPUkdBTklaQVRJT058T1JMQU5ZfE9STFZBUll8T1RIRVJTfE9VVHxPVkVSTEFQU3xPVkVSUklESU5HfFBBQ0tBR0V8UEFSQUxMRUxfRU5BQkxFfFBBUkFNRVRFUnxQQVJBTUVURVJTfFBBUkVOVHxQQVJUSVRJT058UEFTQ0FMfFBFUlNJU1RBQkxFfFBJUEV8UElQRUxJTkVEfFBMVUdHQUJMRXxQT0xZTU9SUEhJQ3xQUkFHTUF8UFJFQ0lTSU9OfFBSSU9SfFBSSVZBVEV8UFJPQ0VEVVJFfFBVQkxJQ3xSQUlTRXxSQU5HRXxSQVd8UkVBRHxSRUNPUkR8UkVGfFJFRkVSRU5DRXxSRUxJRVNfT058UkVNfFJFTUFJTkRFUnxSRU5BTUV8UkVTT1VSQ0V8UkVTVUxUfFJFU1VMVF9DQUNIRXxSRVRVUk58UkVUVVJOSU5HfFJFVkVSU0V8UkVWT0tFfFJPTExCQUNLfFJPV3xTQU1QTEV8U0FWRXxTQVZFUE9JTlR8U0IxfFNCMnxTQjR8U0VDT05EfFNFR01FTlR8U0VMRUNUfFNFTEZ8U0VQQVJBVEV8U0VRVUVOQ0V8U0VSSUFMSVpBQkxFfFNFVHxTSEFSRXxTSE9SVHxTSVpFfFNJWkVfVHxTT01FfFNQQVJTRXxTUUx8U1FMQ09ERXxTUUxEQVRBfFNRTE5BTUV8U1FMU1RBVEV8U1RBTkRBUkR8U1RBUlR8U1RBVElDfFNURERFVnxTVE9SRUR8U1RSSU5HfFNUUlVDVHxTVFlMRXxTVUJNVUxUSVNFVHxTVUJQQVJUSVRJT058U1VCU1RJVFVUQUJMRXxTVUJUWVBFfFNVTXxTWU5PTllNfFRBQkFVVEh8VEFCTEV8VERPfFRIRXxUSEVOfFRJTUV8VElNRVNUQU1QfFRJTUVaT05FX0FCQlJ8VElNRVpPTkVfSE9VUnxUSU1FWk9ORV9NSU5VVEV8VElNRVpPTkVfUkVHSU9OfFRPfFRSQUlMSU5HfFRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUx8VFJVU1RFRHxUWVBFfFVCMXxVQjJ8VUI0fFVOREVSfFVOSU9OfFVOSVFVRXxVTlBMVUd8VU5TSUdORUR8VU5UUlVTVEVEfFVQREFURXxVU0V8VVNJTkd8VkFMSVNUfFZBTFVFfFZBTFVFU3xWQVJJQUJMRXxWQVJJQU5DRXxWQVJSQVl8VkFSWUlOR3xWSUVXfFZJRVdTfFZPSUR8V0hFTnxXSEVSRXxXSElMRXxXSVRIfFdPUkt8V1JBUFBFRHxXUklURXxZRUFSfFpPTkUpXGIvaSxvcGVyYXRvcjovOj0/fD0+fFs8Pl5+IV09fFwuXC58XHxcfHxcKlwqfFstKyovJTw+PUBdL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicGxzcWwiLCJvcGVyYXRvciIse2xhYmVsOntwYXR0ZXJuOi88PFxzKlx3K1xzKj4+LyxhbGlhczoic3ltYm9sIn19KX1yZXR1cm4gU3B9dmFyIHdwLG5BO2Z1bmN0aW9uIEFXKCl7aWYobkEpcmV0dXJuIHdwO25BPTEsd3A9ZSxlLmRpc3BsYXlOYW1lPSJwb3dlcnF1ZXJ5IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wb3dlcnF1ZXJ5PXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfFwvXC8uKikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwicXVvdGVkLWlkZW50aWZpZXIiOntwYXR0ZXJuOi8jIig/OlteIlxyXG5dfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oPzojISk/Iig/OlteIlxyXG5dfCIiKSoiKD8hIikvLGdyZWVkeTohMH0sY29uc3RhbnQ6Wy9cYkRheVwuKD86RnJpZGF5fE1vbmRheXxTYXR1cmRheXxTdW5kYXl8VGh1cnNkYXl8VHVlc2RheXxXZWRuZXNkYXkpXGIvLC9cYlRyYWNlTGV2ZWxcLig/OkNyaXRpY2FsfEVycm9yfEluZm9ybWF0aW9ufFZlcmJvc2V8V2FybmluZylcYi8sL1xiT2NjdXJyZW5jZVwuKD86QWxsfEZpcnN0fExhc3QpXGIvLC9cYk9yZGVyXC4oPzpBc2NlbmRpbmd8RGVzY2VuZGluZylcYi8sL1xiUm91bmRpbmdNb2RlXC4oPzpBd2F5RnJvbVplcm98RG93bnxUb0V2ZW58VG93YXJkWmVyb3xVcClcYi8sL1xiTWlzc2luZ0ZpZWxkXC4oPzpFcnJvcnxJZ25vcmV8VXNlTnVsbClcYi8sL1xiUXVvdGVTdHlsZVwuKD86Q3N2fE5vbmUpXGIvLC9cYkpvaW5LaW5kXC4oPzpGdWxsT3V0ZXJ8SW5uZXJ8TGVmdEFudGl8TGVmdE91dGVyfFJpZ2h0QW50aXxSaWdodE91dGVyKVxiLywvXGJHcm91cEtpbmRcLig/Okdsb2JhbHxMb2NhbClcYi8sL1xiRXh0cmFWYWx1ZXNcLig/OkVycm9yfElnbm9yZXxMaXN0KVxiLywvXGJKb2luQWxnb3JpdGhtXC4oPzpEeW5hbWljfExlZnRIYXNofExlZnRJbmRleHxQYWlyd2lzZUhhc2h8UmlnaHRIYXNofFJpZ2h0SW5kZXh8U29ydE1lcmdlKVxiLywvXGJKb2luU2lkZVwuKD86TGVmdHxSaWdodClcYi8sL1xiUHJlY2lzaW9uXC4oPzpEZWNpbWFsfERvdWJsZSlcYi8sL1xiUmVsYXRpdmVQb3NpdGlvblwuRnJvbSg/OkVuZHxTdGFydClcYi8sL1xiVGV4dEVuY29kaW5nXC4oPzpBc2NpaXxCaWdFbmRpYW5Vbmljb2RlfFVuaWNvZGV8VXRmMTZ8VXRmOHxXaW5kb3dzKVxiLywvXGIoPzpBbnl8QmluYXJ5fERhdGV8RGF0ZVRpbWV8RGF0ZVRpbWVab25lfER1cmF0aW9ufEZ1bmN0aW9ufEludDE2fEludDMyfEludDY0fEludDh8TGlzdHxMb2dpY2FsfE5vbmV8TnVtYmVyfFJlY29yZHxUYWJsZXxUZXh0fFRpbWUpXC5UeXBlXGIvLC9cYm51bGxcYi9dLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sa2V5d29yZDovXGIoPzphbmR8YXN8ZWFjaHxlbHNlfGVycm9yfGlmfGlufGlzfGxldHxtZXRhfG5vdHxudWxsYWJsZXxvcHRpb25hbHxvcnxvdGhlcndpc2V8c2VjdGlvbnxzaGFyZWR8dGhlbnx0cnl8dHlwZSlcYnwjKD86YmluYXJ5fGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWV6b25lfGR1cmF0aW9ufGluZmluaXR5fG5hbnxzZWN0aW9uc3xzaGFyZWR8dGFibGV8dGltZSlcYi8sZnVuY3Rpb246e3BhdHRlcm46LyhefFteI1x3Ll0pW2Etel9dW1x3Ll0qKD89XHMqXCgpL2ksbG9va2JlaGluZDohMH0sImRhdGEtdHlwZSI6e3BhdHRlcm46L1xiKD86YW55fGFueW5vbm51bGx8YmluYXJ5fGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWV6b25lfGR1cmF0aW9ufGZ1bmN0aW9ufGxpc3R8bG9naWNhbHxub25lfG51bWJlcnxyZWNvcmR8dGFibGV8dGV4dHx0aW1lKVxiLyxhbGlhczoiY2xhc3MtbmFtZSJ9LG51bWJlcjp7cGF0dGVybjovXGIweFtcZGEtZl0rXGJ8KD86WystXT8oPzpcYlxkK1wuKT9cYlxkK3xbKy1dXC5cZCt8KF58W14uXSlcQlwuXGQrKSg/OmVbKy1dP1xkKyk/XGIvaSxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovWy0rKlwvJj9AXl18PCg/Oj0+P3w+KT98Pj0/fD0+P3xcLlwuXC4/LyxwdW5jdHVhdGlvbjovWyw7XFtcXSgpe31dL30sdC5sYW5ndWFnZXMucHE9dC5sYW5ndWFnZXMucG93ZXJxdWVyeSx0Lmxhbmd1YWdlcy5tc2NyaXB0PXQubGFuZ3VhZ2VzLnBvd2VycXVlcnl9cmV0dXJuIHdwfXZhciBUcCxyQTtmdW5jdGlvbiB4Vygpe2lmKHJBKXJldHVybiBUcDtyQT0xLFRwPWUsZS5kaXNwbGF5TmFtZT0icG93ZXJzaGVsbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPW4ubGFuZ3VhZ2VzLnBvd2Vyc2hlbGw9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXmBdKTwjW1xzXFNdKj8jPi8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteYF0pIy4qLyxsb29rYmVoaW5kOiEwfV0sc3RyaW5nOlt7cGF0dGVybjovIig/OmBbXHNcU118W15gIl0pKiIvLGdyZWVkeTohMCxpbnNpZGU6bnVsbH0se3BhdHRlcm46LycoPzpbXiddfCcnKSonLyxncmVlZHk6ITB9XSxuYW1lc3BhY2U6L1xbW2Etel0oPzpcWyg/OlxbW15cXV0qXF18W15cW1xdXSkqXF18W15cW1xdXSkqXF0vaSxib29sZWFuOi9cJCg/OmZhbHNlfHRydWUpXGIvaSx2YXJpYWJsZTovXCRcdytcYi8sZnVuY3Rpb246Wy9cYig/OkFkZHxBcHByb3ZlfEFzc2VydHxCYWNrdXB8QmxvY2t8Q2hlY2twb2ludHxDbGVhcnxDbG9zZXxDb21wYXJlfENvbXBsZXRlfENvbXByZXNzfENvbmZpcm18Q29ubmVjdHxDb252ZXJ0fENvbnZlcnRGcm9tfENvbnZlcnRUb3xDb3B5fERlYnVnfERlbnl8RGlzYWJsZXxEaXNjb25uZWN0fERpc21vdW50fEVkaXR8RW5hYmxlfEVudGVyfEV4aXR8RXhwYW5kfEV4cG9ydHxGaW5kfEZvckVhY2h8Rm9ybWF0fEdldHxHcmFudHxHcm91cHxIaWRlfEltcG9ydHxJbml0aWFsaXplfEluc3RhbGx8SW52b2tlfEpvaW58TGltaXR8TG9ja3xNZWFzdXJlfE1lcmdlfE1vdmV8TmV3fE9wZW58T3B0aW1pemV8T3V0fFBpbmd8UG9wfFByb3RlY3R8UHVibGlzaHxQdXNofFJlYWR8UmVjZWl2ZXxSZWRvfFJlZ2lzdGVyfFJlbW92ZXxSZW5hbWV8UmVwYWlyfFJlcXVlc3R8UmVzZXR8UmVzaXplfFJlc29sdmV8UmVzdGFydHxSZXN0b3JlfFJlc3VtZXxSZXZva2V8U2F2ZXxTZWFyY2h8U2VsZWN0fFNlbmR8U2V0fFNob3d8U2tpcHxTb3J0fFNwbGl0fFN0YXJ0fFN0ZXB8U3RvcHxTdWJtaXR8U3VzcGVuZHxTd2l0Y2h8U3luY3xUZWV8VGVzdHxUcmFjZXxVbmJsb2NrfFVuZG98VW5pbnN0YWxsfFVubG9ja3xVbnByb3RlY3R8VW5wdWJsaXNofFVucmVnaXN0ZXJ8VXBkYXRlfFVzZXxXYWl0fFdhdGNofFdoZXJlfFdyaXRlKS1bYS16XStcYi9pLC9cYig/OmFjfGNhdHxjaGRpcnxjbGN8Y2xpfGNscHxjbHZ8Y29tcGFyZXxjb3B5fGNwfGNwaXxjcHB8Y3ZwYXxkYnB8ZGVsfGRpZmZ8ZGlyfGVicHxlY2hvfGVwYWx8ZXBjc3Z8ZXBzbnxlcmFzZXxmY3xmbHxmdHxmd3xnYWx8Z2JwfGdjfGdjaXxnY3N8Z2RyfGdpfGdsfGdtfGdwfGdwc3xncm91cHxnc3Z8Z3V8Z3Z8Z3dtaXxpZXh8aWl8aXBhbHxpcGNzdnxpcHNufGlybXxpd21pfGl3cnxraWxsfGxwfGxzfG1lYXN1cmV8bWl8bW91bnR8bW92ZXxtcHxtdnxuYWx8bmRyfG5pfG52fG9ndnxwb3BkfHBzfHB1c2hkfHB3ZHxyYnB8cmR8cmRyfHJlbnxyaXxybXxybWRpcnxybml8cm5wfHJwfHJ2fHJ2cGF8cndtaXxzYWx8c2Fwc3xzYXN2fHNicHxzY3xzZWxlY3R8c2V0fHNoY218c2l8c2x8c2xlZXB8c2xzfHNvcnR8c3B8c3Bwc3xzcHN2fHN0YXJ0fHN2fHN3bWl8dGVlfHRyY218dHlwZXx3cml0ZSlcYi9pXSxrZXl3b3JkOi9cYig/OkJlZ2lufEJyZWFrfENhdGNofENsYXNzfENvbnRpbnVlfERhdGF8RGVmaW5lfERvfER5bmFtaWNQYXJhbXxFbHNlfEVsc2VJZnxFbmR8RXhpdHxGaWx0ZXJ8RmluYWxseXxGb3J8Rm9yRWFjaHxGcm9tfEZ1bmN0aW9ufElmfElubGluZVNjcmlwdHxQYXJhbGxlbHxQYXJhbXxQcm9jZXNzfFJldHVybnxTZXF1ZW5jZXxTd2l0Y2h8VGhyb3d8VHJhcHxUcnl8VW50aWx8VXNpbmd8VmFyfFdoaWxlfFdvcmtmbG93KVxiL2ksb3BlcmF0b3I6e3BhdHRlcm46LyhefFxXKSg/OiF8LSg/OmI/KD86YW5kfHg/b3IpfGFzfCg/Ok5vdCk/KD86Q29udGFpbnN8SW58TGlrZXxNYXRjaCl8ZXF8Z2V8Z3R8aXMoPzpOb3QpP3xKb2lufGxlfGx0fG5lfG5vdHxSZXBsYWNlfHNoW2xyXSlcYnwtWy09XT98XCtbKz1dP3xbKlwvJV09PykvaSxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovW3x7fVtcXTsoKSwuXS99O3Iuc3RyaW5nWzBdLmluc2lkZT17ZnVuY3Rpb246e3BhdHRlcm46LyhefFteYF0pXCRcKCg/OlwkXChbXlxyXG4oKV0qXCl8KD8hXCRcKClbXlxyXG4pXSkqXCkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnJ9LGJvb2xlYW46ci5ib29sZWFuLHZhcmlhYmxlOnIudmFyaWFibGV9fSkodCl9cmV0dXJuIFRwfXZhciBrcCxhQTtmdW5jdGlvbiBSVygpe2lmKGFBKXJldHVybiBrcDthQT0xLGtwPWUsZS5kaXNwbGF5TmFtZT0icHJvY2Vzc2luZyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMucHJvY2Vzc2luZz10Lmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7a2V5d29yZDovXGIoPzpicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnRpbnVlfGRlZmF1bHR8ZWxzZXxleHRlbmRzfGZpbmFsfGZvcnxpZnxpbXBsZW1lbnRzfGltcG9ydHxuZXd8bnVsbHxwcml2YXRlfHB1YmxpY3xyZXR1cm58c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRyeXx2b2lkfHdoaWxlKVxiLyxmdW5jdGlvbjovXGJcdysoPz1ccypcKCkvLG9wZXJhdG9yOi88Wzw9XT98Pls+PV0/fCYmP3xcfFx8P3xbJT9dfFshPStcLSpcL109Py99KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInByb2Nlc3NpbmciLCJudW1iZXIiLHtjb25zdGFudDovXGIoPyFYTUxcYilbQS1aXVtBLVpcZF9dK1xiLyx0eXBlOntwYXR0ZXJuOi9cYig/OmJvb2xlYW58Ynl0ZXxjaGFyfGNvbG9yfGRvdWJsZXxmbG9hdHxpbnR8W0EtWl1cdyopXGIvLGFsaWFzOiJjbGFzcy1uYW1lIn19KX1yZXR1cm4ga3B9dmFyIEFwLGlBO2Z1bmN0aW9uIF9XKCl7aWYoaUEpcmV0dXJuIEFwO2lBPTEsQXA9ZSxlLmRpc3BsYXlOYW1lPSJwcm9sb2ciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnByb2xvZz17Y29tbWVudDp7cGF0dGVybjovXC9cKltcc1xTXSo/XCpcL3wlLiovLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzpcMVwxfFxcKD86XHJcbnxbXHNcU10pfCg/IVwxKVteXFxcclxuXSkqXDEoPyFcMSkvLGdyZWVkeTohMH0sYnVpbHRpbjovXGIoPzpmeHxmeXx4Zlt4eV0/fHlmeD8pXGIvLGZ1bmN0aW9uOi9cYlthLXpdXHcqKD86KD89XCgpfFwvXGQrKS8sbnVtYmVyOi9cYlxkKyg/OlwuXGQqKT8vLG9wZXJhdG9yOi9bOlxcPT48XC0/KkBcLzsrXnwhJC5dK3xcYig/OmlzfG1vZHxub3R8eG9yKVxiLyxwdW5jdHVhdGlvbjovWygpe31cW1xdLF0vfX1yZXR1cm4gQXB9dmFyIHhwLG9BO2Z1bmN0aW9uIElXKCl7aWYob0EpcmV0dXJuIHhwO29BPTEseHA9ZSxlLmRpc3BsYXlOYW1lPSJwcm9tcWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj1bInN1bSIsIm1pbiIsIm1heCIsImF2ZyIsImdyb3VwIiwic3RkZGV2Iiwic3RkdmFyIiwiY291bnQiLCJjb3VudF92YWx1ZXMiLCJib3R0b21rIiwidG9wayIsInF1YW50aWxlIl0sYT1bIm9uIiwiaWdub3JpbmciLCJncm91cF9yaWdodCIsImdyb3VwX2xlZnQiLCJieSIsIndpdGhvdXQiXSxpPVsib2Zmc2V0Il0sbz1yLmNvbmNhdChhLGkpO24ubGFuZ3VhZ2VzLnByb21xbD17Y29tbWVudDp7cGF0dGVybjovKF5bIFx0XSopIy4qL20sbG9va2JlaGluZDohMH0sInZlY3Rvci1tYXRjaCI6e3BhdHRlcm46bmV3IFJlZ0V4cCgiKCg/OiIrYS5qb2luKCJ8IikrIilcXHMqKVxcKFteKV0qXFwpIiksbG9va2JlaGluZDohMCxpbnNpZGU6eyJsYWJlbC1rZXkiOntwYXR0ZXJuOi9cYlteLF0rXGIvLGFsaWFzOiJhdHRyLW5hbWUifSxwdW5jdHVhdGlvbjovWygpLF0vfX0sImNvbnRleHQtbGFiZWxzIjp7cGF0dGVybjovXHtbXnt9XSpcfS8saW5zaWRlOnsibGFiZWwta2V5Ijp7cGF0dGVybjovXGJbYS16X11cdyooPz1ccyooPzo9fCFbPX5dKSkvLGFsaWFzOiJhdHRyLW5hbWUifSwibGFiZWwtdmFsdWUiOntwYXR0ZXJuOi8oWyInYF0pKD86XFxbXHNcU118KD8hXDEpW15cXF0pKlwxLyxncmVlZHk6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovXHt8XH18PX4/fCFbPX5dfCwvfX0sImNvbnRleHQtcmFuZ2UiOlt7cGF0dGVybjovXFtbXHdcczpdK1xdLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXXw6LywicmFuZ2UtZHVyYXRpb24iOntwYXR0ZXJuOi9cYig/OlxkKyg/OltzbWhkd3ldfG1zKSkrXGIvaSxhbGlhczoibnVtYmVyIn19fSx7cGF0dGVybjovKFxib2Zmc2V0XHMrKVx3Ky8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJyYW5nZS1kdXJhdGlvbiI6e3BhdHRlcm46L1xiKD86XGQrKD86W3NtaGR3eV18bXMpKStcYi9pLGFsaWFzOiJudW1iZXIifX19XSxrZXl3b3JkOm5ldyBSZWdFeHAoIlxcYig/OiIrby5qb2luKCJ8IikrIilcXGIiLCJpIiksZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksbnVtYmVyOi9bLStdPyg/Oig/OlxiXGQrKD86XC5cZCspP3xcQlwuXGQrKSg/OmVbLStdP1xkKyk/XGJ8XGIoPzoweFswLTlhLWZdK3xuYW58aW5mKVxiKS9pLG9wZXJhdG9yOi9bXF4qLyUrLV18PT18IT18PD18PHw+PXw+fFxiKD86YW5kfG9yfHVubGVzcylcYi9pLHB1bmN0dWF0aW9uOi9be307KClgLC5bXF1dL319KSh0KX1yZXR1cm4geHB9dmFyIFJwLHNBO2Z1bmN0aW9uIE5XKCl7aWYoc0EpcmV0dXJuIFJwO3NBPTEsUnA9ZSxlLmRpc3BsYXlOYW1lPSJwcm9wZXJ0aWVzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wcm9wZXJ0aWVzPXtjb21tZW50Oi9eWyBcdF0qWyMhXS4qJC9tLCJhdHRyLXZhbHVlIjp7cGF0dGVybjovKF5bIFx0XSooPzpcXCg/OlxyXG58W1xzXFNdKXxbXlxcXHM6PV0pKyg/OiAqWz06XSAqKD8hICl8ICkpKD86XFwoPzpcclxufFtcc1xTXSl8W15cXFxyXG5dKSsvbSxsb29rYmVoaW5kOiEwfSwiYXR0ci1uYW1lIjovXlsgXHRdKig/OlxcKD86XHJcbnxbXHNcU10pfFteXFxcczo9XSkrKD89ICpbPTpdfCApL20scHVuY3R1YXRpb246L1s9Ol0vfX1yZXR1cm4gUnB9dmFyIF9wLGxBO2Z1bmN0aW9uIENXKCl7aWYobEEpcmV0dXJuIF9wO2xBPTEsX3A9ZSxlLmRpc3BsYXlOYW1lPSJwcm90b2J1ZiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS9cYig/OmJvb2x8Ynl0ZXN8ZG91YmxlfHM/Zml4ZWQoPzozMnw2NCl8ZmxvYXR8W3N1XT9pbnQoPzozMnw2NCl8c3RyaW5nKVxiLztuLmxhbmd1YWdlcy5wcm90b2J1Zj1uLmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7ImNsYXNzLW5hbWUiOlt7cGF0dGVybjovKFxiKD86ZW51bXxleHRlbmR8bWVzc2FnZXxzZXJ2aWNlKVxzKylbQS1aYS16X11cdyooPz1ccypceykvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXGIoPzpycGNccytcdyt8cmV0dXJucylccypcKFxzKig/OnN0cmVhbVxzKyk/KVwuP1tBLVphLXpfXVx3Kig/OlwuW0EtWmEtel9dXHcqKSooPz1ccypcKSkvLGxvb2tiZWhpbmQ6ITB9XSxrZXl3b3JkOi9cYig/OmVudW18ZXh0ZW5kfGV4dGVuc2lvbnN8aW1wb3J0fG1lc3NhZ2V8b25lb2Z8b3B0aW9ufG9wdGlvbmFsfHBhY2thZ2V8cHVibGljfHJlcGVhdGVkfHJlcXVpcmVkfHJlc2VydmVkfHJldHVybnN8cnBjKD89XHMrXHcpfHNlcnZpY2V8c3RyZWFtfHN5bnRheHx0bylcYig/IVxzKj1ccypcZCkvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pfSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwcm90b2J1ZiIsIm9wZXJhdG9yIix7bWFwOntwYXR0ZXJuOi9cYm1hcDxccypbXHcuXStccyosXHMqW1x3Ll0rXHMqPig/PVxzK1thLXpfXVx3KlxzKls9O10pL2ksYWxpYXM6ImNsYXNzLW5hbWUiLGluc2lkZTp7cHVuY3R1YXRpb246L1s8Pi4sXS8sYnVpbHRpbjpyfX0sYnVpbHRpbjpyLCJwb3NpdGlvbmFsLWNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oPzpcYnxcQlwuKVthLXpfXVx3Kig/OlwuW2Etel9dXHcqKSooPz1ccytbYS16X11cdypccypbPTtdKS9pLGFsaWFzOiJjbGFzcy1uYW1lIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSxhbm5vdGF0aW9uOntwYXR0ZXJuOi8oXFtccyopW2Etel9dXHcqKD89XHMqPSkvaSxsb29rYmVoaW5kOiEwfX0pfSkodCl9cmV0dXJuIF9wfXZhciBJcCx1QTtmdW5jdGlvbiBPVygpe2lmKHVBKXJldHVybiBJcDt1QT0xLElwPWUsZS5kaXNwbGF5TmFtZT0icHNsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wc2w9e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W15cXCJdKSoiLyxncmVlZHk6ITAsaW5zaWRlOntzeW1ib2w6L1xcW250cmJBLVoiXFxdL319LCJoZXJlZG9jLXN0cmluZyI6e3BhdHRlcm46Lzw8PChbYS16QS1aX11cdyopW1xyXG5dKD86LipbXHJcbl0pKj9cMVxiLyxhbGlhczoic3RyaW5nIixncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86X19tdWx0aXxfX3NpbmdsZXxjYXNlfGRlZmF1bHR8ZG98ZWxzZXxlbHNpZnxleGl0fGV4cG9ydHxmb3J8Zm9yZWFjaHxmdW5jdGlvbnxpZnxsYXN0fGxpbmV8bG9jYWx8bmV4dHxyZXF1aXJlc3xyZXR1cm58c3dpdGNofHVudGlsfHdoaWxlfHdvcmQpXGIvLGNvbnN0YW50Oi9cYig/OkFMQVJNfENIQVJUX0FERF9HUkFQSHxDSEFSVF9ERUxFVEVfR1JBUEh8Q0hBUlRfREVTVFJPWXxDSEFSVF9MT0FEfENIQVJUX1BSSU5UfEVPRnxPRkZMSU5FfE9LfFBTTF9QUk9GX0xPR3xSX0NIRUNLX0hPUklafFJfQ0hFQ0tfVkVSVHxSX0NMSUNLRVJ8Ul9DT0xVTU58Ul9GUkFNRXxSX0lDT058Ul9MQUJFTHxSX0xBQkVMX0NFTlRFUnxSX0xJU1RfTVVMVElQTEV8Ul9MSVNUX01VTFRJUExFX05EfFJfTElTVF9TSU5HTEV8Ul9MSVNUX1NJTkdMRV9ORHxSX01FTlV8Ul9QT1BVUHxSX1BPUFVQX1NDUk9MTEVEfFJfUkFESU9fSE9SSVp8Ul9SQURJT19WRVJUfFJfUk9XfFJfU0NBTEVfSE9SSVp8Ul9TQ0FMRV9WRVJUfFJfU0VQX0hPUklafFJfU0VQX1ZFUlR8Ul9TUElOTkVSfFJfVEVYVF9GSUVMRHxSX1RFWFRfRklFTERfTEFCRUx8Ul9UT0dHTEV8VFJJTV9MRUFESU5HfFRSSU1fTEVBRElOR19BTkRfVFJBSUxJTkd8VFJJTV9SRURVTkRBTlR8VFJJTV9UUkFJTElOR3xWT0lEfFdBUk4pXGIvLGJvb2xlYW46L1xiKD86RkFMU0V8RmFsc2V8Tk98Tm98VFJVRXxUcnVlfFlFU3xZZXN8ZmFsc2V8bm98dHJ1ZXx5ZXMpXGIvLHZhcmlhYmxlOi9cYig/OlBzbERlYnVnfGVycm5vfGV4aXRfc3RhdHVzKVxiLyxidWlsdGluOntwYXR0ZXJuOi9cYig/OlBzbEV4ZWN1dGV8UHNsRnVuY3Rpb25DYWxsfFBzbEZ1bmN0aW9uRXhpc3RzfFBzbFNldE9wdGlvbnN8X3NubXBfZGVidWd8YWNvc3xhZGRfZGlhcnl8YW5ub3RhdGV8YW5ub3RhdGVfZ2V0fGFzY2lpX3RvX2ViY2RpY3xhc2N0aW1lfGFzaW58YXRhbnxhdGV4aXR8YmF0Y2hfc2V0fGJsYWNrb3V0fGNhdHxjZWlsfGNoYW5fZXhpc3RzfGNoYW5nZV9zdGF0ZXxjbG9zZXxjb2RlX2N2dHxjb25kX3NpZ25hbHxjb25kX3dhaXR8Y29uc29sZV90eXBlfGNvbnZlcnRfYmFzZXxjb252ZXJ0X2RhdGV8Y29udmVydF9sb2NhbGVfZGF0ZXxjb3N8Y29zaHxjcmVhdGV8ZGF0ZXxkY2dldF90ZXh0fGRlc3Ryb3l8ZGVzdHJveV9sb2NrfGRnZXRfdGV4dHxkaWZmZXJlbmNlfGR1bXBfaGlzdHxlYmNkaWNfdG9fYXNjaWl8ZW5jcnlwdHxldmVudF9hcmNoaXZlfGV2ZW50X2NhdGFsb2dfZ2V0fGV2ZW50X2NoZWNrfGV2ZW50X3F1ZXJ5fGV2ZW50X3JhbmdlX21hbmFnZXxldmVudF9yYW5nZV9xdWVyeXxldmVudF9yZXBvcnR8ZXZlbnRfc2NoZWR1bGV8ZXZlbnRfdHJpZ2dlcnxldmVudF90cmlnZ2VyMnxleGVjdXRlfGV4aXN0c3xleHB8ZmFic3xmaWxlfGZsb29yfGZtb2R8Zm9wZW58ZnNlZWt8ZnRlbGx8ZnVsbF9kaXNjb3Zlcnl8Z2V0fGdldF9jaGFuX2luZm98Z2V0X3Jhbmdlc3xnZXRfdGV4dHxnZXRfdmFyc3xnZXRlbnZ8Z2V0aG9zdGluZm98Z2V0cGlkfGdldHBuYW1lfGdyZXB8aGlzdG9yeXxoaXN0b3J5X2dldF9yZXRlbnRpb258aW5fdHJhbnNpdGlvbnxpbmRleHxpbnR8aW50ZXJuYWx8aW50ZXJzZWN0aW9ufGlzX3Zhcnxpc251bWJlcnxqb2lufGtpbGx8bGVuZ3RofGxpbmVzfGxvY2t8bG9ja19pbmZvfGxvZ3xsb2cxMHxsb2dlfG1hdGNobGluZXxtc2dfY2hlY2t8bXNnX2dldF9mb3JtYXR8bXNnX2dldF9zZXZlcml0eXxtc2dfcHJpbnRmfG1zZ19zcHJpbnRmfG50aGFyZ3xudGhhcmdmfG50aGxpbmV8bnRobGluZWZ8bnVtX2J5dGVzfG51bV9jb25zb2xlc3xwY29uZmlnfHBvcGVufHBvcGxpbmVzfHBvd3xwcmludHxwcmludGZ8cHJvY19leGlzdHN8cHJvY2Vzc3xyYW5kb218cmVhZHxyZWFkbG58cmVmcmVzaF9wYXJhbWV0ZXJzfHJlbW90ZV9jaGVja3xyZW1vdGVfY2xvc2V8cmVtb3RlX2V2ZW50X3F1ZXJ5fHJlbW90ZV9ldmVudF90cmlnZ2VyfHJlbW90ZV9maWxlX3NlbmR8cmVtb3RlX29wZW58cmVtb3ZlfHJlcGxhY2V8cmluZGV4fHNlY19jaGVja19wcml2fHNlY19zdG9yZV9nZXR8c2VjX3N0b3JlX3NldHxzZXR8c2V0X2FsYXJtX3Jhbmdlc3xzZXRfbG9jYWxlfHNoYXJlfHNpbnxzaW5ofHNsZWVwfHNubXBfYWdlbnRfY29uZmlnfHNubXBfYWdlbnRfc3RhcnR8c25tcF9hZ2VudF9zdG9wfHNubXBfY2xvc2V8c25tcF9jb25maWd8c25tcF9nZXR8c25tcF9nZXRfbmV4dHxzbm1wX2hfZ2V0fHNubXBfaF9nZXRfbmV4dHxzbm1wX2hfc2V0fHNubXBfb3Blbnxzbm1wX3NldHxzbm1wX3RyYXBfaWdub3JlfHNubXBfdHJhcF9saXN0ZW58c25tcF90cmFwX3JhaXNlX3N0ZF90cmFwfHNubXBfdHJhcF9yZWNlaXZlfHNubXBfdHJhcF9yZWdpc3Rlcl9pbXxzbm1wX3RyYXBfc2VuZHxzbm1wX3dhbGt8c29wZW58c29ydHxzcGxpdGxpbmV8c3ByaW50ZnxzcXJ0fHNyYW5kb218c3RyX3JlcGVhdHxzdHJjYXNlY21wfHN1YnNldHxzdWJzdHJ8c3lzdGVtfHRhaWx8dGFufHRhbmh8dGV4dF9kb21haW58dGltZXx0bXBuYW18dG9sb3dlcnx0b3VwcGVyfHRyYWNlX3BzbF9wcm9jZXNzfHRyaW18dW5pb258dW5pcXVlfHVubG9ja3x1bnNldHx2YV9hcmd8dmFfc3RhcnR8d3JpdGUpXGIvLGFsaWFzOiJidWlsdGluLWZ1bmN0aW9uIn0sImZvcmVhY2gtdmFyaWFibGUiOntwYXR0ZXJuOi8oXGJmb3JlYWNoXHMrKD86KD86XHcrXGJ8Iig/OlxcLnxbXlxcIl0pKiIpXHMrKXswLDJ9KVtfYS16QS1aXVx3Kig/PVxzKlwoKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGZ1bmN0aW9uOi9cYltfYS16XVx3KlxiKD89XHMqXCgpL2ksbnVtYmVyOi9cYig/OjB4WzAtOWEtZl0rfFxkKyg/OlwuXGQrKT8pXGIvaSxvcGVyYXRvcjovLS18XCtcK3wmJj0/fFx8XHw9P3w8PD0/fD4+PT98Wz0hXX58Wy0rKi8lJnxeIT08Pl09P3xcLnxbOj9dLyxwdW5jdHVhdGlvbjovWygpe31cW1xdOyxdL319cmV0dXJuIElwfXZhciBOcCxjQTtmdW5jdGlvbiBMVygpe2lmKGNBKXJldHVybiBOcDtjQT0xLE5wPWUsZS5kaXNwbGF5TmFtZT0icHVnIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7bi5sYW5ndWFnZXMucHVnPXtjb21tZW50OntwYXR0ZXJuOi8oXihbXHQgXSopKVwvXC8uKig/Oig/OlxyP1xufFxyKVwyW1x0IF0uKykqL20sbG9va2JlaGluZDohMH0sIm11bHRpbGluZS1zY3JpcHQiOntwYXR0ZXJuOi8oXihbXHQgXSopc2NyaXB0XGIuKlwuW1x0IF0qKSg/Oig/OlxyP1xufFxyKD8hXG4pKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrL20sbG9va2JlaGluZDohMCxpbnNpZGU6bi5sYW5ndWFnZXMuamF2YXNjcmlwdH0sZmlsdGVyOntwYXR0ZXJuOi8oXihbXHQgXSopKTouKyg/Oig/OlxyP1xufFxyKD8hXG4pKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrL20sbG9va2JlaGluZDohMCxpbnNpZGU6eyJmaWx0ZXItbmFtZSI6e3BhdHRlcm46L146W1x3LV0rLyxhbGlhczoidmFyaWFibGUifSx0ZXh0Oi9cU1tcc1xTXSovfX0sIm11bHRpbGluZS1wbGFpbi10ZXh0Ijp7cGF0dGVybjovKF4oW1x0IF0qKVtcd1wtIy5dK1wuW1x0IF0qKSg/Oig/OlxyP1xufFxyKD8hXG4pKSg/OlwyW1x0IF0uK3xccyo/KD89XHI/XG58XHIpKSkrL20sbG9va2JlaGluZDohMH0sbWFya3VwOntwYXR0ZXJuOi8oXltcdCBdKik8LisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTpuLmxhbmd1YWdlcy5tYXJrdXB9LGRvY3R5cGU6e3BhdHRlcm46LygoPzpefFxuKVtcdCBdKilkb2N0eXBlKD86IC4rKT8vLGxvb2tiZWhpbmQ6ITB9LCJmbG93LWNvbnRyb2wiOntwYXR0ZXJuOi8oXltcdCBdKikoPzpjYXNlfGRlZmF1bHR8ZWFjaHxlbHNlfGlmfHVubGVzc3x3aGVufHdoaWxlKVxiKD86IC4rKT8vbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZWFjaDp7cGF0dGVybjovXmVhY2ggLis/IGluXGIvLGluc2lkZTp7a2V5d29yZDovXGIoPzplYWNofGluKVxiLyxwdW5jdHVhdGlvbjovLC99fSxicmFuY2g6e3BhdHRlcm46L14oPzpjYXNlfGRlZmF1bHR8ZWxzZXxpZnx1bmxlc3N8d2hlbnx3aGlsZSlcYi8sYWxpYXM6ImtleXdvcmQifSxyZXN0Om4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fSxrZXl3b3JkOntwYXR0ZXJuOi8oXltcdCBdKikoPzphcHBlbmR8YmxvY2t8ZXh0ZW5kc3xpbmNsdWRlfHByZXBlbmQpXGIuKy9tLGxvb2tiZWhpbmQ6ITB9LG1peGluOlt7cGF0dGVybjovKF5bXHQgXSopbWl4aW4gLisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7a2V5d29yZDovXm1peGluLyxmdW5jdGlvbjovXHcrKD89XHMqXCh8XHMqJCkvLHB1bmN0dWF0aW9uOi9bKCksLl0vfX0se3BhdHRlcm46LyheW1x0IF0qKVwrLisvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7bmFtZTp7cGF0dGVybjovXlwrXHcrLyxhbGlhczoiZnVuY3Rpb24ifSxyZXN0Om4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9fV0sc2NyaXB0OntwYXR0ZXJuOi8oXltcdCBdKnNjcmlwdCg/Oig/OiZbXihdKyk/XChbXildK1wpKSpbXHQgXSkuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LCJwbGFpbi10ZXh0Ijp7cGF0dGVybjovKF5bXHQgXSooPyEtKVtcd1wtIy5dKltcd1wtXSg/Oig/OiZbXihdKyk/XChbXildK1wpKSpcLz9bXHQgXSkuKy9tLGxvb2tiZWhpbmQ6ITB9LHRhZzp7cGF0dGVybjovKF5bXHQgXSopKD8hLSlbXHdcLSMuXSpbXHdcLV0oPzooPzomW14oXSspP1woW14pXStcKSkqXC8/Oj8vbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7YXR0cmlidXRlczpbe3BhdHRlcm46LyZbXihdK1woW14pXStcKS8saW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LHtwYXR0ZXJuOi9cKFteKV0rXCkvLGluc2lkZTp7ImF0dHItdmFsdWUiOntwYXR0ZXJuOi8oPVxzKig/IVxzKSkoPzpce1tefV0qXH18W14sKVxyXG5dKykvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9LCJhdHRyLW5hbWUiOi9bXHctXSsoPz1ccyohPz18XHMqWywpXSkvLHB1bmN0dWF0aW9uOi9bIT0oKSxdKy99fV0scHVuY3R1YXRpb246LzovLCJhdHRyLWlkIjovI1tcd1wtXSsvLCJhdHRyLWNsYXNzIjovXC5bXHdcLV0rL319LGNvZGU6W3twYXR0ZXJuOi8oXltcdCBdKig/Oi18IT89KSkuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLmphdmFzY3JpcHR9XSxwdW5jdHVhdGlvbjovWy5cLSE9fF0rL307Zm9yKHZhciByPS8oXihbXHQgXSopKTo8ZmlsdGVyX25hbWU+KD86KD86XHI/XG58XHIoPyFcbikpKD86XDJbXHQgXS4rfFxzKj8oPz1ccj9cbnxccikpKSsvLnNvdXJjZSxhPVt7ZmlsdGVyOiJhdHBsIixsYW5ndWFnZToidHdpZyJ9LHtmaWx0ZXI6ImNvZmZlZSIsbGFuZ3VhZ2U6ImNvZmZlZXNjcmlwdCJ9LCJlanMiLCJoYW5kbGViYXJzIiwibGVzcyIsImxpdmVzY3JpcHQiLCJtYXJrZG93biIse2ZpbHRlcjoic2FzcyIsbGFuZ3VhZ2U6InNjc3MifSwic3R5bHVzIl0saT17fSxvPTAscz1hLmxlbmd0aDtvPHM7bysrKXt2YXIgbD1hW29dO2w9dHlwZW9mIGw9PSJzdHJpbmciP3tmaWx0ZXI6bCxsYW5ndWFnZTpsfTpsLG4ubGFuZ3VhZ2VzW2wubGFuZ3VhZ2VdJiYoaVsiZmlsdGVyLSIrbC5maWx0ZXJdPXtwYXR0ZXJuOlJlZ0V4cChyLnJlcGxhY2UoIjxmaWx0ZXJfbmFtZT4iLGZ1bmN0aW9uKCl7cmV0dXJuIGwuZmlsdGVyfSksIm0iKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImZpbHRlci1uYW1lIjp7cGF0dGVybjovXjpbXHctXSsvLGFsaWFzOiJ2YXJpYWJsZSJ9LHRleHQ6e3BhdHRlcm46L1xTW1xzXFNdKi8sYWxpYXM6W2wubGFuZ3VhZ2UsImxhbmd1YWdlLSIrbC5sYW5ndWFnZV0saW5zaWRlOm4ubGFuZ3VhZ2VzW2wubGFuZ3VhZ2VdfX19KX1uLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInB1ZyIsImZpbHRlciIsaSl9KSh0KX1yZXR1cm4gTnB9dmFyIENwLGRBO2Z1bmN0aW9uIERXKCl7aWYoZEEpcmV0dXJuIENwO2RBPTEsQ3A9ZSxlLmRpc3BsYXlOYW1lPSJwdXBwZXQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy5wdXBwZXQ9e2hlcmVkb2M6W3twYXR0ZXJuOi8oQFwoIihbXiJcclxuXC8pOl0rKSIoPzpcL1tucnRzJHVMXSopP1wpLiooPzpccj9cbnxccikpKD86LiooPzpccj9cbnxccig/IVxuKSkpKj9bIFx0XSooPzpcfFsgXHRdKik/KD86LVsgXHRdKik/XDIvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovKD89XFMpLipcUyg/PSAqJCkvfX0se3BhdHRlcm46LyhAXCgoW14iXHJcblwvKTpdKykoPzpcL1tucnRzJHVMXSopP1wpLiooPzpccj9cbnxccikpKD86LiooPzpccj9cbnxccig/IVxuKSkpKj9bIFx0XSooPzpcfFsgXHRdKik/KD86LVsgXHRdKik/XDIvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7cHVuY3R1YXRpb246Lyg/PVxTKS4qXFMoPz0gKiQpL319LHtwYXR0ZXJuOi9AXCgiPyg/OlteIlxyXG5cLyk6XSspIj8oPzpcL1tucnRzJHVMXSopP1wpLyxhbGlhczoic3RyaW5nIixpbnNpZGU6e3B1bmN0dWF0aW9uOntwYXR0ZXJuOi8oXCgpLis/KD89XCkpLyxsb29rYmVoaW5kOiEwfX19XSwibXVsdGlsaW5lLWNvbW1lbnQiOntwYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj9cKlwvLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCJ9LHJlZ2V4OntwYXR0ZXJuOi8oKD86XGJub2RlXHMrfFt+PVwoXFtceyxdXHMqfFs9K10+XHMqfF5ccyopKVwvKD86W15cL1xcXXxcXFtcc1xTXSkrXC8oPzpbaW14XStcYnxcQikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7ImV4dGVuZGVkLXJlZ2V4Ijp7cGF0dGVybjovXlwvKD86W15cL1xcXXxcXFtcc1xTXSkrXC9baW1dKnhbaW1dKiQvLGluc2lkZTp7Y29tbWVudDovIy4qL319fX0sY29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oWyInXSkoPzpcJFx7KD86W14nIn1dfChbIiddKSg/Oig/IVwyKVteXFxdfFxcW1xzXFNdKSpcMikrXH18XCQoPyFceyl8KD8hXDEpW15cXCRdfFxcW1xzXFNdKSpcMS8sZ3JlZWR5OiEwLGluc2lkZTp7ImRvdWJsZS1xdW90ZWQiOntwYXR0ZXJuOi9eIltcc1xTXSoiJC8saW5zaWRlOnt9fX19LHZhcmlhYmxlOntwYXR0ZXJuOi9cJCg/Ojo6KT9cdysoPzo6Olx3KykqLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi86Oi99fSwiYXR0ci1uYW1lIjovKD86XGJcdyt8XCopKD89XHMqPT4pLyxmdW5jdGlvbjpbe3BhdHRlcm46LyhcLikoPyFcZClcdysvLGxvb2tiZWhpbmQ6ITB9LC9cYig/OmNvbnRhaW58ZGVidWd8ZXJyfGZhaWx8aW5jbHVkZXxpbmZvfG5vdGljZXxyZWFsaXplfHJlcXVpcmV8dGFnfHdhcm5pbmcpXGJ8XGIoPyFcZClcdysoPz1cKCkvXSxudW1iZXI6L1xiKD86MHhbYS1mXGRdK3xcZCsoPzpcLlxkKyk/KD86ZS0/XGQrKT8pXGIvaSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGtleXdvcmQ6L1xiKD86YXBwbGljYXRpb258YXR0cnxjYXNlfGNsYXNzfGNvbnN1bWVzfGRlZmF1bHR8ZGVmaW5lfGVsc2V8ZWxzaWZ8ZnVuY3Rpb258aWZ8aW1wb3J0fGluaGVyaXRzfG5vZGV8cHJpdmF0ZXxwcm9kdWNlc3x0eXBlfHVuZGVmfHVubGVzcylcYi8sZGF0YXR5cGU6e3BhdHRlcm46L1xiKD86QW55fEFycmF5fEJvb2xlYW58Q2FsbGFibGV8Q2F0YWxvZ2VudHJ5fENsYXNzfENvbGxlY3Rpb258RGF0YXxEZWZhdWx0fEVudW18RmxvYXR8SGFzaHxJbnRlZ2VyfE5vdFVuZGVmfE51bWVyaWN8T3B0aW9uYWx8UGF0dGVybnxSZWdleHB8UmVzb3VyY2V8UnVudGltZXxTY2FsYXJ8U3RyaW5nfFN0cnVjdHxUdXBsZXxUeXBlfFVuZGVmfFZhcmlhbnQpXGIvLGFsaWFzOiJzeW1ib2wifSxvcGVyYXRvcjovPVs9fj5dP3whWz1+XT98PCg/OjxcfD98Wz1+fC1dKT98Pls+PV0/fC0+P3x+PnxcfD4/Pj98WypcLyUrP118XGIoPzphbmR8aW58b3IpXGIvLHB1bmN0dWF0aW9uOi9bXFtcXXt9KCkuLDtdfDorL307dmFyIHI9W3twYXR0ZXJuOi8oXnxbXlxcXSlcJFx7KD86W14nInt9XXxce1tefV0qXH18KFsiJ10pKD86KD8hXDIpW15cXF18XFxbXHNcU10pKlwyKStcfS8sbG9va2JlaGluZDohMCxpbnNpZGU6eyJzaG9ydC12YXJpYWJsZSI6e3BhdHRlcm46LyheXCRceykoPyFcdytcKCkoPzo6Oik/XHcrKD86OjpcdyspKi8sbG9va2JlaGluZDohMCxhbGlhczoidmFyaWFibGUiLGluc2lkZTp7cHVuY3R1YXRpb246Lzo6L319LGRlbGltaXRlcjp7cGF0dGVybjovXlwkLyxhbGlhczoidmFyaWFibGUifSxyZXN0Om4ubGFuZ3VhZ2VzLnB1cHBldH19LHtwYXR0ZXJuOi8oXnxbXlxcXSlcJCg/Ojo6KT9cdysoPzo6Olx3KykqLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSIsaW5zaWRlOntwdW5jdHVhdGlvbjovOjovfX1dO24ubGFuZ3VhZ2VzLnB1cHBldC5oZXJlZG9jWzBdLmluc2lkZS5pbnRlcnBvbGF0aW9uPXIsbi5sYW5ndWFnZXMucHVwcGV0LnN0cmluZy5pbnNpZGVbImRvdWJsZS1xdW90ZWQiXS5pbnNpZGUuaW50ZXJwb2xhdGlvbj1yfSkodCl9cmV0dXJuIENwfXZhciBPcCxwQTtmdW5jdGlvbiBNVygpe2lmKHBBKXJldHVybiBPcDtwQT0xLE9wPWUsZS5kaXNwbGF5TmFtZT0icHVyZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe24ubGFuZ3VhZ2VzLnB1cmU9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj9cKlwvLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMH0sLyMhLisvXSwiaW5saW5lLWxhbmciOntwYXR0ZXJuOi8lPFtcc1xTXSs/JT4vLGdyZWVkeTohMCxpbnNpZGU6e2xhbmc6e3BhdHRlcm46LyheJTwgKiktXCotLis/LVwqLS8sbG9va2JlaGluZDohMCxhbGlhczoiY29tbWVudCJ9LGRlbGltaXRlcjp7cGF0dGVybjovXiU8Lip8JT4kLyxhbGlhczoicHVuY3R1YXRpb24ifX19LHN0cmluZzp7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITB9LG51bWJlcjp7cGF0dGVybjovKCg/OlwuXC4pPykoPzpcYig/OmluZnxuYW4pXGJ8XGIweFtcZGEtZl0rfCg/OlxiKD86MGIpP1xkKyg/OlwuXGQrKT98XEJcLlxkKykoPzplWystXT9cZCspP0w/KS9pLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86TlVMTHxhbnN8YnJlYWt8YnR8Y2FzZXxjYXRjaHxjZHxjbGVhcnxjb25zdHxkZWZ8ZGVsfGR1bXB8ZWxzZXxlbmR8ZXhpdHxleHRlcm58ZmFsc2V8Zm9yY2V8aGVscHxpZnxpbmZpeFtscl0/fGludGVyZmFjZXxsZXR8bHN8bWVtfG5hbWVzcGFjZXxub25maXh8b2Z8b3RoZXJ3aXNlfG91dGZpeHxvdmVycmlkZXxwb3N0Zml4fHByZWZpeHxwcml2YXRlfHB1YmxpY3xwd2R8cXVpdHxydW58c2F2ZXxzaG93fHN0YXRzfHRoZW58dGhyb3d8dHJhY2V8dHJ1ZXx0eXBlfHVuZGVycmlkZXx1c2luZ3x3aGVufHdpdGgpXGIvLGZ1bmN0aW9uOi9cYig/OmFic3xhZGRfKD86YWRkcnxjb25zdGRlZnwoPzpmdW5kZWZ8aW50ZXJmYWNlfG1hY2RlZnx0eXBlZGVmKSg/Ol9hdCk/fHZhcmRlZil8YWxsfGFueXxhcHBscD98YXJpdHl8YmlnaW50cD98YmxvYig/Ol9jcmN8X3NpemV8cCk/fGJvb2xwP3xieXRlX2M/c3RyaW5nKD86X3BvaW50ZXIpP3xieXRlXyg/Om1hdHJpeHxwb2ludGVyKXxjYWxsb2N8Y2F0fGNhdG1hcHxjZWlsfGNoYXJbcHNdP3xjaGVja19wdHJ0YWd8Y2hyfGNsZWFyX3NlbnRyeXxjbGVhcnN5bXxjbG9zdXJlcD98Y21hdHJpeHA/fGNvbHM/fGNvbGNhdCg/Om1hcCk/fGNvbG1hcHxjb2xyZXZ8Y29sdmVjdG9yKD86cHxzZXEpP3xjb21wbGV4KD86X2Zsb2F0Xyg/Om1hdHJpeHxwb2ludGVyKXxfbWF0cml4KD86X3ZpZXcpP3xfcG9pbnRlcnxwKT98Y29uanxjb29rZWRwP3xjc3R8Y3N0cmluZyg/Ol8oPzpkdXB8bGlzdHx2ZWN0b3IpKT98Y3VycnkzP3xjeWNsZW4/fGRlbF8oPzpjb25zdGRlZnxmdW5kZWZ8aW50ZXJmYWNlfG1hY2RlZnx0eXBlZGVmfHZhcmRlZil8ZGVsZXRlfGRpYWcoPzptYXQpP3xkaW18ZG1hdHJpeHA/fGRvfGRvdWJsZSg/Ol9tYXRyaXgoPzpfdmlldyk/fF9wb2ludGVyfHApP3xkb3dpdGgzP3xkcm9wfGRyb3B3aGlsZXxldmFsKD86Y21kKT98ZXhhY3RwfGZpbHRlcnxmaXh8Zml4aXR5fGZsaXB8ZmxvYXQoPzpfbWF0cml4fF9wb2ludGVyKXxmbG9vcnxmb2xkW2xyXTE/fGZyYWN8ZnJlZXxmdW5wP3xmdW5jdGlvbnA/fGdjZHxnZXQoPzpfKD86Ynl0ZXxjb25zdGRlZnxkb3VibGV8ZmxvYXR8ZnVuZGVmfGludCg/OjY0KT98aW50ZXJmYWNlKD86X3R5cGVkZWYpP3xsb25nfG1hY2RlZnxwb2ludGVyfHB0cnRhZ3xzZW50cnl8c2hvcnR8c3RyaW5nfHR5cGVkZWZ8dmFyZGVmKSk/fGdsb2JzeW18aGFzaHxoZWFkfGlkfGltfGltYXRyaXhwP3xpbmRleHxpbmV4YWN0cHxpbmZwfGluaXR8aW5zZXJ0fGludCg/Ol9tYXRyaXgoPzpfdmlldyk/fF9wb2ludGVyfHApP3xpbnQ2NF8oPzptYXRyaXh8cG9pbnRlcil8aW50ZWdlcnA/fGl0ZXJhdGVuP3xpdGVyd2hpbGV8am9pbnxrZXlzP3xsYW1iZGFwP3xsYXN0KD86ZXJyKD86cG9zKT8pP3xsY2R8bGlzdFsycF0/fGxpc3RtYXB8bWFrZV9wdHJ0YWd8bWFsbG9jfG1hcHxtYXRjYXR8bWF0cml4cD98bWF4fG1lbWJlcnxtaW58bmFucHxuYXJnc3xubWF0cml4cD98bnVsbHxudW1iZXJwP3xvcmR8cGFjayg/OmVkKT98cG9pbnRlcig/Ol9jYXN0fF90YWd8X3R5cGV8cCk/fHBvd3xwcmVkfHB0cnRhZ3xwdXQoPzpfKD86Ynl0ZXxkb3VibGV8ZmxvYXR8aW50KD86NjQpP3xsb25nfHBvaW50ZXJ8c2hvcnR8c3RyaW5nKSk/fHJhdGlvbmFscD98cmV8cmVhbHA/fHJlYWxsb2N8cmVjb3JkcD98cmVkaW18cmVkdWNlKD86X3dpdGgpP3xyZWZwP3xyZXBlYXRuP3xyZXZlcnNlfHJsaXN0cD98cm91bmR8cm93cz98cm93Y2F0KD86bWFwKT98cm93bWFwfHJvd3Jldnxyb3d2ZWN0b3IoPzpwfHNlcSk/fHNhbWV8c2Nhbltscl0xP3xzZW50cnl8c2dufHNob3J0Xyg/Om1hdHJpeHxwb2ludGVyKXxzbGljZXxzbWF0cml4cD98c29ydHxzcGxpdHxzdHJ8c3RyY2F0fHN0cmVhbXxzdHJpZGV8c3RyaW5nKD86Xyg/OmR1cHxsaXN0fHZlY3Rvcil8cCk/fHN1YmRpYWcoPzptYXQpP3xzdWJtYXR8c3Vic2VxMj98c3Vic3RyfHN1Y2N8c3VwZGlhZyg/Om1hdCk/fHN5bWJvbHA/fHRhaWx8dGFrZXx0YWtld2hpbGV8dGh1bmtwP3x0cmFuc3Bvc2V8dHJ1bmN8dHVwbGVwP3x0eXBlcHx1Ynl0ZXx1aW50KD86NjQpP3x1bG9uZ3x1bmN1cnJ5Mz98dW5yZWZ8dW56aXAzP3x1cGRhdGV8dXNob3J0fHZhbHM/fHZhcnA/fHZlY3Rvcig/OnB8c2VxKT98dm9pZHx6aXAzP3x6aXB3aXRoMz8pXGIvLHNwZWNpYWw6e3BhdHRlcm46L1xiX19bYS16XStfX1xiL2ksYWxpYXM6ImJ1aWx0aW4ifSxvcGVyYXRvcjovKD86WyEiIyQlJicqKyxcLS5cLzo8PT4/QFxcXmB8flx1MDBhMS1cdTAwYmZcdTAwZDctXHUwMGY3XHUyMGQwLVx1MmJmZl18XGJfK1xiKSt8XGIoPzphbmR8ZGl2fG1vZHxub3R8b3IpXGIvLHB1bmN0dWF0aW9uOi9bKCl7fVxbXF07LHxdL307dmFyIHI9WyJjIix7bGFuZzoiYysrIixhbGlhczoiY3BwIn0sImZvcnRyYW4iXSxhPS8lPCAqLVwqLSAqPGxhbmc+XGQqICotXCotW1xzXFNdKz8lPi8uc291cmNlO3IuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgbz1pO2lmKHR5cGVvZiBpIT0ic3RyaW5nIiYmKG89aS5hbGlhcyxpPWkubGFuZyksbi5sYW5ndWFnZXNbb10pe3ZhciBzPXt9O3NbImlubGluZS1sYW5nLSIrb109e3BhdHRlcm46UmVnRXhwKGEucmVwbGFjZSgiPGxhbmc+IixpLnJlcGxhY2UoLyhbLisqP1wvXFwoKXt9XFtcXV0pL2csIlxcJDEiKSksImkiKSxpbnNpZGU6bi51dGlsLmNsb25lKG4ubGFuZ3VhZ2VzLnB1cmVbImlubGluZS1sYW5nIl0uaW5zaWRlKX0sc1siaW5saW5lLWxhbmctIitvXS5pbnNpZGUucmVzdD1uLnV0aWwuY2xvbmUobi5sYW5ndWFnZXNbb10pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicHVyZSIsImlubGluZS1sYW5nIixzKX19KSxuLmxhbmd1YWdlcy5jJiYobi5sYW5ndWFnZXMucHVyZVsiaW5saW5lLWxhbmciXS5pbnNpZGUucmVzdD1uLnV0aWwuY2xvbmUobi5sYW5ndWFnZXMuYykpfSkodCl9cmV0dXJuIE9wfXZhciBMcCxmQTtmdW5jdGlvbiBQVygpe2lmKGZBKXJldHVybiBMcDtmQT0xLExwPWUsZS5kaXNwbGF5TmFtZT0icHVyZWJhc2ljIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5wdXJlYmFzaWM9dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6LzsuKi8sa2V5d29yZDovXGIoPzphbGlnbnxhbmR8YXN8YnJlYWt8Y2FsbGRlYnVnZ2VyfGNhc2V8Y29tcGlsZXJjYXNlfGNvbXBpbGVyZGVmYXVsdHxjb21waWxlcmVsc2V8Y29tcGlsZXJlbHNlaWZ8Y29tcGlsZXJlbmRpZnxjb21waWxlcmVuZHNlbGVjdHxjb21waWxlcmVycm9yfGNvbXBpbGVyaWZ8Y29tcGlsZXJzZWxlY3R8Y29udGludWV8ZGF0YXxkYXRhc2VjdGlvbnxkZWJ1Z3xkZWJ1Z2xldmVsfGRlY2xhcmV8ZGVjbGFyZWN8ZGVjbGFyZWNkbGx8ZGVjbGFyZWRsbHxkZWNsYXJlbW9kdWxlfGRlZmF1bHR8ZGVmaW5lfGRpbXxkaXNhYmxlYXNtfGRpc2FibGVkZWJ1Z2dlcnxkaXNhYmxlZXhwbGljaXR8ZWxzZXxlbHNlaWZ8ZW5hYmxlYXNtfGVuYWJsZWRlYnVnZ2VyfGVuYWJsZWV4cGxpY2l0fGVuZHxlbmRkYXRhc2VjdGlvbnxlbmRkZWNsYXJlbW9kdWxlfGVuZGVudW1lcmF0aW9ufGVuZGlmfGVuZGltcG9ydHxlbmRpbnRlcmZhY2V8ZW5kbWFjcm98ZW5kbW9kdWxlfGVuZHByb2NlZHVyZXxlbmRzZWxlY3R8ZW5kc3RydWN0dXJlfGVuZHN0cnVjdHVyZXVuaW9ufGVuZHdpdGh8ZW51bWVyYXRpb258ZXh0ZW5kc3xmYWtlcmV0dXJufGZvcnxmb3JlYWNofGZvcmV2ZXJ8Z2xvYmFsfGdvc3VifGdvdG98aWZ8aW1wb3J0fGltcG9ydGN8aW5jbHVkZWJpbmFyeXxpbmNsdWRlZmlsZXxpbmNsdWRlcGF0aHxpbnRlcmZhY2V8bWFjcm98bW9kdWxlfG5ld2xpc3R8bmV3bWFwfG5leHR8bm90fG9yfHByb2NlZHVyZXxwcm9jZWR1cmVjfHByb2NlZHVyZWNkbGx8cHJvY2VkdXJlZGxsfHByb2NlZHVyZXJldHVybnxwcm90ZWN0ZWR8cHJvdG90eXBlfHByb3RvdHlwZWN8cmVhZHxyZWRpbXxyZXBlYXR8cmVzdG9yZXxyZXR1cm58cnVudGltZXxzZWxlY3R8c2hhcmVkfHN0YXRpY3xzdGVwfHN0cnVjdHVyZXxzdHJ1Y3R1cmV1bmlvbnxzd2FwfHRocmVhZGVkfHRvfHVudGlsfHdlbmR8d2hpbGV8d2l0aHx4aW5jbHVkZWZpbGV8eG9yKVxiL2ksZnVuY3Rpb246L1xiXHcrKD86XC5cdyspP1xzKig/PVwoKS8sbnVtYmVyOi8oPzpcJFtcZGEtZl0rfFxiLT8oPzpcZCsoPzpcLlxkKyk/fFwuXGQrKSg/OmVbKy1dP1xkKyk/KVxiL2ksb3BlcmF0b3I6Lyg/OkBcKj98XD98XCopXHcrfC1bPi1dP3xcK1wrP3whPT98PDw/PT98Pj4/PT98PT0/fCYmP3xcfD9cfHxbfl4lPyovQF0vfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwdXJlYmFzaWMiLCJrZXl3b3JkIix7dGFnOi8jXHcrXCQ/Lyxhc206e3BhdHRlcm46LyheW1x0IF0qKSEuKi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InRhZyIsaW5zaWRlOntjb21tZW50Oi87LiovLHN0cmluZzp7cGF0dGVybjovKFsiJ2BdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LCJsYWJlbC1yZWZlcmVuY2UtYW5vbnltb3VzIjp7cGF0dGVybjovKCFccypqW2Etel0rXHMrKUBbZmJdL2ksbG9va2JlaGluZDohMCxhbGlhczoiZmFzbS1sYWJlbCJ9LCJsYWJlbC1yZWZlcmVuY2UtYWRkcmVzc2VkIjp7cGF0dGVybjovKCFccypqW2Etel0rXHMrKVtBLVouXz8kQF1bXHcuPyRAfiNdKi9pLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImZhc20tbGFiZWwifSxrZXl3b3JkOlsvXGIoPzpleHRlcm58Z2xvYmFsKVxiW147XHJcbl0qL2ksL1xiKD86Q1BVfERFRkFVTFR8RkxPQVQpXGIuKi9dLGZ1bmN0aW9uOntwYXR0ZXJuOi9eKFtcdCBdKiFccyopW1xkYS16XSsoPz1cc3wkKS9pbSxsb29rYmVoaW5kOiEwfSwiZnVuY3Rpb24taW5saW5lIjp7cGF0dGVybjovKDpccyopW1xkYS16XSsoPz1ccykvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGxhYmVsOntwYXR0ZXJuOi9eKFtcdCBdKiFccyopW0EtWmEtei5fPyRAXVtcdy4/JEB+I10qKD89OikvbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmYXNtLWxhYmVsIn0scmVnaXN0ZXI6L1xiKD86c3RcZHxbeHl6XW1tXGRcZD98W2NkdF1yXGR8clxkXGQ/W2J3ZF0/fFtlcl0/W2FiY2RdeHxbYWJjZF1baGxdfFtlcl0/KD86YnB8ZGl8c2l8c3ApfFtjZGVmZ3Ndc3xtbVxkKylcYi9pLG51bWJlcjovKD86XGJ8LXwoPz1cJCkpKD86MFtoeF0oPzpbXGRhLWZdKlwuKT9bXGRhLWZdKyg/OnBbKy1dP1xkKyk/fFxkW1xkYS1mXStbaHhdfFwkXGRbXGRhLWZdKnwwW29xXVswLTddK3xbMC03XStbb3FdfDBbYnldWzAxXSt8WzAxXStbYnldfDBbZHRdXGQrfCg/OlxkKyg/OlwuXGQrKT98XC5cZCspKD86XC4/ZVsrLV0/XGQrKT9bZHRdPylcYi9pLG9wZXJhdG9yOi9bXFtcXSorXC0vJTw+PSZ8JCEsLjpdL319fSksZGVsZXRlIHQubGFuZ3VhZ2VzLnB1cmViYXNpY1siY2xhc3MtbmFtZSJdLGRlbGV0ZSB0Lmxhbmd1YWdlcy5wdXJlYmFzaWMuYm9vbGVhbix0Lmxhbmd1YWdlcy5wYmZhc209dC5sYW5ndWFnZXMucHVyZWJhc2ljfXJldHVybiBMcH12YXIgRHAsbUE7ZnVuY3Rpb24gRlcoKXtpZihtQSlyZXR1cm4gRHA7bUE9MTt2YXIgZT1EYigpO0RwPXQsdC5kaXNwbGF5TmFtZT0icHVyZXNjcmlwdCIsdC5hbGlhc2VzPVsicHVycyJdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxuLmxhbmd1YWdlcy5wdXJlc2NyaXB0PW4ubGFuZ3VhZ2VzLmV4dGVuZCgiaGFza2VsbCIse2tleXdvcmQ6L1xiKD86YWRvfGNhc2V8Y2xhc3N8ZGF0YXxkZXJpdmV8ZG98ZWxzZXxmb3JhbGx8aWZ8aW58aW5maXhsfGluZml4cnxpbnN0YW5jZXxsZXR8bW9kdWxlfG5ld3R5cGV8b2Z8cHJpbWl0aXZlfHRoZW58dHlwZXx3aGVyZSlcYnziiIAvLCJpbXBvcnQtc3RhdGVtZW50Ijp7cGF0dGVybjovKF5bXHQgXSopaW1wb3J0XHMrW0EtWl1bXHcnXSooPzpcLltBLVpdW1x3J10qKSooPzpccythc1xzK1tBLVpdW1x3J10qKD86XC5bQS1aXVtcdyddKikqKT8oPzpccytoaWRpbmdcYik/L20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L1xiKD86YXN8aGlkaW5nfGltcG9ydClcYi8scHVuY3R1YXRpb246L1wuL319LGJ1aWx0aW46L1xiKD86YWJzdXJkfGFkZHxhcHxhcHBlbmR8YXBwbHl8YmV0d2VlbnxiaW5kfGJvdHRvbXxjbGFtcHxjb21wYXJlfGNvbXBhcmluZ3xjb21wb3NlfGNvbmp8Y29uc3R8ZGVncmVlfGRpc2NhcmR8ZGlzanxkaXZ8ZXF8ZmxhcHxmbGlwfGdjZHxpZGVudGl0eXxpZk18am9pbnxsY218bGlmdEExfGxpZnRNMXxtYXB8bWF4fG1lbXB0eXxtaW58bW9kfG11bHxuZWdhdGV8bm90fG5vdEVxfG9uZXxvdGhlcndpc2V8cmVjaXB8c2hvd3xzdWJ8dG9wfHVuaXR8dW5sZXNzfHVubGVzc018dm9pZHx3aGVufHdoZW5NfHplcm8pXGIvLG9wZXJhdG9yOltuLmxhbmd1YWdlcy5oYXNrZWxsLm9wZXJhdG9yWzBdLG4ubGFuZ3VhZ2VzLmhhc2tlbGwub3BlcmF0b3JbMl0sL1tceGEyLVx4YTZceGE4XHhhOVx4YWNceGFlLVx4YjFceGI0XHhiOFx4ZDdceGY3XHUwMmMyLVx1MDJjNVx1MDJkMi1cdTAyZGZcdTAyZTUtXHUwMmViXHUwMmVkXHUwMmVmLVx1MDJmZlx1MDM3NVx1MDM4NFx1MDM4NVx1MDNmNlx1MDQ4Mlx1MDU4ZC1cdTA1OGZcdTA2MDYtXHUwNjA4XHUwNjBiXHUwNjBlXHUwNjBmXHUwNmRlXHUwNmU5XHUwNmZkXHUwNmZlXHUwN2Y2XHUwN2ZlXHUwN2ZmXHUwOWYyXHUwOWYzXHUwOWZhXHUwOWZiXHUwYWYxXHUwYjcwXHUwYmYzLVx1MGJmYVx1MGM3Zlx1MGQ0Zlx1MGQ3OVx1MGUzZlx1MGYwMS1cdTBmMDNcdTBmMTNcdTBmMTUtXHUwZjE3XHUwZjFhLVx1MGYxZlx1MGYzNFx1MGYzNlx1MGYzOFx1MGZiZS1cdTBmYzVcdTBmYzctXHUwZmNjXHUwZmNlXHUwZmNmXHUwZmQ1LVx1MGZkOFx1MTA5ZVx1MTA5Zlx1MTM5MC1cdTEzOTlcdTE2NmRcdTE3ZGJcdTE5NDBcdTE5ZGUtXHUxOWZmXHUxYjYxLVx1MWI2YVx1MWI3NC1cdTFiN2NcdTFmYmRcdTFmYmYtXHUxZmMxXHUxZmNkLVx1MWZjZlx1MWZkZC1cdTFmZGZcdTFmZWQtXHUxZmVmXHUxZmZkXHUxZmZlXHUyMDQ0XHUyMDUyXHUyMDdhLVx1MjA3Y1x1MjA4YS1cdTIwOGNcdTIwYTAtXHUyMGJmXHUyMTAwXHUyMTAxXHUyMTAzLVx1MjEwNlx1MjEwOFx1MjEwOVx1MjExNFx1MjExNi1cdTIxMThcdTIxMWUtXHUyMTIzXHUyMTI1XHUyMTI3XHUyMTI5XHUyMTJlXHUyMTNhXHUyMTNiXHUyMTQwLVx1MjE0NFx1MjE0YS1cdTIxNGRcdTIxNGZcdTIxOGFcdTIxOGJcdTIxOTAtXHUyMzA3XHUyMzBjLVx1MjMyOFx1MjMyYi1cdTI0MjZcdTI0NDAtXHUyNDRhXHUyNDljLVx1MjRlOVx1MjUwMC1cdTI3NjdcdTI3OTQtXHUyN2M0XHUyN2M3LVx1MjdlNVx1MjdmMC1cdTI5ODJcdTI5OTktXHUyOWQ3XHUyOWRjLVx1MjlmYlx1MjlmZS1cdTJiNzNcdTJiNzYtXHUyYjk1XHUyYjk3LVx1MmJmZlx1MmNlNS1cdTJjZWFcdTJlNTBcdTJlNTFcdTJlODAtXHUyZTk5XHUyZTliLVx1MmVmM1x1MmYwMC1cdTJmZDVcdTJmZjAtXHUyZmZiXHUzMDA0XHUzMDEyXHUzMDEzXHUzMDIwXHUzMDM2XHUzMDM3XHUzMDNlXHUzMDNmXHUzMDliXHUzMDljXHUzMTkwXHUzMTkxXHUzMTk2LVx1MzE5Zlx1MzFjMC1cdTMxZTNcdTMyMDAtXHUzMjFlXHUzMjJhLVx1MzI0N1x1MzI1MFx1MzI2MC1cdTMyN2ZcdTMyOGEtXHUzMmIwXHUzMmMwLVx1MzNmZlx1NGRjMC1cdTRkZmZcdWE0OTAtXHVhNGM2XHVhNzAwLVx1YTcxNlx1YTcyMFx1YTcyMVx1YTc4OVx1YTc4YVx1YTgyOC1cdWE4MmJcdWE4MzYtXHVhODM5XHVhYTc3LVx1YWE3OVx1YWI1Ylx1YWI2YVx1YWI2Ylx1ZmIyOVx1ZmJiMi1cdWZiYzFcdWZkZmNcdWZkZmRcdWZlNjJcdWZlNjQtXHVmZTY2XHVmZTY5XHVmZjA0XHVmZjBiXHVmZjFjLVx1ZmYxZVx1ZmYzZVx1ZmY0MFx1ZmY1Y1x1ZmY1ZVx1ZmZlMC1cdWZmZTZcdWZmZTgtXHVmZmVlXHVmZmZjXHVmZmZkXS9dfSksbi5sYW5ndWFnZXMucHVycz1uLmxhbmd1YWdlcy5wdXJlc2NyaXB0fXJldHVybiBEcH12YXIgTXAsZ0E7ZnVuY3Rpb24gVVcoKXtpZihnQSlyZXR1cm4gTXA7Z0E9MSxNcD1lLGUuZGlzcGxheU5hbWU9InB5dGhvbiIsZS5hbGlhc2VzPVsicHkiXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnB5dGhvbj17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sInN0cmluZy1pbnRlcnBvbGF0aW9uIjp7cGF0dGVybjovKD86ZnxmcnxyZikoPzooIiIifCcnJylbXHNcU10qP1wxfCgifCcpKD86XFwufCg/IVwyKVteXFxcclxuXSkqXDIpL2ksZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W157XSkoPzpce1x7KSopXHsoPyFceykoPzpbXnt9XXxceyg/IVx7KSg/Oltee31dfFx7KD8hXHspKD86W157fV0pK1x9KStcfSkrXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiZm9ybWF0LXNwZWMiOntwYXR0ZXJuOi8oOilbXjooKXt9XSsoPz1cfSQpLyxsb29rYmVoaW5kOiEwfSwiY29udmVyc2lvbi1vcHRpb24iOntwYXR0ZXJuOi8hW3NyYV0oPz1bOn1dJCkvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJlc3Q6bnVsbH19LHN0cmluZzovW1xzXFNdKy99fSwidHJpcGxlLXF1b3RlZC1zdHJpbmciOntwYXR0ZXJuOi8oPzpbcnViXXxicnxyYik/KCIiInwnJycpW1xzXFNdKj9cMS9pLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIn0sc3RyaW5nOntwYXR0ZXJuOi8oPzpbcnViXXxicnxyYik/KCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS9pLGdyZWVkeTohMH0sZnVuY3Rpb246e3BhdHRlcm46LygoPzpefFxzKWRlZlsgXHRdKylbYS16QS1aX11cdyooPz1ccypcKCkvZyxsb29rYmVoaW5kOiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYmNsYXNzXHMrKVx3Ky9pLGxvb2tiZWhpbmQ6ITB9LGRlY29yYXRvcjp7cGF0dGVybjovKF5bXHQgXSopQFx3Kyg/OlwuXHcrKSovbSxsb29rYmVoaW5kOiEwLGFsaWFzOlsiYW5ub3RhdGlvbiIsInB1bmN0dWF0aW9uIl0saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0sa2V5d29yZDovXGIoPzpfKD89XHMqOil8YW5kfGFzfGFzc2VydHxhc3luY3xhd2FpdHxicmVha3xjYXNlfGNsYXNzfGNvbnRpbnVlfGRlZnxkZWx8ZWxpZnxlbHNlfGV4Y2VwdHxleGVjfGZpbmFsbHl8Zm9yfGZyb218Z2xvYmFsfGlmfGltcG9ydHxpbnxpc3xsYW1iZGF8bWF0Y2h8bm9ubG9jYWx8bm90fG9yfHBhc3N8cHJpbnR8cmFpc2V8cmV0dXJufHRyeXx3aGlsZXx3aXRofHlpZWxkKVxiLyxidWlsdGluOi9cYig/Ol9faW1wb3J0X198YWJzfGFsbHxhbnl8YXBwbHl8YXNjaWl8YmFzZXN0cmluZ3xiaW58Ym9vbHxidWZmZXJ8Ynl0ZWFycmF5fGJ5dGVzfGNhbGxhYmxlfGNocnxjbGFzc21ldGhvZHxjbXB8Y29lcmNlfGNvbXBpbGV8Y29tcGxleHxkZWxhdHRyfGRpY3R8ZGlyfGRpdm1vZHxlbnVtZXJhdGV8ZXZhbHxleGVjZmlsZXxmaWxlfGZpbHRlcnxmbG9hdHxmb3JtYXR8ZnJvemVuc2V0fGdldGF0dHJ8Z2xvYmFsc3xoYXNhdHRyfGhhc2h8aGVscHxoZXh8aWR8aW5wdXR8aW50fGludGVybnxpc2luc3RhbmNlfGlzc3ViY2xhc3N8aXRlcnxsZW58bGlzdHxsb2NhbHN8bG9uZ3xtYXB8bWF4fG1lbW9yeXZpZXd8bWlufG5leHR8b2JqZWN0fG9jdHxvcGVufG9yZHxwb3d8cHJvcGVydHl8cmFuZ2V8cmF3X2lucHV0fHJlZHVjZXxyZWxvYWR8cmVwcnxyZXZlcnNlZHxyb3VuZHxzZXR8c2V0YXR0cnxzbGljZXxzb3J0ZWR8c3RhdGljbWV0aG9kfHN0cnxzdW18c3VwZXJ8dHVwbGV8dHlwZXx1bmljaHJ8dW5pY29kZXx2YXJzfHhyYW5nZXx6aXApXGIvLGJvb2xlYW46L1xiKD86RmFsc2V8Tm9uZXxUcnVlKVxiLyxudW1iZXI6L1xiMCg/OmIoPzpfP1swMV0pK3xvKD86Xz9bMC03XSkrfHgoPzpfP1thLWYwLTldKSspXGJ8KD86XGJcZCsoPzpfXGQrKSooPzpcLig/OlxkKyg/Ol9cZCspKik/KT98XEJcLlxkKyg/Ol9cZCspKikoPzplWystXT9cZCsoPzpfXGQrKSopP2o/KD8hXHcpL2ksb3BlcmF0b3I6L1stKyU9XT0/fCE9fDo9fFwqXCo/PT98XC9cLz89P3w8Wzw9Pl0/fD5bPT5dP3xbJnxefl0vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL30sdC5sYW5ndWFnZXMucHl0aG9uWyJzdHJpbmctaW50ZXJwb2xhdGlvbiJdLmluc2lkZS5pbnRlcnBvbGF0aW9uLmluc2lkZS5yZXN0PXQubGFuZ3VhZ2VzLnB5dGhvbix0Lmxhbmd1YWdlcy5weT10Lmxhbmd1YWdlcy5weXRob259cmV0dXJuIE1wfXZhciBQcCxoQTtmdW5jdGlvbiBCVygpe2lmKGhBKXJldHVybiBQcDtoQT0xLFBwPWUsZS5kaXNwbGF5TmFtZT0icSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMucT17c3RyaW5nOi8iKD86XFwufFteIlxcXHJcbl0pKiIvLGNvbW1lbnQ6W3twYXR0ZXJuOi8oW1x0IClcXX1dKVwvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58XHI/XG58XHIpXC9bXHQgXSooPzooPzpccj9cbnxccikoPzouKig/OlxyP1xufFxyKD8hXG4pKSkqPyg/OlxcKD89W1x0IF0qKD86XHI/XG58XHIpKXwkKXxcUy4qKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi9eXFxbXHQgXSooPzpccj9cbnxccilbXHNcU10rL20sZ3JlZWR5OiEwfSx7cGF0dGVybjovXiMhLisvbSxncmVlZHk6ITB9XSxzeW1ib2w6L2AoPzo6XFMrfFtcdy5dKikvLGRhdGV0aW1lOntwYXR0ZXJuOi8wTlttZHp1dnRdfDBXW2R0el18XGR7NH1cLlxkXGQoPzptfFwuXGRcZCg/OlQoPzpcZFxkKD86OlxkXGQoPzo6XGRcZCg/OlsuOl1cZFxkXGQpPyk/KT8pPyk/W2R6XT8pfFxkXGQ6XGRcZCg/OjpcZFxkKD86Wy46XVxkXGRcZCk/KT9bdXZ0XT8vLGFsaWFzOiJudW1iZXIifSxudW1iZXI6L1xiKD8hWzAxXTopKD86ME5baGplXT98MFdbaGpdP3wwW3duXXwweFtcZGEtZkEtRl0rfFxkKyg/OlwuXGQqKT8oPzplWystXT9cZCspP1toamZlYl0/KS8sa2V5d29yZDovXFxcdytcYnxcYig/OmFic3xhY29zfGFqMD98YWxsfGFuZHxhbnl8YXNjfGFzaW58YXNvZnxhdGFufGF0dHJ8YXZncz98Ymlucj98Ynl8Y2VpbGluZ3xjb2xzfGNvcnxjb3N8Y291bnR8Y292fGNyb3NzfGNzdnxjdXR8ZGVsZXRlfGRlbHRhc3xkZXNjfGRldnxkaWZmZXJ8ZGlzdGluY3R8ZGl2fGRvfGRzYXZlfGVqfGVubGlzdHxldmFsfGV4Y2VwdHxleGVjfGV4aXR8ZXhwfGZieXxmaWxsc3xmaXJzdHxma2V5c3xmbGlwfGZsb29yfGZyb218Z2V0fGdldGVudnxncm91cHxndGltZXxoY2xvc2V8aGNvdW50fGhkZWx8aG9wZW58aHN5bXxpYXNjfGlkZW50aXR5fGlkZXNjfGlmfGlqfGlufGluc2VydHxpbnRlcnxpbnZ8a2V5cz98bGFzdHxsaWtlfGxpc3R8bGpmP3xsb2FkfGxvZ3xsb3dlcnxsc3F8bHRpbWV8bHRyaW18bWF2Z3xtYXhzP3xtY291bnR8bWQ1fG1kZXZ8bWVkfG1ldGF8bWlucz98bW1heHxtbWlufG1tdXxtb2R8bXN1bXxuZWd8bmV4dHxub3R8bnVsbHxvcnxvdmVyfHBhcnNlfHBlYWNofHBqfHBsaXN0fHByZHM/fHByZXZ8cHJpb3J8cmFuZHxyYW5rfHJhdGlvc3xyYXplfHJlYWQwfHJlYWQxfHJlY2lwcm9jYWx8cmV2YWx8cmV2ZXJzZXxybG9hZHxyb3RhdGV8cnNhdmV8cnRyaW18c2F2ZXxzY2FufHNjb3Z8c2RldnxzZWxlY3R8c2V0fHNldGVudnxzaG93fHNpZ251bXxzaW58c3FydHxzc3I/fHN0cmluZ3xzdWJsaXN0fHN1bXM/fHN2fHN2YXJ8c3lzdGVtfHRhYmxlc3x0YW58dGlsfHRyaW18dHhmfHR5cGV8dWp8dW5ncm91cHx1bmlvbnx1cGRhdGV8dXBwZXJ8dXBzZXJ0fHZhbHVlfHZhcnx2aWV3cz98dnN8d2F2Z3x3aGVyZXx3aGlsZXx3aXRoaW58d2oxP3x3c3VtfHd3fHhhc2N8eGJhcnx4Y29scz98eGRlc2N8eGV4cHx4Z3JvdXB8eGtleXx4bG9nfHhwcmV2fHhyYW5rKVxiLyxhZHZlcmI6e3BhdHRlcm46L1snXC9cXF06P3xcYmVhY2hcYi8sYWxpYXM6ImZ1bmN0aW9uIn0sdmVyYjp7cGF0dGVybjovKD86XEJcLlxCfFxiWzAxXTp8PFs9Pl0/fD49P3xbOitcLSolLCE/fj18JCYjQF5dKTo/fFxiX1xiOj8vLGFsaWFzOiJvcGVyYXRvciJ9LHB1bmN0dWF0aW9uOi9bKCl7fVxbXF07Ll0vfX1yZXR1cm4gUHB9dmFyIEZwLGJBO2Z1bmN0aW9uICRXKCl7aWYoYkEpcmV0dXJuIEZwO2JBPTEsRnA9ZSxlLmRpc3BsYXlOYW1lPSJxbWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtmb3IodmFyIHI9LyIoPzpcXC58W15cXCJcclxuXSkqInwnKD86XFwufFteXFwnXHJcbl0pKicvLnNvdXJjZSxhPS9cL1wvLiooPyEuKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcLy8uc291cmNlLGk9Lyg/OlteXFwoKVtcXXt9IicvXXw8c3RyaW5nPnxcLyg/IVsqL10pfDxjb21tZW50PnxcKDxleHByPipcKXxcWzxleHByPipcXXxcezxleHByPipcfXxcXFtcc1xTXSkvLnNvdXJjZS5yZXBsYWNlKC88c3RyaW5nPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KS5yZXBsYWNlKC88Y29tbWVudD4vZyxmdW5jdGlvbigpe3JldHVybiBhfSksbz0wO288MjtvKyspaT1pLnJlcGxhY2UoLzxleHByPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTtpPWkucmVwbGFjZSgvPGV4cHI+L2csIlteXFxzXFxTXSIpLG4ubGFuZ3VhZ2VzLnFtbD17Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLGdyZWVkeTohMH0sImphdmFzY3JpcHQtZnVuY3Rpb24iOntwYXR0ZXJuOlJlZ0V4cCgvKCg/Ol58OylbIFx0XSopZnVuY3Rpb25ccysoPyFccylbXyRhLXpBLVpceEEwLVx1RkZGRl0oPzooPyFccylbJFx3XHhBMC1cdUZGRkZdKSpccypcKDxqcz4qXClccypcezxqcz4qXH0vLnNvdXJjZS5yZXBsYWNlKC88anM+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pLCJtIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6Imxhbmd1YWdlLWphdmFzY3JpcHQiLGluc2lkZTpuLmxhbmd1YWdlcy5qYXZhc2NyaXB0fSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LygoPzpefFs6O10pWyBcdF0qKSg/IVxkKVx3Kyg/PVsgXHRdKlx7fFsgXHRdK29uXGIpL20sbG9va2JlaGluZDohMH0scHJvcGVydHk6W3twYXR0ZXJuOi8oKD86XnxbO3tdKVsgXHRdKikoPyFcZClcdysoPzpcLlx3KykqKD89WyBcdF0qOikvbSxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKCg/Ol58Wzt7XSlbIFx0XSopcHJvcGVydHlbIFx0XSsoPyFcZClcdysoPzpcLlx3KykqWyBcdF0rKD8hXGQpXHcrKD86XC5cdyspKig/PVsgXHRdKjopL20sbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6L15wcm9wZXJ0eS8scHJvcGVydHk6L1x3Kyg/OlwuXHcrKSovfX1dLCJqYXZhc2NyaXB0LWV4cHJlc3Npb24iOntwYXR0ZXJuOlJlZ0V4cCgvKDpbIFx0XSopKD8hW1xzO31bXSkoPzooPyEkfFs7fV0pPGpzPikrLy5zb3VyY2UucmVwbGFjZSgvPGpzPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSwibSIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJsYW5ndWFnZS1qYXZhc2NyaXB0IixpbnNpZGU6bi5sYW5ndWFnZXMuamF2YXNjcmlwdH0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphc3xpbXBvcnR8b24pXGIvLHB1bmN0dWF0aW9uOi9be31bXF06OyxdL319KSh0KX1yZXR1cm4gRnB9dmFyIFVwLHlBO2Z1bmN0aW9uIHpXKCl7aWYoeUEpcmV0dXJuIFVwO3lBPTEsVXA9ZSxlLmRpc3BsYXlOYW1lPSJxb3JlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5xb3JlPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfCg/OlwvXC98IykuKikvLGxvb2tiZWhpbmQ6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXFtcc1xTXXwoPyFcMSlbXlxcXSkqXDEvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhbnl8YXNzZXJ0fGJpbmFyeXxib29sfGJvb2xlYW58YnJlYWt8Ynl0ZXxjYXNlfGNhdGNofGNoYXJ8Y2xhc3N8Y29kZXxjb25zdHxjb250aW51ZXxkYXRhfGRlZmF1bHR8ZG98ZG91YmxlfGVsc2V8ZW51bXxleHRlbmRzfGZpbmFsfGZpbmFsbHl8ZmxvYXR8Zm9yfGdvdG98aGFzaHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbmhlcml0c3xpbnN0YW5jZW9mfGludHxpbnRlcmZhY2V8bG9uZ3xteXxuYXRpdmV8bmV3fG5vdGhpbmd8bnVsbHxvYmplY3R8b3VyfG93bnxwcml2YXRlfHJlZmVyZW5jZXxyZXRocm93fHJldHVybnxzaG9ydHxzb2Z0KD86Ym9vbHxkYXRlfGZsb2F0fGludHxsaXN0fG51bWJlcnxzdHJpbmcpfHN0YXRpY3xzdHJpY3RmcHxzdHJpbmd8c3VifHN1cGVyfHN3aXRjaHxzeW5jaHJvbml6ZWR8dGhpc3x0aHJvd3x0aHJvd3N8dHJhbnNpZW50fHRyeXx2b2lkfHZvbGF0aWxlfHdoaWxlKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxmdW5jdGlvbjovXCQ/XGIoPyFcZClcdysoPz1cKCkvLG51bWJlcjovXGIoPzowYlswMV0rfDB4KD86W1xkYS1mXSpcLik/W1xkYS1mcFwtXSt8KD86XGQrKD86XC5cZCspP3xcLlxkKykoPzplXGQrKT9bZGZdfCg/OlxkKyg/OlwuXGQrKT98XC5cZCspKVxiL2ksb3BlcmF0b3I6e3BhdHRlcm46LyhefFteLl0pKD86XCtbKz1dP3wtWy09XT98WyE9XSg/Oj09P3x+KT98Pj4/PT98PCg/Oj0+P3w8PT8pP3wmWyY9XT98XHxbfD1dP3xbKlwvJV5dPT98W34/XSkvLGxvb2tiZWhpbmQ6ITB9LHZhcmlhYmxlOi9cJCg/IVxkKVx3K1xiL30pfXJldHVybiBVcH12YXIgQnAsdkE7ZnVuY3Rpb24galcoKXtpZih2QSlyZXR1cm4gQnA7dkE9MSxCcD1lLGUuZGlzcGxheU5hbWU9InFzaGFycCIsZS5hbGlhc2VzPVsicXMiXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtmdW5jdGlvbiByKHksYil7cmV0dXJuIHkucmVwbGFjZSgvPDwoXGQrKT4+L2csZnVuY3Rpb24oQSxoKXtyZXR1cm4iKD86IitiWytoXSsiKSJ9KX1mdW5jdGlvbiBhKHksYixBKXtyZXR1cm4gUmVnRXhwKHIoeSxiKSwiIil9ZnVuY3Rpb24gaSh5LGIpe2Zvcih2YXIgQT0wO0E8YjtBKyspeT15LnJlcGxhY2UoLzw8c2VsZj4+L2csZnVuY3Rpb24oKXtyZXR1cm4iKD86Iit5KyIpIn0pO3JldHVybiB5LnJlcGxhY2UoLzw8c2VsZj4+L2csIlteXFxzXFxTXSIpfXZhciBvPXt0eXBlOiJBZGogQmlnSW50IEJvb2wgQ3RsIERvdWJsZSBmYWxzZSBJbnQgT25lIFBhdWxpIFBhdWxpSSBQYXVsaVggUGF1bGlZIFBhdWxpWiBRdWJpdCBSYW5nZSBSZXN1bHQgU3RyaW5nIHRydWUgVW5pdCBaZXJvIixvdGhlcjoiQWRqb2ludCBhZGpvaW50IGFwcGx5IGFzIGF1dG8gYm9keSBib3Jyb3cgYm9ycm93aW5nIENvbnRyb2xsZWQgY29udHJvbGxlZCBkaXN0cmlidXRlIGVsaWYgZWxzZSBmYWlsIGZpeHVwIGZvciBmdW5jdGlvbiBpZiBpbiBpbnRlcm5hbCBpbnRyaW5zaWMgaW52ZXJ0IGlzIGxldCBtdXRhYmxlIG5hbWVzcGFjZSBuZXcgbmV3dHlwZSBvcGVuIG9wZXJhdGlvbiByZXBlYXQgcmV0dXJuIHNlbGYgc2V0IHVudGlsIHVzZSB1c2luZyB3aGlsZSB3aXRoaW4ifTtmdW5jdGlvbiBzKHkpe3JldHVybiJcXGIoPzoiK3kudHJpbSgpLnJlcGxhY2UoLyAvZywifCIpKyIpXFxiIn12YXIgbD1SZWdFeHAocyhvLnR5cGUrIiAiK28ub3RoZXIpKSx1PS9cYltBLVphLXpfXVx3KlxiLy5zb3VyY2UsYz1yKC88PDA+Pig/OlxzKlwuXHMqPDwwPj4pKi8uc291cmNlLFt1XSksZD17a2V5d29yZDpsLHB1bmN0dWF0aW9uOi9bPD4oKT8sLjpbXF1dL30scD0vIig/OlxcLnxbXlxcIl0pKiIvLnNvdXJjZTtuLmxhbmd1YWdlcy5xc2hhcnA9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2NvbW1lbnQ6L1wvXC8uKi8sc3RyaW5nOlt7cGF0dGVybjphKC8oXnxbXiRcXF0pPDwwPj4vLnNvdXJjZSxbcF0pLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjphKC8oXGIoPzphc3xvcGVuKVxzKyk8PDA+Pig/PVxzKig/Ojt8YXNcYikpLy5zb3VyY2UsW2NdKSxsb29rYmVoaW5kOiEwLGluc2lkZTpkfSx7cGF0dGVybjphKC8oXGJuYW1lc3BhY2VccyspPDwwPj4oPz1ccypceykvLnNvdXJjZSxbY10pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOmR9XSxrZXl3b3JkOmwsbnVtYmVyOi8oPzpcYjAoPzp4W1xkYS1mXSt8YlswMV0rfG9bMC03XSspfCg/OlxCXC5cZCt8XGJcZCsoPzpcLlxkKik/KSg/OmVbLStdP1xkKyk/KWw/XGIvaSxvcGVyYXRvcjovXGJhbmQ9fFxib3I9fFxiYW5kXGJ8XGJub3RcYnxcYm9yXGJ8PFstPV18Wy09XT58Pj4+PT98PDw8PT98XF5cXlxePT98XHxcfFx8PT98JiYmPT98d1wvPT98fn5+fFsqXC8rXC1ePSElXT0/LyxwdW5jdHVhdGlvbjovOjp8W3t9W1xdOygpLC46XS99KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInFzaGFycCIsIm51bWJlciIse3JhbmdlOntwYXR0ZXJuOi9cLlwuLyxhbGlhczoib3BlcmF0b3IifX0pO3ZhciBmPWkocigvXHsoPzpbXiJ7fV18PDwwPj58PDxzZWxmPj4pKlx9Ly5zb3VyY2UsW3BdKSwyKTtuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInFzaGFycCIsInN0cmluZyIseyJpbnRlcnBvbGF0aW9uLXN0cmluZyI6e3BhdHRlcm46YSgvXCQiKD86XFwufDw8MD4+fFteXFwie10pKiIvLnNvdXJjZSxbZl0pLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46YSgvKCg/Ol58W15cXF0pKD86XFxcXCkqKTw8MD4+Ly5zb3VyY2UsW2ZdKSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L15ce3xcfSQvLGV4cHJlc3Npb246e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1xc2hhcnAiLGluc2lkZTpuLmxhbmd1YWdlcy5xc2hhcnB9fX0sc3RyaW5nOi9bXHNcU10rL319fSl9KSh0KSx0Lmxhbmd1YWdlcy5xcz10Lmxhbmd1YWdlcy5xc2hhcnB9cmV0dXJuIEJwfXZhciAkcCxFQTtmdW5jdGlvbiBHVygpe2lmKEVBKXJldHVybiAkcDtFQT0xLCRwPWUsZS5kaXNwbGF5TmFtZT0iciIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMucj17Y29tbWVudDovIy4qLyxzdHJpbmc6e3BhdHRlcm46LyhbJyJdKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxncmVlZHk6ITB9LCJwZXJjZW50LW9wZXJhdG9yIjp7cGF0dGVybjovJVteJVxzXSolLyxhbGlhczoib3BlcmF0b3IifSxib29sZWFuOi9cYig/OkZBTFNFfFRSVUUpXGIvLGVsbGlwc2lzOi9cLlwuKD86XC58XGQrKS8sbnVtYmVyOlsvXGIoPzpJbmZ8TmFOKVxiLywvKD86XGIweFtcZEEtRmEtZl0rKD86XC5cZCopP3xcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRWVQcF1bKy1dP1xkKyk/W2lMXT8vXSxrZXl3b3JkOi9cYig/Ok5BfE5BX2NoYXJhY3Rlcl98TkFfY29tcGxleF98TkFfaW50ZWdlcl98TkFfcmVhbF98TlVMTHxicmVha3xlbHNlfGZvcnxmdW5jdGlvbnxpZnxpbnxuZXh0fHJlcGVhdHx3aGlsZSlcYi8sb3BlcmF0b3I6Ly0+Pz4/fDwoPzo9fDw/LSk/fFs+PSFdPT98Ojo/fCYmP3xcfFx8P3xbKypcL14kQH5dLyxwdW5jdHVhdGlvbjovWygpe31cW1xdLDtdL319cmV0dXJuICRwfXZhciB6cCxTQTtmdW5jdGlvbiBxVygpe2lmKFNBKXJldHVybiB6cDtTQT0xO3ZhciBlPVViKCk7enA9dCx0LmRpc3BsYXlOYW1lPSJyYWNrZXQiLHQuYWxpYXNlcz1bInJrdCJdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxuLmxhbmd1YWdlcy5yYWNrZXQ9bi5sYW5ndWFnZXMuZXh0ZW5kKCJzY2hlbWUiLHsibGFtYmRhLXBhcmFtZXRlciI6e3BhdHRlcm46LyhbKFxbXWxhbWJkYVxzK1soXFtdKVteKClcW1xdJ1xzXSsvLGxvb2tiZWhpbmQ6ITB9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJyYWNrZXQiLCJzdHJpbmciLHtsYW5nOntwYXR0ZXJuOi9eI2xhbmcuKy9tLGdyZWVkeTohMCxhbGlhczoia2V5d29yZCJ9fSksbi5sYW5ndWFnZXMucmt0PW4ubGFuZ3VhZ2VzLnJhY2tldH1yZXR1cm4genB9dmFyIGpwLHdBO2Z1bmN0aW9uIFZXKCl7aWYod0EpcmV0dXJuIGpwO3dBPTEsanA9ZSxlLmRpc3BsYXlOYW1lPSJyZWFzb24iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnJlYXNvbj10Lmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7c3RyaW5nOntwYXR0ZXJuOi8iKD86XFwoPzpcclxufFtcc1xTXSl8W15cXFxyXG4iXSkqIi8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6L1xiW0EtWl1cdyovLGtleXdvcmQ6L1xiKD86YW5kfGFzfGFzc2VydHxiZWdpbnxjbGFzc3xjb25zdHJhaW50fGRvfGRvbmV8ZG93bnRvfGVsc2V8ZW5kfGV4Y2VwdGlvbnxleHRlcm5hbHxmb3J8ZnVufGZ1bmN0aW9ufGZ1bmN0b3J8aWZ8aW58aW5jbHVkZXxpbmhlcml0fGluaXRpYWxpemVyfGxhenl8bGV0fG1ldGhvZHxtb2R1bGV8bXV0YWJsZXxuZXd8bm9ucmVjfG9iamVjdHxvZnxvcGVufG9yfHByaXZhdGV8cmVjfHNpZ3xzdHJ1Y3R8c3dpdGNofHRoZW58dG98dHJ5fHR5cGV8dmFsfHZpcnR1YWx8d2hlbnx3aGlsZXx3aXRoKVxiLyxvcGVyYXRvcjovXC57M318Ols6PV18XHw+fC0+fD0oPzo9PT98Pik/fDw9P3w+PT98W3xePycjIX5gXXxbK1wtKlwvXVwuP3xcYig/OmFzcnxsYW5kfGxvcnxsc2x8bHNyfGx4b3J8bW9kKVxiL30pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicmVhc29uIiwiY2xhc3MtbmFtZSIse2NoYXI6e3BhdHRlcm46LycoPzpcXHhbXGRhLWZdezJ9fFxcb1swLTNdWzAtN11bMC03XXxcXFxkezN9fFxcLnxbXidcXFxyXG5dKScvLGdyZWVkeTohMH0sY29uc3RydWN0b3I6L1xiW0EtWl1cdypcYig/IVxzKlwuKS8sbGFiZWw6e3BhdHRlcm46L1xiW2Etel1cdyooPz06OikvLGFsaWFzOiJzeW1ib2wifX0pLGRlbGV0ZSB0Lmxhbmd1YWdlcy5yZWFzb24uZnVuY3Rpb259cmV0dXJuIGpwfXZhciBHcCxUQTtmdW5jdGlvbiBIVygpe2lmKFRBKXJldHVybiBHcDtUQT0xLEdwPWUsZS5kaXNwbGF5TmFtZT0icmVnZXgiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj17cGF0dGVybjovXFxbXFwoKXt9W1xdXiQrKj98Ll0vLGFsaWFzOiJlc2NhcGUifSxhPS9cXCg/OnhbXGRhLWZBLUZdezJ9fHVbXGRhLWZBLUZdezR9fHVce1tcZGEtZkEtRl0rXH18MFswLTddezAsMn18WzEyM11bMC03XXsyfXxjW2EtekEtWl18LikvLGk9e3BhdHRlcm46L1wufFxcW3dzZF18XFxwXHtbXnt9XStcfS9pLGFsaWFzOiJjbGFzcy1uYW1lIn0sbz17cGF0dGVybjovXFxbd3NkXXxcXHBce1tee31dK1x9L2ksYWxpYXM6ImNsYXNzLW5hbWUifSxzPSIoPzpbXlxcXFwtXXwiK2Euc291cmNlKyIpIixsPVJlZ0V4cChzKyItIitzKSx1PXtwYXR0ZXJuOi8oPHwnKVtePD4nXSsoPz1bPiddJCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InZhcmlhYmxlIn07bi5sYW5ndWFnZXMucmVnZXg9eyJjaGFyLWNsYXNzIjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFxcXCkqKVxbKD86W15cXFxdXXxcXFtcc1xTXSkqXF0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiY2hhci1jbGFzcy1uZWdhdGlvbiI6e3BhdHRlcm46LyheXFspXF4vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0sImNoYXItY2xhc3MtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXFt8XF0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxyYW5nZTp7cGF0dGVybjpsLGluc2lkZTp7ZXNjYXBlOmEsInJhbmdlLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovLS8sYWxpYXM6Im9wZXJhdG9yIn19fSwic3BlY2lhbC1lc2NhcGUiOnIsImNoYXItc2V0IjpvLGVzY2FwZTphfX0sInNwZWNpYWwtZXNjYXBlIjpyLCJjaGFyLXNldCI6aSxiYWNrcmVmZXJlbmNlOlt7cGF0dGVybjovXFwoPyFbMTIzXVswLTddezJ9KVsxLTldLyxhbGlhczoia2V5d29yZCJ9LHtwYXR0ZXJuOi9cXGs8W148PiddKz4vLGFsaWFzOiJrZXl3b3JkIixpbnNpZGU6eyJncm91cC1uYW1lIjp1fX1dLGFuY2hvcjp7cGF0dGVybjovWyReXXxcXFtBQmJHWnpdLyxhbGlhczoiZnVuY3Rpb24ifSxlc2NhcGU6YSxncm91cDpbe3BhdHRlcm46L1woKD86XD8oPzo8W148PiddKz58J1tePD4nXSsnfFs+Ol18PD9bPSFdfFtpZG1uc3V4VV0rKD86LVtpZG1uc3V4VV0rKT86PykpPy8sYWxpYXM6InB1bmN0dWF0aW9uIixpbnNpZGU6eyJncm91cC1uYW1lIjp1fX0se3BhdHRlcm46L1wpLyxhbGlhczoicHVuY3R1YXRpb24ifV0scXVhbnRpZmllcjp7cGF0dGVybjovKD86WysqP118XHtcZCsoPzosXGQqKT9cfSlbPytdPy8sYWxpYXM6Im51bWJlciJ9LGFsdGVybmF0aW9uOntwYXR0ZXJuOi9cfC8sYWxpYXM6ImtleXdvcmQifX19KSh0KX1yZXR1cm4gR3B9dmFyIHFwLGtBO2Z1bmN0aW9uIFdXKCl7aWYoa0EpcmV0dXJuIHFwO2tBPTEscXA9ZSxlLmRpc3BsYXlOYW1lPSJyZWdvIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5yZWdvPXtjb21tZW50Oi8jLiovLHByb3BlcnR5OntwYXR0ZXJuOi8oXnxbXlxcLl0pKD86Iig/OlxcLnxbXlxcIlxyXG5dKSoifGBbXmBdKmB8XGJbYS16X11cdypcYikoPz1ccyo6KD8hPSkpL2ksbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKF58W15cXF0pIig/OlxcLnxbXlxcIlxyXG5dKSoifGBbXmBdKmAvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxrZXl3b3JkOi9cYig/OmFzfGRlZmF1bHR8ZWxzZXxpbXBvcnR8bm90fG51bGx8cGFja2FnZXxzZXQoPz1ccypcKCl8c29tZXx3aXRoKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGZ1bmN0aW9uOntwYXR0ZXJuOi9cYlthLXpfXVx3KlxiKD86XHMqXC5ccypcYlthLXpfXVx3KlxiKSooPz1ccypcKCkvaSxpbnNpZGU6e25hbWVzcGFjZTovXGJcdytcYig/PVxzKlwuKS8scHVuY3R1YXRpb246L1wuL319LG51bWJlcjovLT9cYlxkKyg/OlwuXGQrKT8oPzplWystXT9cZCspP1xiL2ksb3BlcmF0b3I6L1stKyovJXwmXXxbPD46PV09P3whPXxcYl9cYi8scHVuY3R1YXRpb246L1ssOy5cW1xde30oKV0vfX1yZXR1cm4gcXB9dmFyIFZwLEFBO2Z1bmN0aW9uIFlXKCl7aWYoQUEpcmV0dXJuIFZwO0FBPTEsVnA9ZSxlLmRpc3BsYXlOYW1lPSJyZW5weSIsZS5hbGlhc2VzPVsicnB5Il07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5yZW5weT17Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pIy4rLyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6e3BhdHRlcm46LygiIiJ8JycnKVtcc1xTXSs/XDF8KCJ8JykoPzpcXC58KD8hXDIpW15cXF0pKlwyfCg/Ol4jPyg/Oig/OlswLTlhLWZBLUZdKXszfXxbMC05YS1mQS1GXXs2fSkkKS9tLGdyZWVkeTohMH0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XCgpL2kscHJvcGVydHk6L1xiKD86VXBkYXRlfFVwZGF0ZVZlcnNpb258YWN0aW9ufGFjdGl2YXRlX3NvdW5kfGFkdl9udmxfdHJhbnNpdGlvbnxhZnRlcl9sb2FkX3RyYW5zaXRpb258YWxpZ258YWxwaGF8YWx0fGFuY2hvcnxhbnRpYWxpYXN8YXJlYXxhdXRvfGJhY2tncm91bmR8YmFyX2ludmVydHxiYXJfcmVzaXppbmd8YmFyX3ZlcnRpY2FsfGJsYWNrX2NvbG9yfGJvbGR8Ym90dG9tX2Jhcnxib3R0b21fZ3V0dGVyfGJvdHRvbV9tYXJnaW58Ym90dG9tX3BhZGRpbmd8Ym94X3JldmVyc2V8Ym94X3dyYXB8Y2FuX3VwZGF0ZXxjYXJldHxjaGlsZHxjb2xvcnxjcm9wfGRlZmF1bHRfYWZtX2VuYWJsZXxkZWZhdWx0X2FmbV90aW1lfGRlZmF1bHRfZnVsbHNjcmVlbnxkZWZhdWx0X3RleHRfY3BzfGRldmVsb3BlcnxkaXJlY3RvcnlfbmFtZXxkcmFnX2hhbmRsZXxkcmFnX2pvaW5lZHxkcmFnX25hbWV8ZHJhZ19yYWlzZXxkcmFnZ2FibGV8ZHJhZ2dlZHxkcm9wX3NoYWRvd3xkcm9wX3NoYWRvd19jb2xvcnxkcm9wcGFibGV8ZHJvcHBlZHxlYXNlaW58ZWFzZW91dHxlZGdlc2Nyb2xsfGVuZF9nYW1lX3RyYW5zaXRpb258ZW5kX3NwbGFzaF90cmFuc2l0aW9ufGVudGVyX3JlcGxheV90cmFuc2l0aW9ufGVudGVyX3NvdW5kfGVudGVyX3RyYW5zaXRpb258ZW50ZXJfeWVzbm9fdHJhbnNpdGlvbnxleGVjdXRhYmxlX25hbWV8ZXhpdF9yZXBsYXlfdHJhbnNpdGlvbnxleGl0X3NvdW5kfGV4aXRfdHJhbnNpdGlvbnxleGl0X3llc25vX3RyYW5zaXRpb258ZmFkZWlufGZhZGVvdXR8Zmlyc3RfaW5kZW50fGZpcnN0X3NwYWNpbmd8Zml0X2ZpcnN0fGZvY3VzfGZvY3VzX21hc2t8Zm9udHxmb3JlZ3JvdW5kfGdhbWVfbWFpbl90cmFuc2l0aW9ufGdldF9pbnN0YWxsZWRfcGFja2FnZXN8Z29vZ2xlX3BsYXlfa2V5fGdvb2dsZV9wbGF5X3NhbHR8Z3JvdW5kfGhhc19tdXNpY3xoYXNfc291bmR8aGFzX3ZvaWNlfGhlaWdodHxoZWxwfGhpbnRpbmd8aG92ZXJ8aG92ZXJfYmFja2dyb3VuZHxob3Zlcl9jb2xvcnxob3Zlcl9zb3VuZHxob3ZlcmVkfGh5cGVybGlua19mdW5jdGlvbnN8aWRsZXxpZGxlX2NvbG9yfGltYWdlX3N0eWxlfGluY2x1ZGVfdXBkYXRlfGluc2Vuc2l0aXZlfGluc2Vuc2l0aXZlX2JhY2tncm91bmR8aW5zZW5zaXRpdmVfY29sb3J8aW5zaWRlfGludHJhX3RyYW5zaXRpb258aXRhbGljfGp1c3RpZnl8a2VybmluZ3xrZXlib2FyZF9mb2N1c3xsYW5ndWFnZXxsYXllcl9jbGlwcGluZ3xsYXllcnN8bGF5b3V0fGxlZnRfYmFyfGxlZnRfZ3V0dGVyfGxlZnRfbWFyZ2lufGxlZnRfcGFkZGluZ3xsZW5ndGh8bGluZV9sZWFkaW5nfGxpbmVfb3ZlcmxhcF9zcGxpdHxsaW5lX3NwYWNpbmd8bGluZWFyfG1haW5fZ2FtZV90cmFuc2l0aW9ufG1haW5fbWVudV9tdXNpY3xtYXhpbXVtfG1pbl93aWR0aHxtaW5pbXVtfG1pbndpZHRofG1vZGFsfG1vdXNlfG1vdXNld2hlZWx8bmFtZXxuYXJyYXRvcl9tZW51fG5ld2xpbmVfaW5kZW50fG52bF9hZHZfdHJhbnNpdGlvbnxvZmZzZXR8b3JkZXJfcmV2ZXJzZXxvdXRsaW5lc3xvdmVybGF5X2Z1bmN0aW9uc3xwb3N8cG9zaXRpb258cHJlZml4fHJhZGl1c3xyYW5nZXxyZXN0X2luZGVudHxyaWdodF9iYXJ8cmlnaHRfZ3V0dGVyfHJpZ2h0X21hcmdpbnxyaWdodF9wYWRkaW5nfHJvdGF0ZXxyb3RhdGVfcGFkfHJ1Ynlfc3R5bGV8c2FtcGxlX3NvdW5kfHNhdmVfZGlyZWN0b3J5fHNheV9hdHRyaWJ1dGVfdHJhbnNpdGlvbnxzY3JlZW5faGVpZ2h0fHNjcmVlbl93aWR0aHxzY3JvbGxiYXJzfHNlbGVjdGVkX2hvdmVyfHNlbGVjdGVkX2hvdmVyX2NvbG9yfHNlbGVjdGVkX2lkbGV8c2VsZWN0ZWRfaWRsZV9jb2xvcnxzZWxlY3RlZF9pbnNlbnNpdGl2ZXxzaG93X3NpZGVfaW1hZ2V8c2hvd190d29fd2luZG93fHNpZGVfc3BhY2luZ3xzaWRlX3hwb3N8c2lkZV95cG9zfHNpemV8c2l6ZV9ncm91cHxzbG93X2Nwc3xzbG93X2Nwc19tdWx0aXBsaWVyfHNwYWNpbmd8c3RyaWtldGhyb3VnaHxzdWJwaXhlbHx0ZXh0X2FsaWdufHRleHRfc3R5bGV8dGV4dF94cG9zfHRleHRfeV9mdWRnZXx0ZXh0X3lwb3N8dGh1bWJ8dGh1bWJfb2Zmc2V0fHRodW1iX3NoYWRvd3x0aHVtYm5haWxfaGVpZ2h0fHRodW1ibmFpbF93aWR0aHx0aW1lfHRvcF9iYXJ8dG9wX2d1dHRlcnx0b3BfbWFyZ2lufHRvcF9wYWRkaW5nfHRyYW5zbGF0aW9uc3x1bmRlcmxpbmV8dW5zY3JvbGxhYmxlfHVwZGF0ZXx2YWx1ZXx2ZXJzaW9ufHZlcnNpb25fbmFtZXx2ZXJzaW9uX3R1cGxlfHZlcnRpY2FsfHdpZHRofHdpbmRvd19oaWRlX3RyYW5zaXRpb258d2luZG93X2ljb258d2luZG93X2xlZnRfcGFkZGluZ3x3aW5kb3dfc2hvd190cmFuc2l0aW9ufHdpbmRvd190aXRsZXx3aW5kb3dzX2ljb258eGFkanVzdG1lbnR8eGFsaWdufHhhbmNob3J8eGFuY2hvcmFyb3VuZHx4YXJvdW5kfHhjZW50ZXJ8eGZpbGx8eGluaXRpYWx8eG1hcmdpbnx4bWF4aW11bXx4bWluaW11bXx4b2Zmc2V0fHhvZnNzZXR8eHBhZGRpbmd8eHBvc3x4c2l6ZXx4em9vbXx5YWRqdXN0bWVudHx5YWxpZ258eWFuY2hvcnx5YW5jaG9yYXJvdW5kfHlhcm91bmR8eWNlbnRlcnx5ZmlsbHx5aW5pdGlhbHx5bWFyZ2lufHltYXhpbXVtfHltaW5pbXVtfHlvZmZzZXR8eXBhZGRpbmd8eXBvc3x5c2l6ZXx5c2l6ZXh5c2l6ZXx5em9vbXx6b29tfHpvcmRlcilcYi8sdGFnOi9cYig/OmJhcnxibG9ja3xidXR0b258YnV0dG9zY3JlZW5ufGRyYWd8ZHJhZ2dyb3VwfGZpeGVkfGZyYW1lfGdyaWR8W2h2XWJveHxob3RiYXJ8aG90c3BvdHxpbWFnZXxpbWFnZWJ1dHRvbnxpbWFnZW1hcHxpbnB1dHxrZXl8bGFiZWx8bWVudXxtbV9tZW51X2ZyYW1lfG1vdXNlYXJlYXxudmx8cGFyYWxsZWx8c2NyZWVufHNlbGZ8c2lkZXx0YWd8dGV4dHx0ZXh0YnV0dG9ufHRpbWVyfHZiYXJ8dmlld3BvcnR8d2luZG93KVxifFwkLyxrZXl3b3JkOi9cYig/Ok5vbmV8YWRkfGFkanVzdG1lbnR8YWxpZ25hcm91bmR8YWxsb3d8YW5nbGV8YW5pbWF0aW9ufGFyb3VuZHxhc3xhc3NlcnR8YmVoaW5kfGJveF9sYXlvdXR8YnJlYWt8YnVpbGR8Y2FjaGV8Y2FsbHxjZW50ZXJ8Y2hhbmdlZHxjaGlsZF9zaXplfGNob2ljZXxjaXJjbGVzfGNsYXNzfGNsZWFyfGNsaWNrZWR8Y2xpcHBpbmd8Y2xvY2t3aXNlfGNvbmZpZ3xjb250YWluc3xjb250aW51ZXxjb3JuZXIxfGNvcm5lcjJ8Y291bnRlcmNsb2Nrd2lzZXxkZWZ8ZGVmYXVsdHxkZWZpbmV8ZGVsfGRlbGF5fGRpc2FibGVkfGRpc2FibGVkX3RleHR8ZGlzc29sdmV8ZWxpZnxlbHNlfGV2ZW50fGV4Y2VwdHxleGNsdWRlfGV4ZWN8ZXhwcmVzc2lvbnxmYWRlfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2xvYmFsfGdtX3Jvb3R8aGFzfGhpZGV8aWR8aWZ8aW1wb3J0fGlufGluaXR8aXN8anVtcHxrbm90fGxhbWJkYXxsZWZ0fGxlc3Nfcm91bmRlZHxtbV9yb290fG1vdmllfG11c2ljfG51bGx8b258b25sYXllcnxwYXNzfHBhdXNlfHBlcnNpc3RlbnR8cGxheXxwcmludHxweXRob258cXVldWV8cmFpc2V8cmFuZG9tfHJlbnB5fHJlcGVhdHxyZXR1cm58cmlnaHR8cm91bmRlZF93aW5kb3d8c2NlbmV8c2NvcGV8c2V0fHNob3d8c2xvd3xzbG93X2Fib3J0YWJsZXxzbG93X2RvbmV8c291bmR8c3RvcHxzdG9yZXxzdHlsZXxzdHlsZV9ncm91cHxzdWJzdGl0dXRlfHN1ZmZpeHx0aGVtZXx0cmFuc2Zvcm18dHJhbnNmb3JtX2FuY2hvcnx0cmFuc3Bvc2V8dHJ5fHVpfHVuaG92ZXJlZHx1cGRhdGVyfHVzZXx2b2ljZXx3aGlsZXx3aWRnZXR8d2lkZ2V0X2hvdmVyfHdpZGdldF9zZWxlY3RlZHx3aWRnZXRfdGV4dHx5aWVsZClcYi8sYm9vbGVhbjovXGIoPzpbRmZdYWxzZXxbVHRdcnVlKVxiLyxudW1iZXI6Lyg/OlxiKD86MFtib10pPyg/Oig/OlxkfDB4W1xkYS1mXSlbXGRhLWZdKig/OlwuXGQqKT8pfFxCXC5cZCspKD86ZVsrLV0/XGQrKT9qPy9pLG9wZXJhdG9yOi9bLSslPV09P3whPXxcKlwqPz0/fFwvXC8/PT98PFs8PT5dP3w+Wz0+XT98WyZ8Xn5dfFxiKD86YW5kfGF0fG5vdHxvcnx3aXRoKVxiLyxwdW5jdHVhdGlvbjovW3t9W1xdOygpLC46XS99LHQubGFuZ3VhZ2VzLnJweT10Lmxhbmd1YWdlcy5yZW5weX1yZXR1cm4gVnB9dmFyIEhwLHhBO2Z1bmN0aW9uIEtXKCl7aWYoeEEpcmV0dXJuIEhwO3hBPTEsSHA9ZSxlLmRpc3BsYXlOYW1lPSJyZXN0IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5yZXN0PXt0YWJsZTpbe3BhdHRlcm46LyheW1x0IF0qKSg/OlwrWz0tXSspK1wrKD86XHI/XG58XHIpKD86XDFbK3xdLitbK3xdKD86XHI/XG58XHIpKStcMSg/OlwrWz0tXSspK1wrL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cfHwoPzpcK1s9LV0rKStcKy99fSx7cGF0dGVybjovKF5bXHQgXSopPSsgWyA9XSo9KD86KD86XHI/XG58XHIpXDEuKykrKD86XHI/XG58XHIpXDE9KyBbID1dKj0oPz0oPzpccj9cbnxccil7Mn18XHMqJCkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1s9LV0rL319XSwic3Vic3RpdHV0aW9uLWRlZiI6e3BhdHRlcm46LyheW1x0IF0qXC5cLiApXHwoPzpbXnxcc10oPzpbXnxdKltefFxzXSk/KVx8IFteOl0rOjovbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7c3Vic3RpdHV0aW9uOntwYXR0ZXJuOi9eXHwoPzpbXnxcc118W158XHNdW158XSpbXnxcc10pXHwvLGFsaWFzOiJhdHRyLXZhbHVlIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXHx8XHwkL319LGRpcmVjdGl2ZTp7cGF0dGVybjovKCApKD8hIClbXjpdKzo6Lyxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiIsaW5zaWRlOntwdW5jdHVhdGlvbjovOjokL319fX0sImxpbmstdGFyZ2V0Ijpbe3BhdHRlcm46LyheW1x0IF0qXC5cLiApXFtbXlxdXStcXS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovXlxbfFxdJC99fSx7cGF0dGVybjovKF5bXHQgXSpcLlwuIClfKD86YFteYF0rYHwoPzpbXjpcXF18XFwuKSspOi9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOntwdW5jdHVhdGlvbjovXl98OiQvfX1dLGRpcmVjdGl2ZTp7cGF0dGVybjovKF5bXHQgXSpcLlwuIClbXjpdKzo6L20sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7cHVuY3R1YXRpb246Lzo6JC99fSxjb21tZW50OntwYXR0ZXJuOi8oXltcdCBdKlwuXC4pKD86KD86IC4rKT8oPzooPzpccj9cbnxccikuKykrfCAuKykoPz0oPzpccj9cbnxccil7Mn18JCkvbSxsb29rYmVoaW5kOiEwfSx0aXRsZTpbe3BhdHRlcm46L14oKFshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BcW1xcXF1eX2B7fH1+XSlcMispKD86XHI/XG58XHIpLisoPzpccj9cbnxccilcMSQvbSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eWyEiIyQlJicoKSorLFwtLlwvOjs8PT4/QFxbXFxcXV5fYHt8fX5dK3xbISIjJCUmJygpKissXC0uXC86Ozw9Pj9AXFtcXFxdXl9ge3x9fl0rJC8saW1wb3J0YW50Oi8uKy99fSx7cGF0dGVybjovKF58KD86XHI/XG58XHIpezJ9KS4rKD86XHI/XG58XHIpKFshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BcW1xcXF1eX2B7fH1+XSlcMisoPz1ccj9cbnxccnwkKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9bISIjJCUmJygpKissXC0uXC86Ozw9Pj9AXFtcXFxdXl9ge3x9fl0rJC8saW1wb3J0YW50Oi8uKy99fV0saHI6e3BhdHRlcm46LygoPzpccj9cbnxccil7Mn0pKFshIiMkJSYnKCkqKyxcLS5cLzo7PD0+P0BcW1xcXF1eX2B7fH1+XSlcMnszLH0oPz0oPzpccj9cbnxccil7Mn0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LGZpZWxkOntwYXR0ZXJuOi8oXltcdCBdKik6W146XHJcbl0rOig/PSApL20sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci1uYW1lIn0sImNvbW1hbmQtbGluZS1vcHRpb24iOntwYXR0ZXJuOi8oXltcdCBdKikoPzpbKy1dW2EtelxkXXwoPzotLXxcLylbYS16XGQtXSspKD86WyA9XSg/OlthLXpdW1x3LV0qfDxbXjw+XSs+KSk/KD86LCAoPzpbKy1dW2EtelxkXXwoPzotLXxcLylbYS16XGQtXSspKD86WyA9XSg/OlthLXpdW1x3LV0qfDxbXjw+XSs+KSk/KSooPz0oPzpccj9cbnxccik/IHsyLH1cUykvaW0sbG9va2JlaGluZDohMCxhbGlhczoic3ltYm9sIn0sImxpdGVyYWwtYmxvY2siOntwYXR0ZXJuOi86Oig/OlxyP1xufFxyKXsyfShbIFx0XSspKD8hWyBcdF0pLisoPzooPzpccj9cbnxccilcMS4rKSovLGluc2lkZTp7ImxpdGVyYWwtYmxvY2stcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eOjovLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0sInF1b3RlZC1saXRlcmFsLWJsb2NrIjp7cGF0dGVybjovOjooPzpccj9cbnxccil7Mn0oWyEiIyQlJicoKSorLFwtLlwvOjs8PT4/QFxbXFxcXV5fYHt8fX5dKS4qKD86KD86XHI/XG58XHIpXDEuKikqLyxpbnNpZGU6eyJsaXRlcmFsLWJsb2NrLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXig/Ojo6fChbISIjJCUmJygpKissXC0uXC86Ozw9Pj9AXFtcXFxdXl9ge3x9fl0pXDEqKS9tLGFsaWFzOiJwdW5jdHVhdGlvbiJ9fX0sImxpc3QtYnVsbGV0Ijp7cGF0dGVybjovKF5bXHQgXSopKD86WyorXC3igKLigKPigYNdfFwoPyg/OlxkK3xbYS16XXxbaXZ4ZGNsbV0rKVwpfCg/OlxkK3xbYS16XXxbaXZ4ZGNsbV0rKVwuKSg/PSApL2ltLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sImRvY3Rlc3QtYmxvY2siOntwYXR0ZXJuOi8oXltcdCBdKik+Pj4gLisoPzooPzpccj9cbnxccikuKykqL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePj4+L319LGlubGluZTpbe3BhdHRlcm46LyhefFtcc1wtOlwvJyI8KFxbe10pKD86OlteOl0rOmAuKj9gfGAuKj9gOlteOl0rOnwoXCpcKj98YGA/fFx8KSg/IVxzKSg/Oig/IVwyKS4pKlxTXDIoPz1bXHNcLS4sOjshP1xcXC8nIilcXX1dfCQpKS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntib2xkOntwYXR0ZXJuOi8oXlwqXCopLisoPz1cKlwqJCkvLGxvb2tiZWhpbmQ6ITB9LGl0YWxpYzp7cGF0dGVybjovKF5cKikuKyg/PVwqJCkvLGxvb2tiZWhpbmQ6ITB9LCJpbmxpbmUtbGl0ZXJhbCI6e3BhdHRlcm46LyheYGApLisoPz1gYCQpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzeW1ib2wifSxyb2xlOntwYXR0ZXJuOi9eOlteOl0rOnw6W146XSs6JC8sYWxpYXM6ImZ1bmN0aW9uIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eOnw6JC99fSwiaW50ZXJwcmV0ZWQtdGV4dCI6e3BhdHRlcm46LyheYCkuKyg/PWAkKS8sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci12YWx1ZSJ9LHN1YnN0aXR1dGlvbjp7cGF0dGVybjovKF5cfCkuKyg/PVx8JCkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovXCpcKj98YGA/fFx8L319XSxsaW5rOlt7cGF0dGVybjovXFtbXlxbXF1dK1xdXyg/PVtcc1wtLiw6OyE/XFxcLyciKVxdfV18JCkvLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7cHVuY3R1YXRpb246L15cW3xcXV8kL319LHtwYXR0ZXJuOi8oPzpcYlthLXpcZF0rKD86W18uOitdW2EtelxkXSspKl8/X3xgW15gXStgXz9ffF9gW15gXStgKSg/PVtcc1wtLiw6OyE/XFxcLyciKVxdfV18JCkvaSxhbGlhczoic3RyaW5nIixpbnNpZGU6e3B1bmN0dWF0aW9uOi9eXz9gfGAkfGA/Xz9fJC99fV0scHVuY3R1YXRpb246e3BhdHRlcm46LyheW1x0IF0qKSg/Olx8KD89IHwkKXwoPzotLS0/fOKAlHxcLlwufF9fKSg/PSApfFwuXC4kKS9tLGxvb2tiZWhpbmQ6ITB9fX1yZXR1cm4gSHB9dmFyIFdwLFJBO2Z1bmN0aW9uIFhXKCl7aWYoUkEpcmV0dXJuIFdwO1JBPTEsV3A9ZSxlLmRpc3BsYXlOYW1lPSJyaXAiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnJpcD17Y29tbWVudDp7cGF0dGVybjovIy4qLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46L1xCYFteXHNgJyIsLjo7I1wvXFwoKTw+XFtcXXt9XVxiLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxyZWdleDp7cGF0dGVybjovKF58W14vXSlcLyg/IVwvKSg/OlxbW15cblxyXF1dKlxdfFxcLnxbXi9cXFxyXG5cW10pK1wvKD89XHMqKD86JHxbXHJcbiwuO30pXSkpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sa2V5d29yZDovKD86PT58LT4pfFxiKD86Y2FzZXxjYXRjaHxjbGFzc3xlbHNlfGV4aXR8ZmluYWxseXxpZnxyYWlzZXxyZXR1cm58c3dpdGNofHRyeSlcYi8sYnVpbHRpbjovQHxcYlN5c3RlbVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLGRhdGU6L1xiXGR7NH0tXGR7Mn0tXGR7Mn1cYi8sdGltZTovXGJcZHsyfTpcZHsyfTpcZHsyfVxiLyxkYXRldGltZTovXGJcZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfVxiLyxzeW1ib2w6LzpbXlxkXHNgJyIsLjo7I1wvXFwoKTw+XFtcXXt9XVteXHNgJyIsLjo7I1wvXFwoKTw+XFtcXXt9XSovLG51bWJlcjovWystXT9cYig/OlxkK1wuXGQrfFxkKylcYi8scHVuY3R1YXRpb246Lyg/OlwuezIsM30pfFtgLC46Oz1cL1xcKCk8PlxbXF17fV0vLHJlZmVyZW5jZTovW15cZFxzYCciLC46OyNcL1xcKCk8PlxbXF17fV1bXlxzYCciLC46OyNcL1xcKCk8PlxbXF17fV0qL319cmV0dXJuIFdwfXZhciBZcCxfQTtmdW5jdGlvbiBaVygpe2lmKF9BKXJldHVybiBZcDtfQT0xLFlwPWUsZS5kaXNwbGF5TmFtZT0icm9ib2NvbmYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnJvYm9jb25mPXtjb21tZW50Oi8jLiovLGtleXdvcmQ6e3BhdHRlcm46LyhefFxzKSg/Oig/OmV4dGVybmFsfGltcG9ydClcYnwoPzpmYWNldHxpbnN0YW5jZSBvZikoPz1bIFx0XStbXHctXStbIFx0XSpceykpLyxsb29rYmVoaW5kOiEwfSxjb21wb25lbnQ6e3BhdHRlcm46L1tcdy1dKyg/PVsgXHRdKlx7KS8sYWxpYXM6InZhcmlhYmxlIn0scHJvcGVydHk6L1tcdy4tXSsoPz1bIFx0XSo6KS8sdmFsdWU6e3BhdHRlcm46Lyg9WyBcdF0qKD8hWyBcdF0pKVteLDtdKy8sbG9va2JlaGluZDohMCxhbGlhczoiYXR0ci12YWx1ZSJ9LG9wdGlvbmFsOntwYXR0ZXJuOi9cKG9wdGlvbmFsXCkvLGFsaWFzOiJidWlsdGluIn0sd2lsZGNhcmQ6e3BhdHRlcm46LyhcLilcKi8sbG9va2JlaGluZDohMCxhbGlhczoib3BlcmF0b3IifSxwdW5jdHVhdGlvbjovW3t9LC47Oj1dL319cmV0dXJuIFlwfXZhciBLcCxJQTtmdW5jdGlvbiBRVygpe2lmKElBKXJldHVybiBLcDtJQT0xLEtwPWUsZS5kaXNwbGF5TmFtZT0icm9ib3RmcmFtZXdvcmsiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj17cGF0dGVybjovKF5bIFx0XSp8IHsyfXxcdCkjLiovbSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sYT17cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilbJEAmJV1ceyg/Oltee31cclxuXXxce1tee31cclxuXSpcfSkqXH0vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlskQCYlXVx7fFx9JC99fTtmdW5jdGlvbiBpKHUsYyl7dmFyIGQ9e307ZFsic2VjdGlvbi1oZWFkZXIiXT17cGF0dGVybjovXiA/XCp7M30uKz9cKnszfS8sYWxpYXM6ImtleXdvcmQifTtmb3IodmFyIHAgaW4gYylkW3BdPWNbcF07cmV0dXJuIGQudGFnPXtwYXR0ZXJuOi8oW1xyXG5dKD86IHsyfXxcdClbIFx0XSopXFtbLVx3XStcXS8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXS99fSxkLnZhcmlhYmxlPWEsZC5jb21tZW50PXIse3BhdHRlcm46UmVnRXhwKC9eID9cKnszfVsgXHRdKjxuYW1lPlsgXHRdKlwqezN9KD86LnxbXHJcbl0oPyFcKnszfSkpKi8uc291cmNlLnJlcGxhY2UoLzxuYW1lPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHV9KSwiaW0iKSxhbGlhczoic2VjdGlvbiIsaW5zaWRlOmR9fXZhciBvPXtwYXR0ZXJuOi8oXFtEb2N1bWVudGF0aW9uXF0oPzogezJ9fFx0KVsgXHRdKikoPyFbIFx0XXwjKSg/Oi58KD86XHJcbj98XG4pWyBcdF0qXC57M30pKy8sbG9va2JlaGluZDohMCxhbGlhczoic3RyaW5nIn0scz17cGF0dGVybjovKFtcclxuXSA/KSg/ISMpKD86XFMoPzpbIFx0XVxTKSopKy8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24iLGluc2lkZTp7dmFyaWFibGU6YX19LGw9e3BhdHRlcm46LyhbXHJcbl0oPzogezJ9fFx0KVsgXHRdKikoPyFcW3xcLnszfXwjKSg/OlxTKD86WyBcdF1cUykqKSsvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt2YXJpYWJsZTphfX07bi5sYW5ndWFnZXMucm9ib3RmcmFtZXdvcms9e3NldHRpbmdzOmkoIlNldHRpbmdzIix7ZG9jdW1lbnRhdGlvbjp7cGF0dGVybjovKFtcclxuXSA/RG9jdW1lbnRhdGlvbig/OiB7Mn18XHQpWyBcdF0qKSg/IVsgXHRdfCMpKD86LnwoPzpcclxuP3xcbilbIFx0XSpcLnszfSkrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifSxwcm9wZXJ0eTp7cGF0dGVybjovKFtcclxuXSA/KSg/IVwuezN9fCMpKD86XFMoPzpbIFx0XVxTKSopKy8sbG9va2JlaGluZDohMH19KSx2YXJpYWJsZXM6aSgiVmFyaWFibGVzIiksInRlc3QtY2FzZXMiOmkoIlRlc3QgQ2FzZXMiLHsidGVzdC1uYW1lIjpzLGRvY3VtZW50YXRpb246byxwcm9wZXJ0eTpsfSksa2V5d29yZHM6aSgiS2V5d29yZHMiLHsia2V5d29yZC1uYW1lIjpzLGRvY3VtZW50YXRpb246byxwcm9wZXJ0eTpsfSksdGFza3M6aSgiVGFza3MiLHsidGFzay1uYW1lIjpzLGRvY3VtZW50YXRpb246byxwcm9wZXJ0eTpsfSksY29tbWVudDpyfSxuLmxhbmd1YWdlcy5yb2JvdD1uLmxhbmd1YWdlcy5yb2JvdGZyYW1ld29ya30pKHQpfXJldHVybiBLcH12YXIgWHAsTkE7ZnVuY3Rpb24gSlcoKXtpZihOQSlyZXR1cm4gWHA7TkE9MSxYcD1lLGUuZGlzcGxheU5hbWU9InJ1c3QiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtmb3IodmFyIHI9L1wvXCooPzpbXiovXXxcKig/IVwvKXxcLyg/IVwqKXw8c2VsZj4pKlwqXC8vLnNvdXJjZSxhPTA7YTwyO2ErKylyPXIucmVwbGFjZSgvPHNlbGY+L2csZnVuY3Rpb24oKXtyZXR1cm4gcn0pO3I9ci5yZXBsYWNlKC88c2VsZj4vZyxmdW5jdGlvbigpe3JldHVybi9bXlxzXFNdLy5zb3VyY2V9KSxuLmxhbmd1YWdlcy5ydXN0PXtjb21tZW50Olt7cGF0dGVybjpSZWdFeHAoLyhefFteXFxdKS8uc291cmNlK3IpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSx7cGF0dGVybjovKF58W15cXDpdKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46L2I/Iig/OlxcW1xzXFNdfFteXFwiXSkqInxiP3IoIyopIig/OlteIl18Iig/IVwxKSkqIlwxLyxncmVlZHk6ITB9LGNoYXI6e3BhdHRlcm46L2I/Jyg/OlxcKD86eFswLTddW1xkYS1mQS1GXXx1XHsoPzpbXGRhLWZBLUZdXyopezEsNn1cfXwuKXxbXlxcXHJcblx0J10pJy8sZ3JlZWR5OiEwfSxhdHRyaWJ1dGU6e3BhdHRlcm46LyMhP1xbKD86W15cW1xdIl18Iig/OlxcW1xzXFNdfFteXFwiXSkqIikqXF0vLGdyZWVkeTohMCxhbGlhczoiYXR0ci1uYW1lIixpbnNpZGU6e3N0cmluZzpudWxsfX0sImNsb3N1cmUtcGFyYW1zIjp7cGF0dGVybjovKFs9KCw6XVxzKnxcYm1vdmVccyopXHxbXnxdKlx8fFx8W158XSpcfCg/PVxzKig/Olx7fC0+KSkvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7ImNsb3N1cmUtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXHx8XHwkLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0Om51bGx9fSwibGlmZXRpbWUtYW5ub3RhdGlvbiI6e3BhdHRlcm46LydcdysvLGFsaWFzOiJzeW1ib2wifSwiZnJhZ21lbnQtc3BlY2lmaWVyIjp7cGF0dGVybjovKFwkXHcrOilbYS16XSsvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sdmFyaWFibGU6L1wkXHcrLywiZnVuY3Rpb24tZGVmaW5pdGlvbiI6e3BhdHRlcm46LyhcYmZuXHMrKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSwidHlwZS1kZWZpbml0aW9uIjp7cGF0dGVybjovKFxiKD86ZW51bXxzdHJ1Y3R8dHJhaXR8dHlwZXx1bmlvbilccyspXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJjbGFzcy1uYW1lIn0sIm1vZHVsZS1kZWNsYXJhdGlvbiI6W3twYXR0ZXJuOi8oXGIoPzpjcmF0ZXxtb2QpXHMrKVthLXpdW2Etel9cZF0qLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJuYW1lc3BhY2UifSx7cGF0dGVybjovKFxiKD86Y3JhdGV8c2VsZnxzdXBlcilccyopOjpccypbYS16XVthLXpfXGRdKlxiKD86XHMqOjooPzpccypbYS16XVthLXpfXGRdKlxzKjo6KSopPy8sbG9va2JlaGluZDohMCxhbGlhczoibmFtZXNwYWNlIixpbnNpZGU6e3B1bmN0dWF0aW9uOi86Oi99fV0sa2V5d29yZDpbL1xiKD86U2VsZnxhYnN0cmFjdHxhc3xhc3luY3xhd2FpdHxiZWNvbWV8Ym94fGJyZWFrfGNvbnN0fGNvbnRpbnVlfGNyYXRlfGRvfGR5bnxlbHNlfGVudW18ZXh0ZXJufGZpbmFsfGZufGZvcnxpZnxpbXBsfGlufGxldHxsb29wfG1hY3JvfG1hdGNofG1vZHxtb3ZlfG11dHxvdmVycmlkZXxwcml2fHB1YnxyZWZ8cmV0dXJufHNlbGZ8c3RhdGljfHN0cnVjdHxzdXBlcnx0cmFpdHx0cnl8dHlwZXx0eXBlb2Z8dW5pb258dW5zYWZlfHVuc2l6ZWR8dXNlfHZpcnR1YWx8d2hlcmV8d2hpbGV8eWllbGQpXGIvLC9cYig/OmJvb2x8Y2hhcnxmKD86MzJ8NjQpfFt1aV0oPzo4fDE2fDMyfDY0fDEyOHxzaXplKXxzdHIpXGIvXSxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccyooPzo6OlxzKjx8XCgpKS8sbWFjcm86e3BhdHRlcm46L1xiXHcrIS8sYWxpYXM6InByb3BlcnR5In0sY29uc3RhbnQ6L1xiW0EtWl9dW0EtWl9cZF0rXGIvLCJjbGFzcy1uYW1lIjovXGJbQS1aXVx3KlxiLyxuYW1lc3BhY2U6e3BhdHRlcm46Lyg/OlxiW2Etel1bYS16X1xkXSpccyo6OlxzKikqXGJbYS16XVthLXpfXGRdKlxzKjo6KD8hXHMqPCkvLGluc2lkZTp7cHVuY3R1YXRpb246Lzo6L319LG51bWJlcjovXGIoPzoweFtcZEEtRmEtZl0oPzpfP1tcZEEtRmEtZl0pKnwwb1swLTddKD86Xz9bMC03XSkqfDBiWzAxXSg/Ol8/WzAxXSkqfCg/Oig/OlxkKD86Xz9cZCkqKT9cLik/XGQoPzpfP1xkKSooPzpbRWVdWystXT9cZCspPykoPzpfPyg/OmYzMnxmNjR8W2l1XSg/Ojh8MTZ8MzJ8NjR8c2l6ZSk/KSk/XGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8scHVuY3R1YXRpb246Ly0+fFwuXC49fFwuezEsM318Ojp8W3t9W1xdOygpLDpdLyxvcGVyYXRvcjovWy0rKlwvJSFeXT0/fD1bPT5dP3wmWyY9XT98XHxbfD1dP3w8PD89P3w+Pj89P3xbQD9dL30sbi5sYW5ndWFnZXMucnVzdFsiY2xvc3VyZS1wYXJhbXMiXS5pbnNpZGUucmVzdD1uLmxhbmd1YWdlcy5ydXN0LG4ubGFuZ3VhZ2VzLnJ1c3QuYXR0cmlidXRlLmluc2lkZS5zdHJpbmc9bi5sYW5ndWFnZXMucnVzdC5zdHJpbmd9KSh0KX1yZXR1cm4gWHB9dmFyIFpwLENBO2Z1bmN0aW9uIGU2KCl7aWYoQ0EpcmV0dXJuIFpwO0NBPTEsWnA9ZSxlLmRpc3BsYXlOYW1lPSJzYXMiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj0vKD86Iig/OiIifFteIl0pKiIoPyEiKXwnKD86Jyd8W14nXSkqJyg/IScpKS8uc291cmNlLGE9L1xiKD86XGRbXGRhLWZdKnh8XGQrKD86XC5cZCspPyg/OmVbKy1dP1xkKyk/KVxiL2ksaT17cGF0dGVybjpSZWdFeHAocisiW2J4XSIpLGFsaWFzOiJudW1iZXIifSxvPXtwYXR0ZXJuOi8mW2Etel9dXHcqL2l9LHM9e3BhdHRlcm46LygoPzpefFxzfD18XCgpKSUoPzpBQk9SVHxCWXxDTVN8Q09QWXxESVNQTEFZfERPfEVMU0V8RU5EfEVWQUx8R0xPQkFMfEdPfEdPVE98SUZ8SU5DfElOQ0xVREV8SU5ERVh8SU5QVVR8S1RSSU18TEVOR1RIfExFVHxMSVNUfExPQ0FMfFBVVHxRS1RSSU18UVNDQU58UVNVQlNUUnxRU1lTRlVOQ3xRVVBDQVNFfFJFVFVSTnxSVU58U0NBTnxTVUJTVFJ8U1VQRVJRfFNZTURFTHxTWU1FWElTVHxTWU1HTE9CTHxTWU1MT0NBTHxTWVNDQUxMfFNZU0VWQUxGfFNZU0VYRUN8U1lTRlVOQ3xTWVNHRVR8U1lTUlBVVHxUSEVOfFRPfFRTT3xVTlFVT1RFfFVOVElMfFVQQ0FTRXxXSElMRXxXSU5ET1cpXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sbD17cGF0dGVybjovKF58XHMpKD86cHJvY1xzK1x3K3xkYXRhKD8hPSl8cXVpdHxydW4pXGIvaSxhbGlhczoia2V5d29yZCIsbG9va2JlaGluZDohMH0sdT1bL1wvXCpbXHNcU10qP1wqXC8vLHtwYXR0ZXJuOi8oXlsgXHRdKnw7XHMqKVwqW147XSo7L20sbG9va2JlaGluZDohMH1dLGM9e3BhdHRlcm46UmVnRXhwKHIpLGdyZWVkeTohMH0sZD0vWyQlQC4oKXt9XFtcXTssXFxdLyxwPXtwYXR0ZXJuOi8lP1xiXHcrKD89XCgpLyxhbGlhczoia2V5d29yZCJ9LGY9e2Z1bmN0aW9uOnAsImFyZy12YWx1ZSI6e3BhdHRlcm46Lyg9XHMqKVtBLVpcLl0rL2ksbG9va2JlaGluZDohMH0sb3BlcmF0b3I6Lz0vLCJtYWNyby12YXJpYWJsZSI6byxhcmc6e3BhdHRlcm46L1tBLVpdKy9pLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOmEsIm51bWVyaWMtY29uc3RhbnQiOmkscHVuY3R1YXRpb246ZCxzdHJpbmc6Y30seT17cGF0dGVybjovXGIoPzpmb3JtYXR8cHV0KVxiPT9bXHcnJC5dKy9pLGluc2lkZTp7a2V5d29yZDovXig/OmZvcm1hdHxwdXQpKD89PSkvaSxlcXVhbHM6Lz0vLGZvcm1hdDp7cGF0dGVybjovKD86XHd8XCRcZCkrXC5cZD8vLGFsaWFzOiJudW1iZXIifX19LGI9e3BhdHRlcm46L1xiKD86Zm9ybWF0fHB1dClccytbXHcnXSsoPzpccytbJC5cd10rKSsoPz07KS9pLGluc2lkZTp7a2V5d29yZDovXig/OmZvcm1hdHxwdXQpL2ksZm9ybWF0OntwYXR0ZXJuOi9bXHckXStcLlxkPy8sYWxpYXM6Im51bWJlciJ9fX0sQT17cGF0dGVybjovKCg/Ol58XHMpPT8pKD86Y2F0bmFtZXxjaGVja3BvaW50IGV4ZWN1dGVfYWx3YXlzfGRtfGVuZHNhc3xmaWxlbmFtZXxmb290bm90ZXwlaW5jbHVkZXxsaWJuYW1lfCVsaXN0fGxvY2t8bWlzc2luZ3xvcHRpb25zfHBhZ2V8cmVzZXRsaW5lfCVydW58c2FzZmlsZXxza2lwfHN5c2VjaG98dGl0bGVcZD8pXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0saD17cGF0dGVybjovKF58XHMpKD86c3VibWl0KD86XHMrKD86bG9hZHxub3J1bnxwYXJzZW9ubHkpKT98ZW5kc3VibWl0KVxiL2ksbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LG09L2FTdG9yZXxhY2Nlc3NDb250cm9sfGFnZ3JlZ2F0aW9ufGF1ZGlvfGF1dG90dW5lfGJheWVzaWFuTmV0Q2xhc3NpZmllcnxiaW9NZWRJbWFnZXxib29sUnVsZXxidWlsdGluc3xjYXJkaW5hbGl0eXxjZG18Y2x1c3RlcmluZ3xjb25kaXRpb25hbFJhbmRvbUZpZWxkc3xjb25maWd1cmF0aW9ufGNvcHVsYXxjb3VudHJlZ3xkYXRhRGlzY292ZXJ5fGRhdGFQcmVwcm9jZXNzfGRhdGFTY2llbmNlUGlsb3R8ZGF0YVN0ZXB8ZGVjaXNpb25UcmVlfGRlZHVwbGljYXRpb258ZGVlcExlYXJufGRlZXBOZXVyYWx8ZGVlcFJubnxkczJ8ZWNtfGVudGl0eVJlc3xlc3BDbHVzdGVyfGV4cGxhaW5Nb2RlbHxmYWN0bWFjfGZhc3RLbm58ZmNtcGFjdHxmZWRTcWx8ZnJlcVRhYnxnVmFyQ2x1c3RlcnxnYW18Z2xlYW18Z3JhcGhTZW1pU3VwTGVhcm58aGlkZGVuTWFya292TW9kZWx8aHlwZXJHcm91cHxpY2F8aW1hZ2V8aW1sfGtlcm5hbFBjYXxsYW5nTW9kZWx8bGRhVG9waWN8bG9hZFN0cmVhbXN8bWJjfG1peGVkfG1sVG9vbHN8bW9kZWxQdWJsaXNoaW5nfG5ldHdvcmt8bmV1cmFsTmV0fG5tZnxub25QYXJhbWV0cmljQmF5ZXN8bm9ubGluZWFyfG9wdE5ldHdvcmt8b3B0aW1pemF0aW9ufHBhbmVsfHBjYXxwZXJjZW50aWxlfHBocmVnfHBsc3xxa2J8cWxpbXxxdWFudHJlZ3xyZWNvbW1lbmR8cmVncmVzc2lvbnxyZWluZm9yY2VtZW50TGVhcm58cm9idXN0UGNhfHJ1bGVNaW5pbmd8c2FtcGxpbmd8c2FuZHdpY2h8c2NjYXNsfHNlYXJjaCg/OkFuYWx5dGljcyk/fHNlbnRpbWVudEFuYWx5c2lzfHNlcXVlbmNlfHNlc3Npb24oPzpQcm9wKT98c2V2ZXJpdHl8c2ltU3lzdGVtfHNpbXBsZXxzbWFydERhdGF8c3BhcmtFbWJlZGRlZFByb2Nlc3N8c3BhcnNlTUx8c3BhdGlhbHJlZ3xzcGN8c3RhYmlsaXR5TW9uaXRvcmluZ3xzdkRhdGFEZXNjcmlwdGlvbnxzdm18dGFibGV8dGV4dCg/OkZpbHRlcnN8RnJlcXVlbmN5fE1pbmluZ3xQYXJzZXxSdWxlKD86RGV2ZWxvcHxTY29yZSl8VG9waWN8VXRpbCl8dGltZURhdGF8dHJhbnNwb3NlfHRzSW5mb3x0c1JlY29uY2lsZXx1bmlUaW1lU2VyaWVzfHZhclJlZHVjZS8uc291cmNlLGc9e3BhdHRlcm46UmVnRXhwKC8oXnxccykoPzphY3Rpb25ccyspPyg/OjxhY3Q+KVwuW2Etel0rXGJbXjtdKy8uc291cmNlLnJlcGxhY2UoLzxhY3Q+L2csZnVuY3Rpb24oKXtyZXR1cm4gbX0pLCJpIiksbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6UmVnRXhwKC8oPzo8YWN0PilcLlthLXpdK1xiLy5zb3VyY2UucmVwbGFjZSgvPGFjdD4vZyxmdW5jdGlvbigpe3JldHVybiBtfSksImkiKSxhY3Rpb246e3BhdHRlcm46Lyg/OmFjdGlvbikvaSxhbGlhczoia2V5d29yZCJ9LGNvbW1lbnQ6dSxmdW5jdGlvbjpwLCJhcmctdmFsdWUiOmZbImFyZy12YWx1ZSJdLG9wZXJhdG9yOmYub3BlcmF0b3IsYXJndW1lbnQ6Zi5hcmcsbnVtYmVyOmEsIm51bWVyaWMtY29uc3RhbnQiOmkscHVuY3R1YXRpb246ZCxzdHJpbmc6Y319LEU9e3BhdHRlcm46LygoPzpefFxzKT0/KSg/OmFmdGVyfGFuYWx5c2lzfGFuZHxhcnJheXxiYXJjaGFydHxiYXJ3aWR0aHxiZWdpbmdyYXBofGJ5fGNhbGx8Y2FzfGNiYXJsaW5lfGNmaWxsfGNsYXNzKD86bGV2KT98Y2xvc2V8Y29sdW1ufGNvbXB1dGVkP3xjb250YWluc3xjb250aW51ZXxkYXRhKD89PSl8ZGVmaW5lfGRlbGV0ZXxkZXNjcmliZXxkb2N1bWVudHxkb1xzK292ZXJ8ZG98ZG9sfGRyb3B8ZHVsfGVsc2V8ZW5kKD86Y29tcHxzb3VyY2UpP3xlbnRyeVRpdGxlfGV2YWwoPzp1YXRlKT98ZXhlYyg/OnV0ZSk/fGV4aXR8ZmlsZSg/Om5hbWUpP3xmaWxsKD86YXR0cnMpP3xmbGlzdHxmbmN8ZnVuY3Rpb24oPzpsaXN0KT98Z2xvYmFsfGdvdG98Z3JvdXAoPzpieSk/fGhlYWRsaW5lfGhlYWRza2lwfGhpc3RvZ3JhbXxpZnxpbmZpbGV8a2VlcHxrZXlsYWJlbHxrZXl3b3JkfGxhYmVsfGxheW91dHxsZWF2ZXxsZWdlbmRsYWJlbHxsZW5ndGh8bGlibmFtZXxsb2FkYWN0aW9uc2V0fG1lcmdlfG1pZHBvaW50c3xfP251bGxffG5hbWV8bm9vYnN8bm93ZHxvZHN8b3B0aW9uc3xvcnxvdGhlcndpc2V8b3V0KD86cHV0KT98b3Zlcig/OmxheSk/fHBsb3R8cHJpbnR8cHV0fHJhaXNlfHJhbmV4cHxyYW5ub3J8cmJyZWFrfHJldGFpbnxyZXR1cm58c2VsZWN0fHNlc3Npb258c2Vzc3JlZnxzZXR8c291cmNlfHN0YXRncmFwaHxzdW18c3VtbWFyaXplfHRhYmxlfHRlbXB8dGVybWluYXRlfHRoZW5ccytkb3x0aGVufHRpdGxlXGQ/fHRvfHZhcnx3aGVufHdoZXJlfHhheGlzb3B0c3x5MmF4aXNvcHRzfHlheGlzb3B0cylcYi9pLGxvb2tiZWhpbmQ6ITB9O24ubGFuZ3VhZ2VzLnNhcz17ZGF0YWxpbmVzOntwYXR0ZXJuOi9eKFsgXHRdKikoPzpjYXJkc3woPzpkYXRhKT9saW5lcyk7W1xzXFNdKz9eWyBcdF0qOy9pbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7a2V5d29yZDp7cGF0dGVybjovXig/OmNhcmRzfCg/OmRhdGEpP2xpbmVzKS9pfSxwdW5jdHVhdGlvbjovOy99fSwicHJvYy1zcWwiOntwYXR0ZXJuOi8oXnByb2NccysoPzpmZWQpP3NxbCg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xkYXRhfHF1aXR8cnVuKTt8KD8hW1xzXFNdKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e3NxbDp7cGF0dGVybjpSZWdFeHAoL15bIFx0XSooPzpzZWxlY3R8YWx0ZXJccyt0YWJsZXwoPzpjcmVhdGV8ZGVzY3JpYmV8ZHJvcClccysoPzppbmRleHx0YWJsZSg/OlxzK2NvbnN0cmFpbnRzKT98dmlldyl8Y3JlYXRlXHMrdW5pcXVlXHMraW5kZXh8aW5zZXJ0XHMraW50b3x1cGRhdGUpKD86PHN0cj58W147IiddKSs7Ly5zb3VyY2UucmVwbGFjZSgvPHN0cj4vZyxmdW5jdGlvbigpe3JldHVybiByfSksImltIiksYWxpYXM6Imxhbmd1YWdlLXNxbCIsaW5zaWRlOm4ubGFuZ3VhZ2VzLnNxbH0sImdsb2JhbC1zdGF0ZW1lbnRzIjpBLCJzcWwtc3RhdGVtZW50cyI6e3BhdHRlcm46LyhefFxzKSg/OmRpc2Nvbm5lY3Rccytmcm9tfGJlZ2lufGNvbW1pdHxleGVjKD86dXRlKT98cmVzZXR8cm9sbGJhY2t8dmFsaWRhdGUpXGIvaSxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOmEsIm51bWVyaWMtY29uc3RhbnQiOmkscHVuY3R1YXRpb246ZCxzdHJpbmc6Y319LCJwcm9jLWdyb292eSI6e3BhdHRlcm46LyhecHJvY1xzK2dyb292eSg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xkYXRhfHF1aXR8cnVuKTt8KD8hW1xzXFNdKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvbW1lbnQ6dSxncm9vdnk6e3BhdHRlcm46UmVnRXhwKC8oXlsgXHRdKnN1Ym1pdCg/OlxzKyg/OmxvYWR8bm9ydW58cGFyc2Vvbmx5KSk/KSg/OjxzdHI+fFteIiddKSs/KD89ZW5kc3VibWl0OykvLnNvdXJjZS5yZXBsYWNlKC88c3RyPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSwiaW0iKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1ncm9vdnkiLGluc2lkZTpuLmxhbmd1YWdlcy5ncm9vdnl9LGtleXdvcmQ6RSwic3VibWl0LXN0YXRlbWVudCI6aCwiZ2xvYmFsLXN0YXRlbWVudHMiOkEsbnVtYmVyOmEsIm51bWVyaWMtY29uc3RhbnQiOmkscHVuY3R1YXRpb246ZCxzdHJpbmc6Y319LCJwcm9jLWx1YSI6e3BhdHRlcm46LyhecHJvY1xzK2x1YSg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xkYXRhfHF1aXR8cnVuKTt8KD8hW1xzXFNdKSkvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e2NvbW1lbnQ6dSxsdWE6e3BhdHRlcm46UmVnRXhwKC8oXlsgXHRdKnN1Ym1pdCg/OlxzKyg/OmxvYWR8bm9ydW58cGFyc2Vvbmx5KSk/KSg/OjxzdHI+fFteIiddKSs/KD89ZW5kc3VibWl0OykvLnNvdXJjZS5yZXBsYWNlKC88c3RyPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSwiaW0iKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJsYW5ndWFnZS1sdWEiLGluc2lkZTpuLmxhbmd1YWdlcy5sdWF9LGtleXdvcmQ6RSwic3VibWl0LXN0YXRlbWVudCI6aCwiZ2xvYmFsLXN0YXRlbWVudHMiOkEsbnVtYmVyOmEsIm51bWVyaWMtY29uc3RhbnQiOmkscHVuY3R1YXRpb246ZCxzdHJpbmc6Y319LCJwcm9jLWNhcyI6e3BhdHRlcm46LyhecHJvY1xzK2Nhcyg/OlxzK1tcd3w9XSspPzspW1xzXFNdKz8oPz1eKD86cHJvY1xzK1x3K3xxdWl0fGRhdGEpO3woPyFbXHNcU10pKS9pbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7Y29tbWVudDp1LCJzdGF0ZW1lbnQtdmFyIjp7cGF0dGVybjovKCg/Ol58XHMpPT8pc2F2ZXJlc3VsdFxzW147XSsvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6e3N0YXRlbWVudDp7cGF0dGVybjovXnNhdmVyZXN1bHRccytcUysvaSxpbnNpZGU6e2tleXdvcmQ6L14oPzpzYXZlcmVzdWx0KS9pfX0scmVzdDpmfX0sImNhcy1hY3Rpb25zIjpnLHN0YXRlbWVudDp7cGF0dGVybjovKCg/Ol58XHMpPT8pKD86ZGVmYXVsdHwoPzp1bik/c2V0fG9ufG91dHB1dHx1cGxvYWQpW147XSsvaW0sbG9va2JlaGluZDohMCxpbnNpZGU6Zn0sc3RlcDpsLGtleXdvcmQ6RSxmdW5jdGlvbjpwLGZvcm1hdDp5LGFsdGZvcm1hdDpiLCJnbG9iYWwtc3RhdGVtZW50cyI6QSxudW1iZXI6YSwibnVtZXJpYy1jb25zdGFudCI6aSxwdW5jdHVhdGlvbjpkLHN0cmluZzpjfX0sInByb2MtYXJncyI6e3BhdHRlcm46UmVnRXhwKC8oXnByb2NccytcdytccyspKD8hXHMpKD86W147IiddfDxzdHI+KSs7Ly5zb3VyY2UucmVwbGFjZSgvPHN0cj4vZyxmdW5jdGlvbigpe3JldHVybiByfSksImltIiksbG9va2JlaGluZDohMCxpbnNpZGU6Zn0sIm1hY3JvLWtleXdvcmQiOnMsIm1hY3JvLXZhcmlhYmxlIjpvLCJtYWNyby1zdHJpbmctZnVuY3Rpb25zIjp7cGF0dGVybjovKCg/Ol58XHN8PSkpJSg/OkJRVU9URXxOUkJRVU9URXxOUlFVT1RFfE5SU1RSfFFVT1RFfFNUUilcKC4qPyg/OlteJV1cKSkvaSxsb29rYmVoaW5kOiEwLGluc2lkZTp7ZnVuY3Rpb246e3BhdHRlcm46LyUoPzpCUVVPVEV8TlJCUVVPVEV8TlJRVU9URXxOUlNUUnxRVU9URXxTVFIpL2ksYWxpYXM6ImtleXdvcmQifSwibWFjcm8ta2V5d29yZCI6cywibWFjcm8tdmFyaWFibGUiOm8sImVzY2FwZWQtY2hhciI6e3BhdHRlcm46LyVbJyIoKTw+PcKsXn47LCNdL30scHVuY3R1YXRpb246ZH19LCJtYWNyby1kZWNsYXJhdGlvbiI6e3BhdHRlcm46L14lbWFjcm9bXjtdKyg/PTspL2ltLGluc2lkZTp7a2V5d29yZDovJW1hY3JvL2l9fSwibWFjcm8tZW5kIjp7cGF0dGVybjovXiVtZW5kW147XSsoPz07KS9pbSxpbnNpZGU6e2tleXdvcmQ6LyVtZW5kL2l9fSxtYWNybzp7cGF0dGVybjovJV9cdysoPz1cKCkvLGFsaWFzOiJrZXl3b3JkIn0saW5wdXQ6e3BhdHRlcm46L1xiaW5wdXRcc1stXHdccy8qLiQmXSs7L2ksaW5zaWRlOntpbnB1dDp7YWxpYXM6ImtleXdvcmQiLHBhdHRlcm46L15pbnB1dC9pfSxjb21tZW50OnUsbnVtYmVyOmEsIm51bWVyaWMtY29uc3RhbnQiOml9fSwib3B0aW9ucy1hcmdzIjp7cGF0dGVybjovKF5vcHRpb25zKVstJyJ8L1xcPD4qKz06KClcd1xzXSooPz07KS9pbSxsb29rYmVoaW5kOiEwLGluc2lkZTpmfSwiY2FzLWFjdGlvbnMiOmcsY29tbWVudDp1LGZ1bmN0aW9uOnAsZm9ybWF0OnksYWx0Zm9ybWF0OmIsIm51bWVyaWMtY29uc3RhbnQiOmksZGF0ZXRpbWU6e3BhdHRlcm46UmVnRXhwKHIrIig/OmR0P3x0KSIpLGFsaWFzOiJudW1iZXIifSxzdHJpbmc6YyxzdGVwOmwsa2V5d29yZDpFLCJvcGVyYXRvci1rZXl3b3JkIjp7cGF0dGVybjovXGIoPzplcXxnZXxndHxpbnxsZXxsdHxuZXxub3QpXGIvaSxhbGlhczoib3BlcmF0b3IifSxudW1iZXI6YSxvcGVyYXRvcjovXCpcKj98XHxcfD98ISE/fMKmwqY/fDxbPj1dP3w+Wzw9XT98Wy0rXC89Jl18W37CrF5dPT8vLHB1bmN0dWF0aW9uOmR9fSkodCl9cmV0dXJuIFpwfXZhciBRcCxPQTtmdW5jdGlvbiB0Nigpe2lmKE9BKXJldHVybiBRcDtPQT0xLFFwPWUsZS5kaXNwbGF5TmFtZT0ic2FzcyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe24ubGFuZ3VhZ2VzLnNhc3M9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjc3MiLHtjb21tZW50OntwYXR0ZXJuOi9eKFsgXHRdKilcL1tcLypdLiooPzooPzpccj9cbnxccilcMVsgXHRdLispKi9tLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2FzcyIsImF0cnVsZSIseyJhdHJ1bGUtbGluZSI6e3BhdHRlcm46L14oPzpbIFx0XSopW0ArPV0uKy9tLGdyZWVkeTohMCxpbnNpZGU6e2F0cnVsZTovKD86QFtcdy1dK3xbKz1dKS99fX0pLGRlbGV0ZSBuLmxhbmd1YWdlcy5zYXNzLmF0cnVsZTt2YXIgcj0vXCRbLVx3XSt8I1x7XCRbLVx3XStcfS8sYT1bL1srKlwvJV18Wz0hXT18PD0/fD49P3xcYig/OmFuZHxub3R8b3IpXGIvLHtwYXR0ZXJuOi8oXHMpLSg/PVxzKS8sbG9va2JlaGluZDohMH1dO24ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2FzcyIsInByb3BlcnR5Iix7InZhcmlhYmxlLWxpbmUiOntwYXR0ZXJuOi9eWyBcdF0qXCQuKy9tLGdyZWVkeTohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi86Lyx2YXJpYWJsZTpyLG9wZXJhdG9yOmF9fSwicHJvcGVydHktbGluZSI6e3BhdHRlcm46L15bIFx0XSooPzpbXjpcc10rICo6Lip8OlteOlxzXS4qKS9tLGdyZWVkeTohMCxpbnNpZGU6e3Byb3BlcnR5OlsvW146XHNdKyg/PVxzKjopLyx7cGF0dGVybjovKDopW146XHNdKy8sbG9va2JlaGluZDohMH1dLHB1bmN0dWF0aW9uOi86Lyx2YXJpYWJsZTpyLG9wZXJhdG9yOmEsaW1wb3J0YW50Om4ubGFuZ3VhZ2VzLnNhc3MuaW1wb3J0YW50fX19KSxkZWxldGUgbi5sYW5ndWFnZXMuc2Fzcy5wcm9wZXJ0eSxkZWxldGUgbi5sYW5ndWFnZXMuc2Fzcy5pbXBvcnRhbnQsbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzYXNzIiwicHVuY3R1YXRpb24iLHtzZWxlY3Rvcjp7cGF0dGVybjovXihbIFx0XSopXFMoPzosW14sXHJcbl0rfFteLFxyXG5dKikoPzosW14sXHJcbl0rKSooPzosKD86XHI/XG58XHIpXDFbIFx0XStcUyg/OixbXixcclxuXSt8W14sXHJcbl0qKSg/OixbXixcclxuXSspKikqL20sbG9va2JlaGluZDohMCxncmVlZHk6ITB9fSl9KSh0KX1yZXR1cm4gUXB9dmFyIEpwLExBO2Z1bmN0aW9uIG42KCl7aWYoTEEpcmV0dXJuIEpwO0xBPTE7dmFyIGU9TWIoKTtKcD10LHQuZGlzcGxheU5hbWU9InNjYWxhIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLnNjYWxhPW4ubGFuZ3VhZ2VzLmV4dGVuZCgiamF2YSIseyJ0cmlwbGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LyIiIltcc1xTXSo/IiIiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzpcXC58KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxrZXl3b3JkOi88LXw9PnxcYig/OmFic3RyYWN0fGNhc2V8Y2F0Y2h8Y2xhc3N8ZGVmfGRvfGVsc2V8ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZvcnxmb3JTb21lfGlmfGltcGxpY2l0fGltcG9ydHxsYXp5fG1hdGNofG5ld3xudWxsfG9iamVjdHxvdmVycmlkZXxwYWNrYWdlfHByaXZhdGV8cHJvdGVjdGVkfHJldHVybnxzZWFsZWR8c2VsZnxzdXBlcnx0aGlzfHRocm93fHRyYWl0fHRyeXx0eXBlfHZhbHx2YXJ8d2hpbGV8d2l0aHx5aWVsZClcYi8sbnVtYmVyOi9cYjB4KD86W1xkYS1mXSpcLik/W1xkYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVxkKyk/W2RmbF0/L2ksYnVpbHRpbjovXGIoPzpBbnl8QW55UmVmfEFueVZhbHxCb29sZWFufEJ5dGV8Q2hhcnxEb3VibGV8RmxvYXR8SW50fExvbmd8Tm90aGluZ3xTaG9ydHxTdHJpbmd8VW5pdClcYi8sc3ltYm9sOi8nW15cZFxzXFxdXHcqL30pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2NhbGEiLCJ0cmlwbGUtcXVvdGVkLXN0cmluZyIseyJzdHJpbmctaW50ZXJwb2xhdGlvbiI6e3BhdHRlcm46L1xiW2Etel1cdyooPzoiIiIoPzpbXiRdfFwkKD86W157XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSkqPyIiInwiKD86W14kIlxyXG5dfFwkKD86W157XXxceyg/Oltee31dfFx7W157fV0qXH0pKlx9KSkqIikvaSxncmVlZHk6ITAsaW5zaWRlOntpZDp7cGF0dGVybjovXlx3Ky8sZ3JlZWR5OiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGVzY2FwZTp7cGF0dGVybjovXFxcJCJ8XCRbJCJdLyxncmVlZHk6ITAsYWxpYXM6InN5bWJvbCJ9LGludGVycG9sYXRpb246e3BhdHRlcm46L1wkKD86XHcrfFx7KD86W157fV18XHtbXnt9XSpcfSkqXH0pLyxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlwkXHs/fFx9JC8sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm4ubGFuZ3VhZ2VzLnNjYWxhfX19LHN0cmluZzovW1xzXFNdKy99fX0pLGRlbGV0ZSBuLmxhbmd1YWdlcy5zY2FsYVsiY2xhc3MtbmFtZSJdLGRlbGV0ZSBuLmxhbmd1YWdlcy5zY2FsYS5mdW5jdGlvbn1yZXR1cm4gSnB9dmFyIGVmLERBO2Z1bmN0aW9uIHI2KCl7aWYoREEpcmV0dXJuIGVmO0RBPTEsZWY9ZSxlLmRpc3BsYXlOYW1lPSJzY3NzIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5zY3NzPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY3NzIix7Y29tbWVudDp7cGF0dGVybjovKF58W15cXF0pKD86XC9cKltcc1xTXSo/XCpcL3xcL1wvLiopLyxsb29rYmVoaW5kOiEwfSxhdHJ1bGU6e3BhdHRlcm46L0BbXHctXSg/OlwoW14oKV0rXCl8W14oKVxzXXxccysoPyFccykpKj8oPz1ccytbeztdKS8saW5zaWRlOntydWxlOi9AW1x3LV0rL319LHVybDovKD86Wy1hLXpdKy0pP3VybCg/PVwoKS9pLHNlbGVjdG9yOntwYXR0ZXJuOi8oPz1cUylbXkA7e30oKV0/KD86W15AO3t9KClcc118XHMrKD8hXHMpfCNce1wkWy1cd10rXH0pKyg/PVxzKlx7KD86XH18XHN8W159XVteOnt9XSpbOntdW159XSkpLyxpbnNpZGU6e3BhcmVudDp7cGF0dGVybjovJi8sYWxpYXM6ImltcG9ydGFudCJ9LHBsYWNlaG9sZGVyOi8lWy1cd10rLyx2YXJpYWJsZTovXCRbLVx3XSt8I1x7XCRbLVx3XStcfS99fSxwcm9wZXJ0eTp7cGF0dGVybjovKD86Wy1cd118XCRbLVx3XXwjXHtcJFstXHddK1x9KSsoPz1ccyo6KS8saW5zaWRlOnt2YXJpYWJsZTovXCRbLVx3XSt8I1x7XCRbLVx3XStcfS99fX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic2NzcyIsImF0cnVsZSIse2tleXdvcmQ6Wy9AKD86Y29udGVudHxkZWJ1Z3xlYWNofGVsc2UoPzogaWYpP3xleHRlbmR8Zm9yfGZvcndhcmR8ZnVuY3Rpb258aWZ8aW1wb3J0fGluY2x1ZGV8bWl4aW58cmV0dXJufHVzZXx3YXJufHdoaWxlKVxiL2kse3BhdHRlcm46LyggKSg/OmZyb218dGhyb3VnaCkoPz0gKS8sbG9va2JlaGluZDohMH1dfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzY3NzIiwiaW1wb3J0YW50Iix7dmFyaWFibGU6L1wkWy1cd10rfCNce1wkWy1cd10rXH0vfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzY3NzIiwiZnVuY3Rpb24iLHsibW9kdWxlLW1vZGlmaWVyIjp7cGF0dGVybjovXGIoPzphc3xoaWRlfHNob3d8d2l0aClcYi9pLGFsaWFzOiJrZXl3b3JkIn0scGxhY2Vob2xkZXI6e3BhdHRlcm46LyVbLVx3XSsvLGFsaWFzOiJzZWxlY3RvciJ9LHN0YXRlbWVudDp7cGF0dGVybjovXEIhKD86ZGVmYXVsdHxvcHRpb25hbClcYi9pLGFsaWFzOiJrZXl3b3JkIn0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudWxsOntwYXR0ZXJuOi9cYm51bGxcYi8sYWxpYXM6ImtleXdvcmQifSxvcGVyYXRvcjp7cGF0dGVybjovKFxzKSg/OlstKypcLyVdfFs9IV09fDw9P3w+PT98YW5kfG5vdHxvcikoPz1ccykvLGxvb2tiZWhpbmQ6ITB9fSksdC5sYW5ndWFnZXMuc2Nzcy5hdHJ1bGUuaW5zaWRlLnJlc3Q9dC5sYW5ndWFnZXMuc2Nzc31yZXR1cm4gZWZ9dmFyIHRmLE1BO2Z1bmN0aW9uIGE2KCl7aWYoTUEpcmV0dXJuIHRmO01BPTE7dmFyIGU9akMoKTt0Zj10LHQuZGlzcGxheU5hbWU9InNoZWxsU2Vzc2lvbiIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXt2YXIgYT1bLyIoPzpcXFtcc1xTXXxcJFwoW14pXStcKXxcJCg/IVwoKXxgW15gXStgfFteIlxcYCRdKSoiLy5zb3VyY2UsLydbXiddKicvLnNvdXJjZSwvXCQnKD86W14nXFxdfFxcW1xzXFNdKSonLy5zb3VyY2UsLzw8LT9ccyooWyInXT8pKFx3KylcMVxzW1xzXFNdKj9bXHJcbl1cMi8uc291cmNlXS5qb2luKCJ8Iik7ci5sYW5ndWFnZXNbInNoZWxsLXNlc3Npb24iXT17Y29tbWFuZDp7cGF0dGVybjpSZWdFeHAoL14vLnNvdXJjZSsiKD86IisoL1teXHNAOiQjJSohL1xcXStAW15cclxuQDokIyUqIS9cXF0rKD86OlteXDAtXHgxRiQjJSo/Ijw+Ojt8XSspPy8uc291cmNlKyJ8IisvWy9+Ll1bXlwwLVx4MUYkIyUqPyI8PkA6O3xdKi8uc291cmNlKSsiKT8iKy9bJCMlXSg/PVxzKS8uc291cmNlKy8oPzpbXlxcXHJcbiBcdCciPCRdfFsgXHRdKD86KD8hIyl8Iy4qJCl8XFwoPzpbXlxyXXxcclxuPyl8XCQoPyEnKXw8KD8hPCl8PDxzdHI+PikrLy5zb3VyY2UucmVwbGFjZSgvPDxzdHI+Pi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSwibSIpLGdyZWVkeTohMCxpbnNpZGU6e2luZm86e3BhdHRlcm46L15bXiMkJV0rLyxhbGlhczoicHVuY3R1YXRpb24iLGluc2lkZTp7dXNlcjovXlteXHNAOiQjJSohL1xcXStAW15cclxuQDokIyUqIS9cXF0rLyxwdW5jdHVhdGlvbjovOi8scGF0aDovW1xzXFNdKy99fSxiYXNoOntwYXR0ZXJuOi8oXlskIyVdXHMqKVxTW1xzXFNdKi8sbG9va2JlaGluZDohMCxhbGlhczoibGFuZ3VhZ2UtYmFzaCIsaW5zaWRlOnIubGFuZ3VhZ2VzLmJhc2h9LCJzaGVsbC1zeW1ib2wiOntwYXR0ZXJuOi9eWyQjJV0vLGFsaWFzOiJpbXBvcnRhbnQifX19LG91dHB1dDovLig/Oi4qKD86W1xyXG5dfC4kKSkqL30sci5sYW5ndWFnZXNbInNoLXNlc3Npb24iXT1yLmxhbmd1YWdlcy5zaGVsbHNlc3Npb249ci5sYW5ndWFnZXNbInNoZWxsLXNlc3Npb24iXX0obil9cmV0dXJuIHRmfXZhciBuZixQQTtmdW5jdGlvbiBpNigpe2lmKFBBKXJldHVybiBuZjtQQT0xLG5mPWUsZS5kaXNwbGF5TmFtZT0ic21hbGkiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnNtYWxpPXtjb21tZW50Oi8jLiovLHN0cmluZzp7cGF0dGVybjovIig/OlteXHJcblxcIl18XFwuKSoifCcoPzpbXlxyXG5cXCddfFxcKD86Lnx1W1xkYS1mQS1GXXs0fSkpJy8sZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhefFteTF0pTCg/Oig/Olx3K3xgW15gXHJcbl0qYClcLykqKD86W1x3JF0rfGBbXmBcclxuXSpgKSg/PVxzKjspLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImNsYXNzLW5hbWUiOntwYXR0ZXJuOi8oXkx8XC8pKD86W1x3JF0rfGBbXmBcclxuXSpgKSQvLGxvb2tiZWhpbmQ6ITB9LG5hbWVzcGFjZTp7cGF0dGVybjovXihMKSg/Oig/Olx3K3xgW15gXHJcbl0qYClcLykrLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wvL319LGJ1aWx0aW46L15ML319LGJ1aWx0aW46W3twYXR0ZXJuOi8oWygpO1xbXSlbQkNERklKU1ZaXSsvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oW1x3JD5dOilbQkNERklKU1ZaXS8sbG9va2JlaGluZDohMH1dLGtleXdvcmQ6W3twYXR0ZXJuOi8oXC5lbmRccyspW1x3LV0rLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W15cdy4tXSlcLig/IVxkKVtcdy1dKy8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhefFteXHcuLV0pKD86YWJzdHJhY3R8YW5ub3RhdGlvbnxicmlkZ2V8Y29uc3RydWN0b3J8ZW51bXxmaW5hbHxpbnRlcmZhY2V8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJ1bnRpbWV8c3RhdGljfHN5bnRoZXRpY3xzeXN0ZW18dHJhbnNpZW50KSg/IVtcdy4tXSkvLGxvb2tiZWhpbmQ6ITB9XSxmdW5jdGlvbjp7cGF0dGVybjovKF58W15cdy4tXSkoPzpcdyt8PFtcdyQtXSs+KSg/PVwoKS8sbG9va2JlaGluZDohMH0sZmllbGQ6e3BhdHRlcm46L1tcdyRdKyg/PTopLyxhbGlhczoidmFyaWFibGUifSxyZWdpc3Rlcjp7cGF0dGVybjovKF58W15cdy4tXSlbdnBdXGQoPyFbXHcuLV0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LGJvb2xlYW46e3BhdHRlcm46LyhefFteXHcuLV0pKD86ZmFsc2V8dHJ1ZSkoPyFbXHcuLV0pLyxsb29rYmVoaW5kOiEwfSxudW1iZXI6e3BhdHRlcm46LyhefFteL1x3Li1dKS0/KD86TkFOfElORklOSVRZfDB4KD86W1xkQS1GXSsoPzpcLltcZEEtRl0qKT98XC5bXGRBLUZdKykoPzpwWystXT9bXGRBLUZdKyk/fCg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86ZVsrLV0/XGQrKT8pW2RmbHN0XT8oPyFbXHcuLV0pL2ksbG9va2JlaGluZDohMH0sbGFiZWw6e3BhdHRlcm46Lyg6KVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoicHJvcGVydHkifSxvcGVyYXRvcjovLT58XC5cLnxbXFs9XS8scHVuY3R1YXRpb246L1t7fSgpLDs6XS99fXJldHVybiBuZn12YXIgcmYsRkE7ZnVuY3Rpb24gbzYoKXtpZihGQSlyZXR1cm4gcmY7RkE9MSxyZj1lLGUuZGlzcGxheU5hbWU9InNtYWxsdGFsayIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuc21hbGx0YWxrPXtjb21tZW50OntwYXR0ZXJuOi8iKD86IiJ8W14iXSkqIi8sZ3JlZWR5OiEwfSxjaGFyOntwYXR0ZXJuOi9cJC4vLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8nKD86Jyd8W14nXSkqJy8sZ3JlZWR5OiEwfSxzeW1ib2w6LyNbXGRhLXpdK3wjKD86LXwoWytcL1xcKn48Pj1AJXwmPyFdKVwxPyl8Iyg/PVwoKS9pLCJibG9jay1hcmd1bWVudHMiOntwYXR0ZXJuOi8oXFtccyopOlteXFt8XSpcfC8sbG9va2JlaGluZDohMCxpbnNpZGU6e3ZhcmlhYmxlOi86W1xkYS16XSsvaSxwdW5jdHVhdGlvbjovXHwvfX0sInRlbXBvcmFyeS12YXJpYWJsZXMiOntwYXR0ZXJuOi9cfFtefF0rXHwvLGluc2lkZTp7dmFyaWFibGU6L1tcZGEtel0rL2kscHVuY3R1YXRpb246L1x8L319LGtleXdvcmQ6L1xiKD86bmV3fG5pbHxzZWxmfHN1cGVyKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjpbL1xkK3ItP1tcZEEtWl0rKD86XC5bXGRBLVpdKyk/KD86ZS0/XGQrKT8vLC9cYlxkKyg/OlwuXGQrKT8oPzplLT9cZCspPy9dLG9wZXJhdG9yOi9bPD1dPT98Oj18flt+PV18XC9cLz98XFxcXHw+Wz49XT98WyFeK1wtKiZ8LEBdLyxwdW5jdHVhdGlvbjovWy47Oj9cW1xdKCl7fV0vfX1yZXR1cm4gcmZ9dmFyIGFmLFVBO2Z1bmN0aW9uIHM2KCl7aWYoVUEpcmV0dXJuIGFmO1VBPTE7dmFyIGU9bHQoKTthZj10LHQuZGlzcGxheU5hbWU9InNtYXJ0eSIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXtyLmxhbmd1YWdlcy5zbWFydHk9e2NvbW1lbnQ6e3BhdHRlcm46L15ce1wqW1xzXFNdKj9cKlx9LyxncmVlZHk6ITB9LCJlbWJlZGRlZC1waHAiOntwYXR0ZXJuOi9eXHtwaHBcfVtcc1xTXSo/XHtcL3BocFx9LyxncmVlZHk6ITAsaW5zaWRlOntzbWFydHk6e3BhdHRlcm46L15ce3BocFx9fFx7XC9waHBcfSQvLGluc2lkZTpudWxsfSxwaHA6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJsYW5ndWFnZS1waHAiLGluc2lkZTpyLmxhbmd1YWdlcy5waHB9fX0sc3RyaW5nOlt7cGF0dGVybjovIig/OlxcLnxbXiJcXFxyXG5dKSoiLyxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi9ce1tee31dKlx9fGBbXmBdKmAvLGluc2lkZTp7ImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eW3tgXXxbYH1dJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm51bGx9fX0sdmFyaWFibGU6L1wkXHcrL319LHtwYXR0ZXJuOi8nKD86XFwufFteJ1xcXHJcbl0pKicvLGdyZWVkeTohMH1dLGtleXdvcmQ6e3BhdHRlcm46LyheXHtcLz8pW2Etel9dXHcqXGIoPyFcKCkvaSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHtcLz98XH0kLyxncmVlZHk6ITAsYWxpYXM6InB1bmN0dWF0aW9uIn0sbnVtYmVyOi9cYjB4W1xkQS1GYS1mXSt8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86W0VlXVstK10/XGQrKT8vLHZhcmlhYmxlOlsvXCQoPyFcZClcdysvLC8jKD8hXGQpXHcrIy8se3BhdHRlcm46LyhcLnwtPnxcd1xzKj0pKD8hXGQpXHcrXGIoPyFcKCkvLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXFspKD8hXGQpXHcrKD89XF0pLyxsb29rYmVoaW5kOiEwfV0sZnVuY3Rpb246e3BhdHRlcm46LyhcfFxzKilAP1thLXpfXVx3KnxcYlthLXpfXVx3Kig/PVwoKS9pLGxvb2tiZWhpbmQ6ITB9LCJhdHRyLW5hbWUiOi9cYlthLXpfXVx3Kig/PVxzKj0pL2ksYm9vbGVhbjovXGIoPzpmYWxzZXxub3xvZmZ8b258dHJ1ZXx5ZXMpXGIvLHB1bmN0dWF0aW9uOi9bXFtcXSgpe30uLDpgXXwtPi8sb3BlcmF0b3I6Wy9bK1wtKlwvJV18PT0/PT98WyE8Pl09P3wmJnxcfFx8Py8sL1xiaXNccysoPzpub3RccyspPyg/OmRpdnxldmVufG9kZCkoPzpccytieSk/XGIvLC9cYig/OmFuZHxlcXxndD9lfGd0fGx0P2V8bHR8bW9kfG5lcT98bm90fG9yKVxiL119LHIubGFuZ3VhZ2VzLnNtYXJ0eVsiZW1iZWRkZWQtcGhwIl0uaW5zaWRlLnNtYXJ0eS5pbnNpZGU9ci5sYW5ndWFnZXMuc21hcnR5LHIubGFuZ3VhZ2VzLnNtYXJ0eS5zdHJpbmdbMF0uaW5zaWRlLmludGVycG9sYXRpb24uaW5zaWRlLmV4cHJlc3Npb24uaW5zaWRlPXIubGFuZ3VhZ2VzLnNtYXJ0eTt2YXIgYT0vIig/OlxcLnxbXiJcXFxyXG5dKSoifCcoPzpcXC58W14nXFxcclxuXSkqJy8saT1SZWdFeHAoL1x7XCpbXHNcU10qP1wqXH0vLnNvdXJjZSsifCIrL1x7cGhwXH1bXHNcU10qP1x7XC9waHBcfS8uc291cmNlKyJ8IisvXHsoPzpbXnt9IiddfDxzdHI+fFx7KD86W157fSInXXw8c3RyPnxceyg/Oltee30iJ118PHN0cj4pKlx9KSpcfSkqXH0vLnNvdXJjZS5yZXBsYWNlKC88c3RyPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGEuc291cmNlfSksImciKTtyLmhvb2tzLmFkZCgiYmVmb3JlLXRva2VuaXplIixmdW5jdGlvbihvKXt2YXIgcz0ie2xpdGVyYWx9IixsPSJ7L2xpdGVyYWx9Iix1PSExO3IubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLmJ1aWxkUGxhY2Vob2xkZXJzKG8sInNtYXJ0eSIsaSxmdW5jdGlvbihjKXtyZXR1cm4gYz09PWwmJih1PSExKSx1PyExOihjPT09cyYmKHU9ITApLCEwKX0pfSksci5ob29rcy5hZGQoImFmdGVyLXRva2VuaXplIixmdW5jdGlvbihvKXtyLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS50b2tlbml6ZVBsYWNlaG9sZGVycyhvLCJzbWFydHkiKX0pfShuKX1yZXR1cm4gYWZ9dmFyIG9mLEJBO2Z1bmN0aW9uIGw2KCl7aWYoQkEpcmV0dXJuIG9mO0JBPTEsb2Y9ZSxlLmRpc3BsYXlOYW1lPSJzbWwiLGUuYWxpYXNlcz1bInNtbG5qIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1xiKD86YWJzdHlwZXxhbmR8YW5kYWxzb3xhc3xjYXNlfGRhdGF0eXBlfGRvfGVsc2V8ZW5kfGVxdHlwZXxleGNlcHRpb258Zm58ZnVufGZ1bmN0b3J8aGFuZGxlfGlmfGlufGluY2x1ZGV8aW5maXh8aW5maXhyfGxldHxsb2NhbHxub25maXh8b2Z8b3B8b3BlbnxvcmVsc2V8cmFpc2V8cmVjfHNoYXJpbmd8c2lnfHNpZ25hdHVyZXxzdHJ1Y3R8c3RydWN0dXJlfHRoZW58dHlwZXx2YWx8d2hlcmV8d2hpbGV8d2l0aHx3aXRodHlwZSlcYi9pO24ubGFuZ3VhZ2VzLnNtbD17Y29tbWVudDovXChcKig/OlteKihdfFwqKD8hXCkpfFwoKD8hXCopfFwoXCooPzpbXiooXXxcKig/IVwpKXxcKCg/IVwqKSkqXCpcKSkqXCpcKS8sc3RyaW5nOntwYXR0ZXJuOi8jPyIoPzpbXiJcXF18XFwuKSoiLyxncmVlZHk6ITB9LCJjbGFzcy1uYW1lIjpbe3BhdHRlcm46UmVnRXhwKC8oKD86XnxbXjpdKTpccyopPFRFUk1JTkFMPig/OlxzKig/Oig/OlwqfC0+KVxzKjxURVJNSU5BTD58LFxzKjxURVJNSU5BTD4oPzooPz08Tk9ULUxBU1Q+KXwoPyE8Tk9ULUxBU1Q+KVxzKzxMT05HLUlEPikpKSovLnNvdXJjZS5yZXBsYWNlKC88Tk9ULUxBU1Q+L2csZnVuY3Rpb24oKXtyZXR1cm4vXHMqKD86WyosXXwtPikvLnNvdXJjZX0pLnJlcGxhY2UoLzxURVJNSU5BTD4vZyxmdW5jdGlvbigpe3JldHVybi8oPzonW1x3J10qfDxMT05HLUlEPnxcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfFx7KD86W157fV18XHtbXnt9XSpcfSkqXH0pKD86XHMrPExPTkctSUQ+KSovLnNvdXJjZX0pLnJlcGxhY2UoLzxMT05HLUlEPi9nLGZ1bmN0aW9uKCl7cmV0dXJuLyg/ITxLRVlXT1JEPilbYS16XGRfXVtcdycuXSovLnNvdXJjZX0pLnJlcGxhY2UoLzxLRVlXT1JEPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIHIuc291cmNlfSksImkiKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6bnVsbH0se3BhdHRlcm46LygoPzpefFteXHcnXSkoPzpkYXRhdHlwZXxleGNlcHRpb258ZnVuY3RvcnxzaWduYXR1cmV8c3RydWN0dXJlfHR5cGUpXHMrKVthLXpfXVtcdycuXSovaSxsb29rYmVoaW5kOiEwfV0sZnVuY3Rpb246e3BhdHRlcm46LygoPzpefFteXHcnXSlmdW5ccyspW2Etel9dW1x3Jy5dKi9pLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6cix2YXJpYWJsZTp7cGF0dGVybjovKF58W15cdyddKSdbXHcnXSovLGxvb2tiZWhpbmQ6ITB9LG51bWJlcjovfj9cYig/OlxkKyg/OlwuXGQrKT8oPzplfj9cZCspP3wweFtcZGEtZl0rKVxiL2ksd29yZDp7cGF0dGVybjovXGIwdyg/OlxkK3x4W1xkYS1mXSspXGIvaSxhbGlhczoiY29uc3RhbnQifSxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvaSxvcGVyYXRvcjovXC5cLlwufDpbPj06XXw9Pj98LT58Wzw+XT0/fFshK1wtKi9eI3xAfl0vLHB1bmN0dWF0aW9uOi9bKCl7fVxbXF0uOiw7XS99LG4ubGFuZ3VhZ2VzLnNtbFsiY2xhc3MtbmFtZSJdWzBdLmluc2lkZT1uLmxhbmd1YWdlcy5zbWwsbi5sYW5ndWFnZXMuc21sbmo9bi5sYW5ndWFnZXMuc21sfSkodCl9cmV0dXJuIG9mfXZhciBzZiwkQTtmdW5jdGlvbiB1Nigpe2lmKCRBKXJldHVybiBzZjskQT0xLHNmPWUsZS5kaXNwbGF5TmFtZT0ic29saWRpdHkiLGUuYWxpYXNlcz1bInNvbCJdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMuc29saWRpdHk9dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIseyJjbGFzcy1uYW1lIjp7cGF0dGVybjovKFxiKD86Y29udHJhY3R8ZW51bXxpbnRlcmZhY2V8bGlicmFyeXxuZXd8c3RydWN0fHVzaW5nKVxzKykoPyFcZClbXHckXSsvLGxvb2tiZWhpbmQ6ITB9LGtleXdvcmQ6L1xiKD86X3xhbm9ueW1vdXN8YXN8YXNzZW1ibHl8YXNzZXJ0fGJyZWFrfGNhbGxkYXRhfGNhc2V8Y29uc3RhbnR8Y29uc3RydWN0b3J8Y29udGludWV8Y29udHJhY3R8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbWl0fGVudW18ZXZlbnR8ZXh0ZXJuYWx8Zm9yfGZyb218ZnVuY3Rpb258aWZ8aW1wb3J0fGluZGV4ZWR8aW5oZXJpdGVkfGludGVyZmFjZXxpbnRlcm5hbHxpc3xsZXR8bGlicmFyeXxtYXBwaW5nfG1lbW9yeXxtb2RpZmllcnxuZXd8cGF5YWJsZXxwcmFnbWF8cHJpdmF0ZXxwdWJsaWN8cHVyZXxyZXF1aXJlfHJldHVybnM/fHJldmVydHxzZWxmZGVzdHJ1Y3R8c29saWRpdHl8c3RvcmFnZXxzdHJ1Y3R8c3VpY2lkZXxzd2l0Y2h8dGhpc3x0aHJvd3x1c2luZ3x2YXJ8dmlld3x3aGlsZSlcYi8sb3BlcmF0b3I6Lz0+fC0+fDo9fD06fFwqXCp8XCtcK3wtLXxcfFx8fCYmfDw8PT98Pj49P3xbLSsqLyVeJnw8PiE9XT0/fFt+P10vfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzb2xpZGl0eSIsImtleXdvcmQiLHtidWlsdGluOi9cYig/OmFkZHJlc3N8Ym9vbHxieXRlfHU/aW50KD86OHwxNnwyNHwzMnw0MHw0OHw1Nnw2NHw3Mnw4MHw4OHw5NnwxMDR8MTEyfDEyMHwxMjh8MTM2fDE0NHwxNTJ8MTYwfDE2OHwxNzZ8MTg0fDE5MnwyMDB8MjA4fDIxNnwyMjR8MjMyfDI0MHwyNDh8MjU2KT98c3RyaW5nfGJ5dGVzKD86WzEtOV18WzEyXVxkfDNbMC0yXSk/KVxiL30pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic29saWRpdHkiLCJudW1iZXIiLHt2ZXJzaW9uOntwYXR0ZXJuOi8oWzw+XT0/fFxeKVxkK1wuXGQrXC5cZCtcYi8sbG9va2JlaGluZDohMCxhbGlhczoibnVtYmVyIn19KSx0Lmxhbmd1YWdlcy5zb2w9dC5sYW5ndWFnZXMuc29saWRpdHl9cmV0dXJuIHNmfXZhciBsZix6QTtmdW5jdGlvbiBjNigpe2lmKHpBKXJldHVybiBsZjt6QT0xLGxmPWUsZS5kaXNwbGF5TmFtZT0ic29sdXRpb25GaWxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9e3BhdHRlcm46L1x7W1xkYS1mXXs4fS1bXGRhLWZdezR9LVtcZGEtZl17NH0tW1xkYS1mXXs0fS1bXGRhLWZdezEyfVx9L2ksYWxpYXM6ImNvbnN0YW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi9be31dL319O24ubGFuZ3VhZ2VzWyJzb2x1dGlvbi1maWxlIl09e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46LyJbXiJcclxuXSoifCdbXidcclxuXSonLyxncmVlZHk6ITAsaW5zaWRlOntndWlkOnJ9fSxvYmplY3Q6e3BhdHRlcm46L14oWyBcdF0qKSg/OihbQS1aXVx3KilcYig/PS4qKD86XHJcbj98XG4pKD86XDFbIFx0XS4qKD86XHJcbj98XG4pKSpcMUVuZFwyKD89WyBcdF0qJCkpfEVuZFtBLVpdXHcqKD89WyBcdF0qJCkpL20sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6ImtleXdvcmQifSxwcm9wZXJ0eTp7cGF0dGVybjovXihbIFx0XSopKD8hXHMpW15cclxuIiM9KCldKlteXHMiIz0oKV0oPz1ccyo9KS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntndWlkOnJ9fSxndWlkOnIsbnVtYmVyOi9cYlxkKyg/OlwuXGQrKSpcYi8sYm9vbGVhbjovXGIoPzpGQUxTRXxUUlVFKVxiLyxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246L1soKSxdL30sbi5sYW5ndWFnZXMuc2xuPW4ubGFuZ3VhZ2VzWyJzb2x1dGlvbi1maWxlIl19KSh0KX1yZXR1cm4gbGZ9dmFyIHVmLGpBO2Z1bmN0aW9uIGQ2KCl7aWYoakEpcmV0dXJuIHVmO2pBPTE7dmFyIGU9bHQoKTt1Zj10LHQuZGlzcGxheU5hbWU9InNveSIsdC5hbGlhc2VzPVtdO2Z1bmN0aW9uIHQobil7bi5yZWdpc3RlcihlKSxmdW5jdGlvbihyKXt2YXIgYT0vKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8saT0vXGJcZCsoPzpcLlxkKyk/KD86W2VFXVsrLV0/XGQrKT9cYnxcYjB4W1xkQS1GXStcYi87ci5sYW5ndWFnZXMuc295PXtjb21tZW50OlsvXC9cKltcc1xTXSo/XCpcLy8se3BhdHRlcm46LyhccylcL1wvLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sImNvbW1hbmQtYXJnIjp7cGF0dGVybjovKFx7K1wvP1xzKig/OmFsaWFzfGNhbGx8ZGVsY2FsbHxkZWxwYWNrYWdlfGRlbHRlbXBsYXRlfG5hbWVzcGFjZXx0ZW1wbGF0ZSlccyspXC4/W1x3Ll0rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmciLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LHBhcmFtZXRlcjp7cGF0dGVybjovKFx7K1wvP1xzKkA/cGFyYW1cPz9ccyspXC4/W1x3Ll0rLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJ2YXJpYWJsZSJ9LGtleXdvcmQ6W3twYXR0ZXJuOi8oXHsrXC8/W15cU1xyXG5dKikoPzpcXFtucnRdfGFsaWFzfGNhbGx8Y2FzZXxjc3N8ZGVmYXVsdHxkZWxjYWxsfGRlbHBhY2thZ2V8ZGVsdGVtcGxhdGV8ZWxzZSg/OmlmKT98ZmFsbGJhY2ttc2d8Zm9yKD86ZWFjaCk/fGlmKD86ZW1wdHkpP3xsYnxsZXR8bGl0ZXJhbHxtc2d8bmFtZXNwYWNlfG5pbHxAP3BhcmFtXD8/fHJifHNwfHN3aXRjaHx0ZW1wbGF0ZXx4aWQpLyxsb29rYmVoaW5kOiEwfSwvXGIoPzphbnl8YXN8YXR0cmlidXRlc3xib29sfGNzc3xmbG9hdHxodG1sfGlufGludHxqc3xsaXN0fG1hcHxudWxsfG51bWJlcnxzdHJpbmd8dXJpKVxiL10sZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHsrXC8/fFwvP1x9KyQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHByb3BlcnR5Oi9cdysoPz09KS8sdmFyaWFibGU6e3BhdHRlcm46L1wkW15cV1xkXVx3Kig/Olw/Pyg/OlwuXHcrfFxbW15cXV0rXF0pKSovLGluc2lkZTp7c3RyaW5nOntwYXR0ZXJuOmEsZ3JlZWR5OiEwfSxudW1iZXI6aSxwdW5jdHVhdGlvbjovW1xbXF0uP10vfX0sc3RyaW5nOntwYXR0ZXJuOmEsZ3JlZWR5OiEwfSxmdW5jdGlvbjpbL1x3Kyg/PVwoKS8se3BhdHRlcm46LyhcfFteXFNcclxuXSopXHcrLyxsb29rYmVoaW5kOiEwfV0sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6aSxvcGVyYXRvcjovXD86P3w8PT98Pj0/fD09P3whPXxbKyovJS1dfFxiKD86YW5kfG5vdHxvcilcYi8scHVuY3R1YXRpb246L1t7fSgpXFtcXXwuLDpdL30sci5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24obyl7dmFyIHM9L1x7XHsuKz9cfVx9fFx7Lis/XH18XHNcL1wvLip8XC9cKltcc1xTXSo/XCpcLy9nLGw9IntsaXRlcmFsfSIsdT0iey9saXRlcmFsfSIsYz0hMTtyLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhvLCJzb3kiLHMsZnVuY3Rpb24oZCl7cmV0dXJuIGQ9PT11JiYoYz0hMSksYz8hMTooZD09PWwmJihjPSEwKSwhMCl9KX0pLHIuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24obyl7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMobywic295Iil9KX0obil9cmV0dXJuIHVmfXZhciBjZixHQTtmdW5jdGlvbiBIQygpe2lmKEdBKXJldHVybiBjZjtHQT0xLGNmPWUsZS5kaXNwbGF5TmFtZT0idHVydGxlIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy50dXJ0bGU9e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSwibXVsdGlsaW5lLXN0cmluZyI6e3BhdHRlcm46LyIiIig/Oig/OiIiPyk/KD86W14iXFxdfFxcLikpKiIiInwnJycoPzooPzonJz8pPyg/OlteJ1xcXXxcXC4pKSonJycvLGdyZWVkeTohMCxhbGlhczoic3RyaW5nIixpbnNpZGU6e2NvbW1lbnQ6LyMuKi99fSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXlxcIlxyXG5dfFxcLikqInwnKD86W15cXCdcclxuXXxcXC4pKicvLGdyZWVkeTohMH0sdXJsOntwYXR0ZXJuOi88KD86W15ceDAwLVx4MjA8PiJ7fXxeYFxcXXxcXCg/OnVbXGRhLWZBLUZdezR9fFVbXGRhLWZBLUZdezh9KSkqPi8sZ3JlZWR5OiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1s8Pl0vfX0sZnVuY3Rpb246e3BhdHRlcm46Lyg/Oig/IVstLlxkXHhCN10pWy0uXHdceEI3XHhDMC1cdUZGRkRdKyk/Oig/Oig/IVstLl0pKD86Wy0uOlx3XHhDMC1cdUZGRkRdfCVbXGRhLWZdezJ9fFxcLikrKT8vaSxpbnNpZGU6eyJsb2NhbC1uYW1lIjp7cGF0dGVybjovKFteOl0qOilbXHNcU10rLyxsb29rYmVoaW5kOiEwfSxwcmVmaXg6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTp7cHVuY3R1YXRpb246LzovfX19fSxudW1iZXI6L1srLV0/XGJcZCsoPzpcLlxkKik/KD86ZVsrLV0/XGQrKT8vaSxwdW5jdHVhdGlvbjovW3t9Liw7KClbXF1dfFxeXF4vLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sa2V5d29yZDpbLyg/OlxiYXxAcHJlZml4fEBiYXNlKVxifD0vLC9cYig/OmJhc2V8Z3JhcGh8cHJlZml4KVxiL2ldLHRhZzp7cGF0dGVybjovQFthLXpdKyg/Oi1bYS16XGRdKykqL2ksaW5zaWRlOntwdW5jdHVhdGlvbjovQC99fX0sdC5sYW5ndWFnZXMudHJpZz10Lmxhbmd1YWdlcy50dXJ0bGV9cmV0dXJuIGNmfXZhciBkZixxQTtmdW5jdGlvbiBwNigpe2lmKHFBKXJldHVybiBkZjtxQT0xO3ZhciBlPUhDKCk7ZGY9dCx0LmRpc3BsYXlOYW1lPSJzcGFycWwiLHQuYWxpYXNlcz1bInJxIl07ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLnNwYXJxbD1uLmxhbmd1YWdlcy5leHRlbmQoInR1cnRsZSIse2Jvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLHZhcmlhYmxlOntwYXR0ZXJuOi9bPyRdXHcrLyxncmVlZHk6ITB9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzcGFycWwiLCJwdW5jdHVhdGlvbiIse2tleXdvcmQ6Wy9cYig/OkF8QUREfEFMTHxBU3xBU0N8QVNLfEJOT0RFfEJZfENMRUFSfENPTlNUUlVDVHxDT1BZfENSRUFURXxEQVRBfERFRkFVTFR8REVMRVRFfERFU0N8REVTQ1JJQkV8RElTVElOQ1R8RFJPUHxFWElTVFN8RklMVEVSfEZST018R1JPVVB8SEFWSU5HfElOU0VSVHxJTlRPfExJTUlUfExPQUR8TUlOVVN8TU9WRXxOQU1FRHxOT1R8Tk9XfE9GRlNFVHxPUFRJT05BTHxPUkRFUnxSQU5EfFJFRFVDRUR8U0VMRUNUfFNFUEFSQVRPUnxTRVJWSUNFfFNJTEVOVHxTVFJVVUlEfFVOSU9OfFVTSU5HfFVVSUR8VkFMVUVTfFdIRVJFKVxiL2ksL1xiKD86QUJTfEFWR3xCSU5EfEJPVU5EfENFSUx8Q09BTEVTQ0V8Q09OQ0FUfENPTlRBSU5TfENPVU5UfERBVEFUWVBFfERBWXxFTkNPREVfRk9SX1VSSXxGTE9PUnxHUk9VUF9DT05DQVR8SE9VUlN8SUZ8SVJJfGlzQkxBTkt8aXNJUkl8aXNMSVRFUkFMfGlzTlVNRVJJQ3xpc1VSSXxMQU5HfExBTkdNQVRDSEVTfExDQVNFfE1BWHxNRDV8TUlOfE1JTlVURVN8TU9OVEh8UkVHRVh8UkVQTEFDRXxST1VORHxzYW1lVGVybXxTQU1QTEV8U0VDT05EU3xTSEExfFNIQTI1NnxTSEEzODR8U0hBNTEyfFNUUnxTVFJBRlRFUnxTVFJCRUZPUkV8U1RSRFR8U1RSRU5EU3xTVFJMQU5HfFNUUkxFTnxTVFJTVEFSVFN8U1VCU1RSfFNVTXxUSU1FWk9ORXxUWnxVQ0FTRXxVUkl8WUVBUilcYig/PVxzKlwoKS9pLC9cYig/OkJBU0V8R1JBUEh8UFJFRklYKVxiL2ldfSksbi5sYW5ndWFnZXMucnE9bi5sYW5ndWFnZXMuc3BhcnFsfXJldHVybiBkZn12YXIgcGYsVkE7ZnVuY3Rpb24gZjYoKXtpZihWQSlyZXR1cm4gcGY7VkE9MSxwZj1lLGUuZGlzcGxheU5hbWU9InNwbHVua1NwbCIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXNbInNwbHVuay1zcGwiXT17Y29tbWVudDovYGNvbW1lbnRcKCIoPzpcXC58W15cXCJdKSoiXClgLyxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXC58W15cXCJdKSoiLyxncmVlZHk6ITB9LGtleXdvcmQ6L1xiKD86YWJzdHJhY3R8YWNjdW18YWRkY29sdG90YWxzfGFkZGluZm98YWRkdG90YWxzfGFuYWx5emVmaWVsZHN8YW5vbWFsaWVzfGFub21hbG91c3ZhbHVlfGFub21hbHlkZXRlY3Rpb258YXBwZW5kfGFwcGVuZGNvbHN8YXBwZW5kY3N2fGFwcGVuZGxvb2t1cHxhcHBlbmRwaXBlfGFydWxlc3xhc3NvY2lhdGV8YXVkaXR8YXV0b3JlZ3Jlc3N8YmlufGJ1Y2tldHxidWNrZXRkaXJ8Y2hhcnR8Y2x1c3Rlcnxjb2ZpbHRlcnxjb2xsZWN0fGNvbmN1cnJlbmN5fGNvbnRpbmdlbmN5fGNvbnZlcnR8Y29ycmVsYXRlfGRhdGFtb2RlbHxkYmluc3BlY3R8ZGVkdXB8ZGVsZXRlfGRlbHRhfGRpZmZ8ZXJleHxldmFsfGV2ZW50Y291bnR8ZXZlbnRzdGF0c3xleHRyYWN0fGZpZWxkZm9ybWF0fGZpZWxkc3xmaWVsZHN1bW1hcnl8ZmlsbGRvd258ZmlsbG51bGx8ZmluZHR5cGVzfGZvbGRlcml6ZXxmb3JlYWNofGZvcm1hdHxmcm9tfGdhdWdlfGdlbnRpbWVzfGdlb218Z2VvbWZpbHRlcnxnZW9zdGF0c3xoZWFkfGhpZ2hsaWdodHxoaXN0b3J5fGljb25pZnl8aW5wdXR8aW5wdXRjc3Z8aW5wdXRsb29rdXB8aXBsb2NhdGlvbnxqb2lufGttZWFuc3xrdnxrdmZvcm18bG9hZGpvYnxsb2NhbGl6ZXxsb2NhbG9wfGxvb2t1cHxtYWtlY29udGludW91c3xtYWtlbXZ8bWFrZXJlc3VsdHN8bWFwfG1jb2xsZWN0fG1ldGFkYXRhfG1ldGFzZWFyY2h8bWV2ZW50Y29sbGVjdHxtc3RhdHN8bXVsdGlrdnxtdWx0aXNlYXJjaHxtdmNvbWJpbmV8bXZleHBhbmR8bm9tdnxvdXRsaWVyfG91dHB1dGNzdnxvdXRwdXRsb29rdXB8b3V0cHV0dGV4dHxvdmVybGFwfHBpdm90fHByZWRpY3R8cmFuZ2VtYXB8cmFyZXxyZWdleHxyZWxldmFuY3l8cmVsdGltZXxyZW5hbWV8cmVwbGFjZXxyZXN0fHJldHVybnxyZXZlcnNlfHJleHxydG9yZGVyfHJ1bnxzYXZlZHNlYXJjaHxzY3JpcHR8c2NydWJ8c2VhcmNofHNlYXJjaHR4bnxzZWxmam9pbnxzZW5kZW1haWx8c2V0fHNldGZpZWxkc3xzaWNoYXJ0fHNpcmFyZXxzaXN0YXRzfHNpdGltZWNoYXJ0fHNpdG9wfHNvcnR8c3BhdGh8c3RhdHN8c3RyY2F0fHN0cmVhbXN0YXRzfHRhYmxlfHRhZ3N8dGFpbHx0aW1lY2hhcnR8dGltZXdyYXB8dG9wfHRyYW5zYWN0aW9ufHRyYW5zcG9zZXx0cmVuZGxpbmV8dHNjb2xsZWN0fHRzdGF0c3x0eXBlYWhlYWR8dHlwZWxlYXJuZXJ8dHlwZXJ8dW5pb258dW5pcXx1bnRhYmxlfHdoZXJlfHgxMXx4bWxrdnx4bWx1bmVzY2FwZXx4cGF0aHx4eXNlcmllcylcYi9pLCJvcGVyYXRvci13b3JkIjp7cGF0dGVybjovXGIoPzphbmR8YXN8Ynl8bm90fG9yfHhvcilcYi9pLGFsaWFzOiJvcGVyYXRvciJ9LGZ1bmN0aW9uOi9cYlx3Kyg/PVxzKlwoKS8scHJvcGVydHk6L1xiXHcrKD89XHMqPSg/IT0pKS8sZGF0ZTp7cGF0dGVybjovXGJcZHsxLDJ9XC9cZHsxLDJ9XC9cZHsxLDR9KD86KD86OlxkezEsMn0pezN9KT9cYi8sYWxpYXM6Im51bWJlciJ9LG51bWJlcjovXGJcZCsoPzpcLlxkKyk/XGIvLGJvb2xlYW46L1xiKD86ZnxmYWxzZXx0fHRydWUpXGIvaSxvcGVyYXRvcjovWzw+PV09P3xbLSsqLyV8XS8scHVuY3R1YXRpb246L1soKVtcXSxdL319cmV0dXJuIHBmfXZhciBmZixIQTtmdW5jdGlvbiBtNigpe2lmKEhBKXJldHVybiBmZjtIQT0xLGZmPWUsZS5kaXNwbGF5TmFtZT0ic3FmIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5zcWY9dC5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovIig/Oig/OiIiKT9bXiJdKSoiKD8hIil8Jyg/OlteJ10pKicvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzpicmVha091dHxicmVha1RvfGNhbGx8Y2FzZXxjYXRjaHxkZWZhdWx0fGRvfGVjaG98ZWxzZXxleGVjRlNNfGV4ZWNWTXxleGl0V2l0aHxmb3J8Zm9yRWFjaHxmb3JFYWNoTWVtYmVyfGZvckVhY2hNZW1iZXJBZ2VudHxmb3JFYWNoTWVtYmVyVGVhbXxmcm9tfGdvdG98aWZ8bmlsfHByZXByb2Nlc3NGaWxlfHByZXByb2Nlc3NGaWxlTGluZU51bWJlcnN8cHJpdmF0ZXxzY29wZU5hbWV8c3Bhd258c3RlcHxzd2l0Y2h8dGhlbnx0aHJvd3x0b3x0cnl8d2hpbGV8d2l0aClcYi9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLGZ1bmN0aW9uOi9cYig/OmFic3xhY2NUaW1lfGFjb3N8YWN0aW9ufGFjdGlvbklEc3xhY3Rpb25LZXlzfGFjdGlvbktleXNJbWFnZXN8YWN0aW9uS2V5c05hbWVzfGFjdGlvbktleXNOYW1lc0FycmF5fGFjdGlvbk5hbWV8YWN0aW9uUGFyYW1zfGFjdGl2YXRlQWRkb25zfGFjdGl2YXRlZEFkZG9uc3xhY3RpdmF0ZUtleXxhZGQzREVOQ29ubmVjdGlvbnxhZGQzREVORXZlbnRIYW5kbGVyfGFkZDNERU5MYXllcnxhZGRBY3Rpb258YWRkQmFja3BhY2t8YWRkQmFja3BhY2tDYXJnb3xhZGRCYWNrcGFja0NhcmdvR2xvYmFsfGFkZEJhY2twYWNrR2xvYmFsfGFkZENhbVNoYWtlfGFkZEN1cmF0b3JBZGRvbnN8YWRkQ3VyYXRvckNhbWVyYUFyZWF8YWRkQ3VyYXRvckVkaXRhYmxlT2JqZWN0c3xhZGRDdXJhdG9yRWRpdGluZ0FyZWF8YWRkQ3VyYXRvclBvaW50c3xhZGRFZGl0b3JPYmplY3R8YWRkRXZlbnRIYW5kbGVyfGFkZEZvcmNlfGFkZEZvcmNlR2VuZXJhdG9yUlREfGFkZEdvZ2dsZXN8YWRkR3JvdXBJY29ufGFkZEhhbmRndW5JdGVtfGFkZEhlYWRnZWFyfGFkZEl0ZW18YWRkSXRlbUNhcmdvfGFkZEl0ZW1DYXJnb0dsb2JhbHxhZGRJdGVtUG9vbHxhZGRJdGVtVG9CYWNrcGFja3xhZGRJdGVtVG9Vbmlmb3JtfGFkZEl0ZW1Ub1Zlc3R8YWRkTGl2ZVN0YXRzfGFkZE1hZ2F6aW5lfGFkZE1hZ2F6aW5lQW1tb0NhcmdvfGFkZE1hZ2F6aW5lQ2FyZ298YWRkTWFnYXppbmVDYXJnb0dsb2JhbHxhZGRNYWdhemluZUdsb2JhbHxhZGRNYWdhemluZVBvb2x8YWRkTWFnYXppbmVzfGFkZE1hZ2F6aW5lVHVycmV0fGFkZE1lbnV8YWRkTWVudUl0ZW18YWRkTWlzc2lvbkV2ZW50SGFuZGxlcnxhZGRNUEV2ZW50SGFuZGxlcnxhZGRNdXNpY0V2ZW50SGFuZGxlcnxhZGRPd25lZE1pbmV8YWRkUGxheWVyU2NvcmVzfGFkZFByaW1hcnlXZWFwb25JdGVtfGFkZFB1YmxpY1ZhcmlhYmxlRXZlbnRIYW5kbGVyfGFkZFJhdGluZ3xhZGRSZXNvdXJjZXN8YWRkU2NvcmV8YWRkU2NvcmVTaWRlfGFkZFNlY29uZGFyeVdlYXBvbkl0ZW18YWRkU3dpdGNoYWJsZVVuaXR8YWRkVGVhbU1lbWJlcnxhZGRUb1JlbWFpbnNDb2xsZWN0b3J8YWRkVG9ycXVlfGFkZFVuaWZvcm18YWRkVmVoaWNsZXxhZGRWZXN0fGFkZFdheXBvaW50fGFkZFdlYXBvbnxhZGRXZWFwb25DYXJnb3xhZGRXZWFwb25DYXJnb0dsb2JhbHxhZGRXZWFwb25HbG9iYWx8YWRkV2VhcG9uSXRlbXxhZGRXZWFwb25Qb29sfGFkZFdlYXBvblR1cnJldHxhZG1pbnxhZ2VudHxhZ2VudHN8QUdMVG9BU0x8YWltZWRBdFRhcmdldHxhaW1Qb3N8YWlyRGVuc2l0eUN1cnZlUlREfGFpckRlbnNpdHlSVER8YWlycGxhbmVUaHJvdHRsZXxhaXJwb3J0U2lkZXxBSVNGaW5pc2hIZWFsfGFsaXZlfGFsbDNERU5FbnRpdGllc3xhbGxBaXJwb3J0c3xhbGxDb250cm9sc3xhbGxDdXJhdG9yc3xhbGxDdXRMYXllcnN8YWxsRGVhZHxhbGxEZWFkTWVufGFsbERpc3BsYXlzfGFsbEdyb3Vwc3xhbGxNYXBNYXJrZXJzfGFsbE1pbmVzfGFsbE1pc3Npb25PYmplY3RzfGFsbG93M0RNb2RlfGFsbG93Q3Jld0luSW1tb2JpbGV8YWxsb3dDdXJhdG9yTG9naWNJZ25vcmVBcmVhc3xhbGxvd0RhbWFnZXxhbGxvd0RhbW1hZ2V8YWxsb3dGaWxlT3BlcmF0aW9uc3xhbGxvd0ZsZWVpbmd8YWxsb3dHZXRJbnxhbGxvd1NwcmludHxhbGxQbGF5ZXJzfGFsbFNpbXBsZU9iamVjdHN8YWxsU2l0ZXN8YWxsVHVycmV0c3xhbGxVbml0c3xhbGxVbml0c1VBVnxhbGxWYXJpYWJsZXN8YW1tb3xhbW1vT25QeWxvbnxhbmltYXRlfGFuaW1hdGVCYXl8YW5pbWF0ZURvb3J8YW5pbWF0ZVB5bG9ufGFuaW1hdGVTb3VyY2V8YW5pbWF0aW9uTmFtZXN8YW5pbWF0aW9uUGhhc2V8YW5pbWF0aW9uU291cmNlUGhhc2V8YW5pbWF0aW9uU3RhdGV8YXBwZW5kfGFwcGx5fGFybW9yeVBvaW50c3xhcnJheUludGVyc2VjdHxhc2lufEFTTFRvQUdMfEFTTFRvQVRMfGFzc2VydHxhc3NpZ25Bc0NhcmdvfGFzc2lnbkFzQ2FyZ29JbmRleHxhc3NpZ25Bc0NvbW1hbmRlcnxhc3NpZ25Bc0RyaXZlcnxhc3NpZ25Bc0d1bm5lcnxhc3NpZ25Bc1R1cnJldHxhc3NpZ25DdXJhdG9yfGFzc2lnbmVkQ2FyZ298YXNzaWduZWRDb21tYW5kZXJ8YXNzaWduZWREcml2ZXJ8YXNzaWduZWRHdW5uZXJ8YXNzaWduZWRJdGVtc3xhc3NpZ25lZFRhcmdldHxhc3NpZ25lZFRlYW18YXNzaWduZWRWZWhpY2xlfGFzc2lnbmVkVmVoaWNsZVJvbGV8YXNzaWduSXRlbXxhc3NpZ25UZWFtfGFzc2lnblRvQWlycG9ydHxhdGFufGF0YW4yfGF0Z3xBVExUb0FTTHxhdHRhY2hlZE9iamVjdHxhdHRhY2hlZE9iamVjdHN8YXR0YWNoZWRUb3xhdHRhY2hPYmplY3R8YXR0YWNoVG98YXR0YWNrRW5hYmxlZHxiYWNrcGFja3xiYWNrcGFja0NhcmdvfGJhY2twYWNrQ29udGFpbmVyfGJhY2twYWNrSXRlbXN8YmFja3BhY2tNYWdhemluZXN8YmFja3BhY2tTcGFjZUZvcnxiZWhhdmlvdXJ8YmVuY2htYXJrfGJpbm9jdWxhcnxibHVmb3J8Ym91bmRpbmdCb3h8Ym91bmRpbmdCb3hSZWFsfGJvdW5kaW5nQ2VudGVyfGJyaWVmaW5nTmFtZXxidWlsZGluZ0V4aXR8YnVpbGRpbmdQb3N8YnVsZG96ZXJfRW5hYmxlUm9hZERpYWd8YnVsZG96ZXJfSXNFbmFibGVkUm9hZERpYWd8YnVsZG96ZXJfTG9hZE5ld1JvYWRzfGJ1bGRvemVyX3JlbG9hZE9wZXJNYXB8YnV0dG9uQWN0aW9ufGJ1dHRvblNldEFjdGlvbnxjYWRldE1vZGV8Y2FsbEV4dGVuc2lvbnxjYW1Db21tYW5kfGNhbUNvbW1pdHxjYW1Db21taXRQcmVwYXJlZHxjYW1Db21taXR0ZWR8Y2FtQ29uc3R1Y3Rpb25TZXRQYXJhbXN8Y2FtQ3JlYXRlfGNhbURlc3Ryb3l8Y2FtZXJhRWZmZWN0fGNhbWVyYUVmZmVjdEVuYWJsZUhVRHxjYW1lcmFJbnRlcmVzdHxjYW1lcmFPbnxjYW1lcmFWaWV3fGNhbXBhaWduQ29uZmlnRmlsZXxjYW1QcmVsb2FkfGNhbVByZWxvYWRlZHxjYW1QcmVwYXJlQmFua3xjYW1QcmVwYXJlRGlyfGNhbVByZXBhcmVEaXZlfGNhbVByZXBhcmVGb2N1c3xjYW1QcmVwYXJlRm92fGNhbVByZXBhcmVGb3ZSYW5nZXxjYW1QcmVwYXJlUG9zfGNhbVByZXBhcmVSZWxQb3N8Y2FtUHJlcGFyZVRhcmdldHxjYW1TZXRCYW5rfGNhbVNldERpcnxjYW1TZXREaXZlfGNhbVNldEZvY3VzfGNhbVNldEZvdnxjYW1TZXRGb3ZSYW5nZXxjYW1TZXRQb3N8Y2FtU2V0UmVsUG9zfGNhbVNldFRhcmdldHxjYW1UYXJnZXR8Y2FtVXNlTlZHfGNhbkFkZHxjYW5BZGRJdGVtVG9CYWNrcGFja3xjYW5BZGRJdGVtVG9Vbmlmb3JtfGNhbkFkZEl0ZW1Ub1Zlc3R8Y2FuY2VsU2ltcGxlVGFza0Rlc3RpbmF0aW9ufGNhbkZpcmV8Y2FuTW92ZXxjYW5TbGluZ0xvYWR8Y2FuU3RhbmR8Y2FuU3VzcGVuZHxjYW5UcmlnZ2VyRHluYW1pY1NpbXVsYXRpb258Y2FuVW5sb2FkSW5Db21iYXR8Y2FuVmVoaWNsZUNhcmdvfGNhcHRpdmV8Y2FwdGl2ZU51bXxjYkNoZWNrZWR8Y2JTZXRDaGVja2VkfGNlaWx8Y2hhbm5lbEVuYWJsZWR8Y2hlYXRzRW5hYmxlZHxjaGVja0FJRmVhdHVyZXxjaGVja1Zpc2liaWxpdHl8Y2l2aWxpYW58Y2xhc3NOYW1lfGNsZWFyM0RFTkF0dHJpYnV0ZXxjbGVhcjNERU5JbnZlbnRvcnl8Y2xlYXJBbGxJdGVtc0Zyb21CYWNrcGFja3xjbGVhckJhY2twYWNrQ2FyZ298Y2xlYXJCYWNrcGFja0NhcmdvR2xvYmFsfGNsZWFyRm9yY2VzUlREfGNsZWFyR3JvdXBJY29uc3xjbGVhckl0ZW1DYXJnb3xjbGVhckl0ZW1DYXJnb0dsb2JhbHxjbGVhckl0ZW1Qb29sfGNsZWFyTWFnYXppbmVDYXJnb3xjbGVhck1hZ2F6aW5lQ2FyZ29HbG9iYWx8Y2xlYXJNYWdhemluZVBvb2x8Y2xlYXJPdmVybGF5fGNsZWFyUmFkaW98Y2xlYXJWZWhpY2xlSW5pdHxjbGVhcldlYXBvbkNhcmdvfGNsZWFyV2VhcG9uQ2FyZ29HbG9iYWx8Y2xlYXJXZWFwb25Qb29sfGNsaWVudE93bmVyfGNsb3NlRGlhbG9nfGNsb3NlRGlzcGxheXxjbG9zZU92ZXJsYXl8Y29sbGFwc2VPYmplY3RUcmVlfGNvbGxlY3QzREVOSGlzdG9yeXxjb2xsZWN0aXZlUlREfGNvbWJhdE1vZGV8Y29tbWFuZEFydGlsbGVyeUZpcmV8Y29tbWFuZENoYXR8Y29tbWFuZGVyfGNvbW1hbmRGaXJlfGNvbW1hbmRGb2xsb3d8Y29tbWFuZEZTTXxjb21tYW5kR2V0T3V0fGNvbW1hbmRpbmdNZW51fGNvbW1hbmRNb3ZlfGNvbW1hbmRSYWRpb3xjb21tYW5kU3RvcHxjb21tYW5kU3VwcHJlc3NpdmVGaXJlfGNvbW1hbmRUYXJnZXR8Y29tbWFuZFdhdGNofGNvbW1lbnR8Y29tbWl0T3ZlcmxheXxjb21waWxlfGNvbXBpbGVGaW5hbHxjb21wbGV0ZWRGU018Y29tcG9zZVRleHR8Y29uZmlnQ2xhc3Nlc3xjb25maWdGaWxlfGNvbmZpZ0hpZXJhcmNoeXxjb25maWdOYW1lfGNvbmZpZ051bGx8Y29uZmlnUHJvcGVydGllc3xjb25maWdTb3VyY2VBZGRvbkxpc3R8Y29uZmlnU291cmNlTW9kfGNvbmZpZ1NvdXJjZU1vZExpc3R8Y29uZmlybVNlbnNvclRhcmdldHxjb25uZWN0VGVybWluYWxUb1VBVnxjb250cm9sTnVsbHxjb250cm9sc0dyb3VwQ3RybHxjb3B5RnJvbUNsaXBib2FyZHxjb3B5VG9DbGlwYm9hcmR8Y29weVdheXBvaW50c3xjb3N8Y291bnR8Y291bnRFbmVteXxjb3VudEZyaWVuZGx5fGNvdW50U2lkZXxjb3VudFR5cGV8Y291bnRVbmtub3dufGNyZWF0ZTNERU5Db21wb3NpdGlvbnxjcmVhdGUzREVORW50aXR5fGNyZWF0ZUFnZW50fGNyZWF0ZUNlbnRlcnxjcmVhdGVEaWFsb2d8Y3JlYXRlRGlhcnlMaW5rfGNyZWF0ZURpYXJ5UmVjb3JkfGNyZWF0ZURpYXJ5U3ViamVjdHxjcmVhdGVEaXNwbGF5fGNyZWF0ZUdlYXJEaWFsb2d8Y3JlYXRlR3JvdXB8Y3JlYXRlR3VhcmRlZFBvaW50fGNyZWF0ZUxvY2F0aW9ufGNyZWF0ZU1hcmtlcnxjcmVhdGVNYXJrZXJMb2NhbHxjcmVhdGVNZW51fGNyZWF0ZU1pbmV8Y3JlYXRlTWlzc2lvbkRpc3BsYXl8Y3JlYXRlTVBDYW1wYWlnbkRpc3BsYXl8Y3JlYXRlU2ltcGxlT2JqZWN0fGNyZWF0ZVNpbXBsZVRhc2t8Y3JlYXRlU2l0ZXxjcmVhdGVTb3VuZFNvdXJjZXxjcmVhdGVUYXNrfGNyZWF0ZVRlYW18Y3JlYXRlVHJpZ2dlcnxjcmVhdGVVbml0fGNyZWF0ZVZlaGljbGV8Y3JlYXRlVmVoaWNsZUNyZXd8Y3JlYXRlVmVoaWNsZUxvY2FsfGNyZXd8Y3RBZGRIZWFkZXJ8Y3RBZGRSb3d8Y3RDbGVhcnxjdEN1clNlbHxjdERhdGF8Y3RGaW5kSGVhZGVyUm93c3xjdEZpbmRSb3dIZWFkZXJ8Y3RIZWFkZXJDb250cm9sc3xjdEhlYWRlckNvdW50fGN0UmVtb3ZlSGVhZGVyc3xjdFJlbW92ZVJvd3N8Y3RybEFjdGl2YXRlfGN0cmxBZGRFdmVudEhhbmRsZXJ8Y3RybEFuZ2xlfGN0cmxBdXRvU2Nyb2xsRGVsYXl8Y3RybEF1dG9TY3JvbGxSZXdpbmR8Y3RybEF1dG9TY3JvbGxTcGVlZHxjdHJsQ2hlY2tlZHxjdHJsQ2xhc3NOYW1lfGN0cmxDb21taXR8Y3RybENvbW1pdHRlZHxjdHJsQ3JlYXRlfGN0cmxEZWxldGV8Y3RybEVuYWJsZXxjdHJsRW5hYmxlZHxjdHJsRmFkZXxjdHJsSFRNTExvYWRlZHxjdHJsSURDfGN0cmxJRER8Y3RybE1hcEFuaW1BZGR8Y3RybE1hcEFuaW1DbGVhcnxjdHJsTWFwQW5pbUNvbW1pdHxjdHJsTWFwQW5pbURvbmV8Y3RybE1hcEN1cnNvcnxjdHJsTWFwTW91c2VPdmVyfGN0cmxNYXBTY2FsZXxjdHJsTWFwU2NyZWVuVG9Xb3JsZHxjdHJsTWFwV29ybGRUb1NjcmVlbnxjdHJsTW9kZWx8Y3RybE1vZGVsRGlyQW5kVXB8Y3RybE1vZGVsU2NhbGV8Y3RybFBhcmVudHxjdHJsUGFyZW50Q29udHJvbHNHcm91cHxjdHJsUG9zaXRpb258Y3RybFJlbW92ZUFsbEV2ZW50SGFuZGxlcnN8Y3RybFJlbW92ZUV2ZW50SGFuZGxlcnxjdHJsU2NhbGV8Y3RybFNldEFjdGl2ZUNvbG9yfGN0cmxTZXRBbmdsZXxjdHJsU2V0QXV0b1Njcm9sbERlbGF5fGN0cmxTZXRBdXRvU2Nyb2xsUmV3aW5kfGN0cmxTZXRBdXRvU2Nyb2xsU3BlZWR8Y3RybFNldEJhY2tncm91bmRDb2xvcnxjdHJsU2V0Q2hlY2tlZHxjdHJsU2V0RGlzYWJsZWRDb2xvcnxjdHJsU2V0RXZlbnRIYW5kbGVyfGN0cmxTZXRGYWRlfGN0cmxTZXRGb2N1c3xjdHJsU2V0Rm9udHxjdHJsU2V0Rm9udEgxfGN0cmxTZXRGb250SDFCfGN0cmxTZXRGb250SDJ8Y3RybFNldEZvbnRIMkJ8Y3RybFNldEZvbnRIM3xjdHJsU2V0Rm9udEgzQnxjdHJsU2V0Rm9udEg0fGN0cmxTZXRGb250SDRCfGN0cmxTZXRGb250SDV8Y3RybFNldEZvbnRINUJ8Y3RybFNldEZvbnRINnxjdHJsU2V0Rm9udEg2QnxjdHJsU2V0Rm9udEhlaWdodHxjdHJsU2V0Rm9udEhlaWdodEgxfGN0cmxTZXRGb250SGVpZ2h0SDJ8Y3RybFNldEZvbnRIZWlnaHRIM3xjdHJsU2V0Rm9udEhlaWdodEg0fGN0cmxTZXRGb250SGVpZ2h0SDV8Y3RybFNldEZvbnRIZWlnaHRINnxjdHJsU2V0Rm9udEhlaWdodFNlY29uZGFyeXxjdHJsU2V0Rm9udFB8Y3RybFNldEZvbnRQQnxjdHJsU2V0Rm9udFNlY29uZGFyeXxjdHJsU2V0Rm9yZWdyb3VuZENvbG9yfGN0cmxTZXRNb2RlbHxjdHJsU2V0TW9kZWxEaXJBbmRVcHxjdHJsU2V0TW9kZWxTY2FsZXxjdHJsU2V0UGl4ZWxQcmVjaXNpb258Y3RybFNldFBvc2l0aW9ufGN0cmxTZXRTY2FsZXxjdHJsU2V0U3RydWN0dXJlZFRleHR8Y3RybFNldFRleHR8Y3RybFNldFRleHRDb2xvcnxjdHJsU2V0VGV4dENvbG9yU2Vjb25kYXJ5fGN0cmxTZXRUZXh0U2Vjb25kYXJ5fGN0cmxTZXRUb29sdGlwfGN0cmxTZXRUb29sdGlwQ29sb3JCb3h8Y3RybFNldFRvb2x0aXBDb2xvclNoYWRlfGN0cmxTZXRUb29sdGlwQ29sb3JUZXh0fGN0cmxTaG93fGN0cmxTaG93bnxjdHJsVGV4dHxjdHJsVGV4dEhlaWdodHxjdHJsVGV4dFNlY29uZGFyeXxjdHJsVGV4dFdpZHRofGN0cmxUeXBlfGN0cmxWaXNpYmxlfGN0Um93Q29udHJvbHN8Y3RSb3dDb3VudHxjdFNldEN1clNlbHxjdFNldERhdGF8Y3RTZXRIZWFkZXJUZW1wbGF0ZXxjdFNldFJvd1RlbXBsYXRlfGN0U2V0VmFsdWV8Y3RWYWx1ZXxjdXJhdG9yQWRkb25zfGN1cmF0b3JDYW1lcmF8Y3VyYXRvckNhbWVyYUFyZWF8Y3VyYXRvckNhbWVyYUFyZWFDZWlsaW5nfGN1cmF0b3JDb2VmfGN1cmF0b3JFZGl0YWJsZU9iamVjdHN8Y3VyYXRvckVkaXRpbmdBcmVhfGN1cmF0b3JFZGl0aW5nQXJlYVR5cGV8Y3VyYXRvck1vdXNlT3ZlcnxjdXJhdG9yUG9pbnRzfGN1cmF0b3JSZWdpc3RlcmVkT2JqZWN0c3xjdXJhdG9yU2VsZWN0ZWR8Y3VyYXRvcldheXBvaW50Q29zdHxjdXJyZW50M0RFTk9wZXJhdGlvbnxjdXJyZW50Q2hhbm5lbHxjdXJyZW50Q29tbWFuZHxjdXJyZW50TWFnYXppbmV8Y3VycmVudE1hZ2F6aW5lRGV0YWlsfGN1cnJlbnRNYWdhemluZURldGFpbFR1cnJldHxjdXJyZW50TWFnYXppbmVUdXJyZXR8Y3VycmVudE11enpsZXxjdXJyZW50TmFtZXNwYWNlfGN1cnJlbnRUYXNrfGN1cnJlbnRUYXNrc3xjdXJyZW50VGhyb3dhYmxlfGN1cnJlbnRWaXNpb25Nb2RlfGN1cnJlbnRXYXlwb2ludHxjdXJyZW50V2VhcG9ufGN1cnJlbnRXZWFwb25Nb2RlfGN1cnJlbnRXZWFwb25UdXJyZXR8Y3VycmVudFplcm9pbmd8Y3Vyc29yT2JqZWN0fGN1cnNvclRhcmdldHxjdXN0b21DaGF0fGN1c3RvbVJhZGlvfGN1dEZhZGVPdXR8Y3V0T2JqfGN1dFJzY3xjdXRUZXh0fGRhbWFnZXxkYXRlfGRhdGVUb051bWJlcnxkYXl0aW1lfGRlQWN0aXZhdGVLZXl8ZGVicmllZmluZ1RleHR8ZGVidWdGU018ZGVidWdMb2d8ZGVnfGRlbGV0ZTNERU5FbnRpdGllc3xkZWxldGVBdHxkZWxldGVDZW50ZXJ8ZGVsZXRlQ29sbGVjdGlvbnxkZWxldGVFZGl0b3JPYmplY3R8ZGVsZXRlR3JvdXB8ZGVsZXRlR3JvdXBXaGVuRW1wdHl8ZGVsZXRlSWRlbnRpdHl8ZGVsZXRlTG9jYXRpb258ZGVsZXRlTWFya2VyfGRlbGV0ZU1hcmtlckxvY2FsfGRlbGV0ZVJhbmdlfGRlbGV0ZVJlc291cmNlc3xkZWxldGVTaXRlfGRlbGV0ZVN0YXR1c3xkZWxldGVUZWFtfGRlbGV0ZVZlaGljbGV8ZGVsZXRlVmVoaWNsZUNyZXd8ZGVsZXRlV2F5cG9pbnR8ZGV0YWNofGRldGVjdGVkTWluZXN8ZGlhZ19hY3RpdmVNaXNzaW9uRlNNc3xkaWFnX2FjdGl2ZVNjcmlwdHN8ZGlhZ19hY3RpdmVTUUZTY3JpcHRzfGRpYWdfYWN0aXZlU1FTU2NyaXB0c3xkaWFnX2NhcHR1cmVGcmFtZXxkaWFnX2NhcHR1cmVGcmFtZVRvRmlsZXxkaWFnX2NhcHR1cmVTbG93RnJhbWV8ZGlhZ19jb2RlUGVyZm9ybWFuY2V8ZGlhZ19kcmF3TW9kZXxkaWFnX2R5bmFtaWNTaW11bGF0aW9uRW5kfGRpYWdfZW5hYmxlfGRpYWdfZW5hYmxlZHxkaWFnX2Zwc3xkaWFnX2Zwc01pbnxkaWFnX2ZyYW1lTm98ZGlhZ19saWdodE5ld0xvYWR8ZGlhZ19saXN0fGRpYWdfbG9nfGRpYWdfbG9nU2xvd0ZyYW1lfGRpYWdfbWVyZ2VDb25maWdGaWxlfGRpYWdfcmVjb3JkVHVycmV0TGltaXRzfGRpYWdfc2V0TGlnaHROZXd8ZGlhZ190aWNrVGltZXxkaWFnX3RvZ2dsZXxkaWFsb2d8ZGlhcnlTdWJqZWN0RXhpc3RzfGRpZEpJUHxkaWRKSVBPd25lcnxkaWZmaWN1bHR5fGRpZmZpY3VsdHlFbmFibGVkfGRpZmZpY3VsdHlFbmFibGVkUlREfGRpZmZpY3VsdHlPcHRpb258ZGlyZWN0aW9ufGRpcmVjdFNheXxkaXNhYmxlQUl8ZGlzYWJsZUNvbGxpc2lvbldpdGh8ZGlzYWJsZUNvbnZlcnNhdGlvbnxkaXNhYmxlRGVicmllZmluZ1N0YXRzfGRpc2FibGVNYXBJbmRpY2F0b3JzfGRpc2FibGVOVkdFcXVpcG1lbnR8ZGlzYWJsZVJlbW90ZVNlbnNvcnN8ZGlzYWJsZVNlcmlhbGl6YXRpb258ZGlzYWJsZVRJRXF1aXBtZW50fGRpc2FibGVVQVZDb25uZWN0YWJpbGl0eXxkaXNhYmxlVXNlcklucHV0fGRpc3BsYXlBZGRFdmVudEhhbmRsZXJ8ZGlzcGxheUN0cmx8ZGlzcGxheU51bGx8ZGlzcGxheVBhcmVudHxkaXNwbGF5UmVtb3ZlQWxsRXZlbnRIYW5kbGVyc3xkaXNwbGF5UmVtb3ZlRXZlbnRIYW5kbGVyfGRpc3BsYXlTZXRFdmVudEhhbmRsZXJ8ZGlzc29sdmVUZWFtfGRpc3RhbmNlfGRpc3RhbmNlMkR8ZGlzdGFuY2VTcXJ8ZGlzdHJpYnV0aW9uUmVnaW9ufGRvM0RFTkFjdGlvbnxkb0FydGlsbGVyeUZpcmV8ZG9GaXJlfGRvRm9sbG93fGRvRlNNfGRvR2V0T3V0fGRvTW92ZXxkb29yUGhhc2V8ZG9TdG9wfGRvU3VwcHJlc3NpdmVGaXJlfGRvVGFyZ2V0fGRvV2F0Y2h8ZHJhd0Fycm93fGRyYXdFbGxpcHNlfGRyYXdJY29ufGRyYXdJY29uM0R8ZHJhd0xpbmV8ZHJhd0xpbmUzRHxkcmF3TGlua3xkcmF3TG9jYXRpb258ZHJhd1BvbHlnb258ZHJhd1JlY3RhbmdsZXxkcmF3VHJpYW5nbGV8ZHJpdmVyfGRyb3B8ZHluYW1pY1NpbXVsYXRpb25EaXN0YW5jZXxkeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZnxkeW5hbWljU2ltdWxhdGlvbkVuYWJsZWR8ZHluYW1pY1NpbXVsYXRpb25TeXN0ZW1FbmFibGVkfGVhc3R8ZWRpdDNERU5NaXNzaW9uQXR0cmlidXRlc3xlZGl0T2JqZWN0fGVkaXRvclNldEV2ZW50SGFuZGxlcnxlZmZlY3RpdmVDb21tYW5kZXJ8ZW1wdHlQb3NpdGlvbnN8ZW5hYmxlQUl8ZW5hYmxlQUlGZWF0dXJlfGVuYWJsZUFpbVByZWNpc2lvbnxlbmFibGVBdHRhY2t8ZW5hYmxlQXVkaW9GZWF0dXJlfGVuYWJsZUF1dG9TdGFydFVwUlREfGVuYWJsZUF1dG9UcmltUlREfGVuYWJsZUNhbVNoYWtlfGVuYWJsZUNhdXN0aWNzfGVuYWJsZUNoYW5uZWx8ZW5hYmxlQ29sbGlzaW9uV2l0aHxlbmFibGVDb3BpbG90fGVuYWJsZURlYnJpZWZpbmdTdGF0c3xlbmFibGVEaWFnTGVnZW5kfGVuYWJsZUR5bmFtaWNTaW11bGF0aW9ufGVuYWJsZUR5bmFtaWNTaW11bGF0aW9uU3lzdGVtfGVuYWJsZUVuZERpYWxvZ3xlbmFibGVFbmdpbmVBcnRpbGxlcnl8ZW5hYmxlRW52aXJvbm1lbnR8ZW5hYmxlRmF0aWd1ZXxlbmFibGVHdW5MaWdodHN8ZW5hYmxlSW5mb1BhbmVsQ29tcG9uZW50fGVuYWJsZUlSTGFzZXJzfGVuYWJsZU1pbWljc3xlbmFibGVQZXJzb25UdXJyZXR8ZW5hYmxlUmFkaW98ZW5hYmxlUmVsb2FkfGVuYWJsZVJvcGVBdHRhY2h8ZW5hYmxlU2F0Tm9ybWFsT25EZXRhaWx8ZW5hYmxlU2F2aW5nfGVuYWJsZVNlbnRlbmNlc3xlbmFibGVTaW11bGF0aW9ufGVuYWJsZVNpbXVsYXRpb25HbG9iYWx8ZW5hYmxlU3RhbWluYXxlbmFibGVTdHJlc3NEYW1hZ2V8ZW5hYmxlVGVhbVN3aXRjaHxlbmFibGVUcmFmZmljfGVuYWJsZVVBVkNvbm5lY3RhYmlsaXR5fGVuYWJsZVVBVldheXBvaW50c3xlbmFibGVWZWhpY2xlQ2FyZ298ZW5hYmxlVmVoaWNsZVNlbnNvcnxlbmFibGVXZWFwb25EaXNhc3NlbWJseXxlbmRsfGVuZExvYWRpbmdTY3JlZW58ZW5kTWlzc2lvbnxlbmdpbmVPbnxlbmdpbmVzSXNPblJURHxlbmdpbmVzUG93ZXJSVER8ZW5naW5lc1JwbVJURHxlbmdpbmVzVG9ycXVlUlREfGVudGl0aWVzfGVudmlyb25tZW50RW5hYmxlZHxlc3RpbWF0ZWRFbmRTZXJ2ZXJUaW1lfGVzdGltYXRlZFRpbWVMZWZ0fGV2YWxPYmplY3RBcmd1bWVudHxldmVyeUJhY2twYWNrfGV2ZXJ5Q29udGFpbmVyfGV4ZWN8ZXhlY0VkaXRvclNjcmlwdHxleHB8ZXhwZWN0ZWREZXN0aW5hdGlvbnxleHBvcnRKSVBNZXNzYWdlc3xleWVEaXJlY3Rpb258ZXllUG9zfGZhY2V8ZmFjdGlvbnxmYWRlTXVzaWN8ZmFkZVJhZGlvfGZhZGVTb3VuZHxmYWRlU3BlZWNofGZhaWxNaXNzaW9ufGZpbGxXZWFwb25zRnJvbVBvb2x8ZmluZHxmaW5kQ292ZXJ8ZmluZERpc3BsYXl8ZmluZEVkaXRvck9iamVjdHxmaW5kRW1wdHlQb3NpdGlvbnxmaW5kRW1wdHlQb3NpdGlvblJlYWR5fGZpbmRJZnxmaW5kTmVhcmVzdEVuZW15fGZpbmlzaE1pc3Npb25Jbml0fGZpbml0ZXxmaXJlfGZpcmVBdFRhcmdldHxmaXJzdEJhY2twYWNrfGZsYWd8ZmxhZ0FuaW1hdGlvblBoYXNlfGZsYWdPd25lcnxmbGFnU2lkZXxmbGFnVGV4dHVyZXxmbGVlaW5nfGZsb29yfGZseUluSGVpZ2h0fGZseUluSGVpZ2h0QVNMfGZvZ3xmb2dGb3JlY2FzdHxmb2dQYXJhbXN8Zm9yY2VBZGRVbmlmb3JtfGZvcmNlQXRQb3NpdGlvblJURHxmb3JjZWRNYXB8Zm9yY2VFbmR8Zm9yY2VGbGFnVGV4dHVyZXxmb3JjZUZvbGxvd1JvYWR8Zm9yY2VHZW5lcmF0b3JSVER8Zm9yY2VNYXB8Zm9yY2VSZXNwYXdufGZvcmNlU3BlZWR8Zm9yY2VXYWxrfGZvcmNlV2VhcG9uRmlyZXxmb3JjZVdlYXRoZXJDaGFuZ2V8Zm9yZ2V0VGFyZ2V0fGZvcm1hdHxmb3JtYXRpb258Zm9ybWF0aW9uRGlyZWN0aW9ufGZvcm1hdGlvbkxlYWRlcnxmb3JtYXRpb25NZW1iZXJzfGZvcm1hdGlvblBvc2l0aW9ufGZvcm1hdGlvblRhc2t8Zm9ybWF0VGV4dHxmb3JtTGVhZGVyfGZyZWVMb29rfGZyb21FZGl0b3J8ZnVlbHxmdWxsQ3Jld3xnZWFySURDQW1tb0NvdW50fGdlYXJTbG90QW1tb0NvdW50fGdlYXJTbG90RGF0YXxnZXQzREVOQWN0aW9uU3RhdGV8Z2V0M0RFTkF0dHJpYnV0ZXxnZXQzREVOQ2FtZXJhfGdldDNERU5Db25uZWN0aW9uc3xnZXQzREVORW50aXR5fGdldDNERU5FbnRpdHlJRHxnZXQzREVOR3JpZHxnZXQzREVOSWNvbnNWaXNpYmxlfGdldDNERU5MYXllckVudGl0aWVzfGdldDNERU5MaW5lc1Zpc2libGV8Z2V0M0RFTk1pc3Npb25BdHRyaWJ1dGV8Z2V0M0RFTk1vdXNlT3ZlcnxnZXQzREVOU2VsZWN0ZWR8Z2V0QWltaW5nQ29lZnxnZXRBbGxFbnZTb3VuZENvbnRyb2xsZXJzfGdldEFsbEhpdFBvaW50c0RhbWFnZXxnZXRBbGxPd25lZE1pbmVzfGdldEFsbFNvdW5kQ29udHJvbGxlcnN8Z2V0QW1tb0NhcmdvfGdldEFuaW1BaW1QcmVjaXNpb258Z2V0QW5pbVNwZWVkQ29lZnxnZXRBcnJheXxnZXRBcnRpbGxlcnlBbW1vfGdldEFydGlsbGVyeUNvbXB1dGVyU2V0dGluZ3N8Z2V0QXJ0aWxsZXJ5RVRBfGdldEFzc2lnbmVkQ3VyYXRvckxvZ2ljfGdldEFzc2lnbmVkQ3VyYXRvclVuaXR8Z2V0QmFja3BhY2tDYXJnb3xnZXRCbGVlZGluZ1JlbWFpbmluZ3xnZXRCdXJuaW5nVmFsdWV8Z2V0Q2FtZXJhVmlld0RpcmVjdGlvbnxnZXRDYXJnb0luZGV4fGdldENlbnRlck9mTWFzc3xnZXRDbGllbnRTdGF0ZXxnZXRDbGllbnRTdGF0ZU51bWJlcnxnZXRDb21wYXRpYmxlUHlsb25NYWdhemluZXN8Z2V0Q29ubmVjdGVkVUFWfGdldENvbnRhaW5lck1heExvYWR8Z2V0Q3Vyc29yT2JqZWN0UGFyYW1zfGdldEN1c3RvbUFpbUNvZWZ8Z2V0RGFtbWFnZXxnZXREZXNjcmlwdGlvbnxnZXREaXJ8Z2V0RGlyVmlzdWFsfGdldERMQ0Fzc2V0c1VzYWdlfGdldERMQ0Fzc2V0c1VzYWdlQnlOYW1lfGdldERMQ3N8Z2V0RExDVXNhZ2VUaW1lfGdldEVkaXRvckNhbWVyYXxnZXRFZGl0b3JNb2RlfGdldEVkaXRvck9iamVjdFNjb3BlfGdldEVsZXZhdGlvbk9mZnNldHxnZXRFbmdpbmVUYXJnZXRScG1SVER8Z2V0RW52U291bmRDb250cm9sbGVyfGdldEZhdGlndWV8Z2V0RmllbGRNYW51YWxTdGFydFBhZ2V8Z2V0Rm9yY2VkRmxhZ1RleHR1cmV8Z2V0RnJpZW5kfGdldEZTTVZhcmlhYmxlfGdldEZ1ZWxDYXJnb3xnZXRHcm91cEljb258Z2V0R3JvdXBJY29uUGFyYW1zfGdldEdyb3VwSWNvbnN8Z2V0SGlkZUZyb218Z2V0SGl0fGdldEhpdEluZGV4fGdldEhpdFBvaW50RGFtYWdlfGdldEl0ZW1DYXJnb3xnZXRNYWdhemluZUNhcmdvfGdldE1hcmtlckNvbG9yfGdldE1hcmtlclBvc3xnZXRNYXJrZXJTaXplfGdldE1hcmtlclR5cGV8Z2V0TWFzc3xnZXRNaXNzaW9uQ29uZmlnfGdldE1pc3Npb25Db25maWdWYWx1ZXxnZXRNaXNzaW9uRExDc3xnZXRNaXNzaW9uTGF5ZXJFbnRpdGllc3xnZXRNaXNzaW9uTGF5ZXJzfGdldE1vZGVsSW5mb3xnZXRNb3VzZVBvc2l0aW9ufGdldE11c2ljUGxheWVkVGltZXxnZXROdW1iZXJ8Z2V0T2JqZWN0QXJndW1lbnR8Z2V0T2JqZWN0Q2hpbGRyZW58Z2V0T2JqZWN0RExDfGdldE9iamVjdE1hdGVyaWFsc3xnZXRPYmplY3RQcm94eXxnZXRPYmplY3RUZXh0dXJlc3xnZXRPYmplY3RUeXBlfGdldE9iamVjdFZpZXdEaXN0YW5jZXxnZXRPeHlnZW5SZW1haW5pbmd8Z2V0UGVyc29uVXNlZERMQ3N8Z2V0UGlsb3RDYW1lcmFEaXJlY3Rpb258Z2V0UGlsb3RDYW1lcmFQb3NpdGlvbnxnZXRQaWxvdENhbWVyYVJvdGF0aW9ufGdldFBpbG90Q2FtZXJhVGFyZ2V0fGdldFBsYXRlTnVtYmVyfGdldFBsYXllckNoYW5uZWx8Z2V0UGxheWVyU2NvcmVzfGdldFBsYXllclVJRHxnZXRQbGF5ZXJVSURPbGR8Z2V0UG9zfGdldFBvc0FTTHxnZXRQb3NBU0xWaXN1YWx8Z2V0UG9zQVNMV3xnZXRQb3NBVEx8Z2V0UG9zQVRMVmlzdWFsfGdldFBvc1Zpc3VhbHxnZXRQb3NXb3JsZHxnZXRQeWxvbk1hZ2F6aW5lc3xnZXRSZWxEaXJ8Z2V0UmVsUG9zfGdldFJlbW90ZVNlbnNvcnNEaXNhYmxlZHxnZXRSZXBhaXJDYXJnb3xnZXRSZXNvbHV0aW9ufGdldFJvdG9yQnJha2VSVER8Z2V0U2hhZG93RGlzdGFuY2V8Z2V0U2hvdFBhcmVudHN8Z2V0U2xpbmdMb2FkfGdldFNvdW5kQ29udHJvbGxlcnxnZXRTb3VuZENvbnRyb2xsZXJSZXN1bHR8Z2V0U3BlZWR8Z2V0U3RhbWluYXxnZXRTdGF0VmFsdWV8Z2V0U3VwcHJlc3Npb258Z2V0VGVycmFpbkdyaWR8Z2V0VGVycmFpbkhlaWdodEFTTHxnZXRUZXh0fGdldFRvdGFsRExDVXNhZ2VUaW1lfGdldFRyaW1PZmZzZXRSVER8Z2V0VW5pdExvYWRvdXR8Z2V0VW5pdFRyYWl0fGdldFVzZXJNRkRUZXh0fGdldFVzZXJNRkRWYWx1ZXxnZXRWYXJpYWJsZXxnZXRWZWhpY2xlQ2FyZ298Z2V0V2VhcG9uQ2FyZ298Z2V0V2VhcG9uU3dheXxnZXRXaW5nc09yaWVudGF0aW9uUlREfGdldFdpbmdzUG9zaXRpb25SVER8Z2V0V1BQb3N8Z2xhbmNlQXR8Z2xvYmFsQ2hhdHxnbG9iYWxSYWRpb3xnb2dnbGVzfGdyb3VwfGdyb3VwQ2hhdHxncm91cEZyb21OZXRJZHxncm91cEljb25TZWxlY3RhYmxlfGdyb3VwSWNvbnNWaXNpYmxlfGdyb3VwSWR8Z3JvdXBPd25lcnxncm91cFJhZGlvfGdyb3VwU2VsZWN0ZWRVbml0c3xncm91cFNlbGVjdFVuaXR8Z3JwTnVsbHxndW5uZXJ8Z3VzdHN8aGFsdHxoYW5kZ3VuSXRlbXN8aGFuZGd1bk1hZ2F6aW5lfGhhbmRndW5XZWFwb258aGFuZHNIaXR8aGFzSW50ZXJmYWNlfGhhc1BpbG90Q2FtZXJhfGhhc1dlYXBvbnxoY0FsbEdyb3Vwc3xoY0dyb3VwUGFyYW1zfGhjTGVhZGVyfGhjUmVtb3ZlQWxsR3JvdXBzfGhjUmVtb3ZlR3JvdXB8aGNTZWxlY3RlZHxoY1NlbGVjdEdyb3VwfGhjU2V0R3JvdXB8aGNTaG93QmFyfGhjU2hvd25CYXJ8aGVhZGdlYXJ8aGlkZUJvZHl8aGlkZU9iamVjdHxoaWRlT2JqZWN0R2xvYmFsfGhpZGVTZWxlY3Rpb258aGludHxoaW50Q3xoaW50Q2FkZXR8aGludFNpbGVudHxobWR8aG9zdE1pc3Npb258aHRtbExvYWR8SFVETW92ZW1lbnRMZXZlbHN8aHVtaWRpdHl8aW1hZ2V8aW1wb3J0QWxsR3JvdXBzfGltcG9ydGFuY2V8aW58aW5BcmVhfGluQXJlYUFycmF5fGluY2FwYWNpdGF0ZWRTdGF0ZXxpbmRlcGVuZGVudHxpbmZsYW1lfGluZmxhbWVkfGluZm9QYW5lbHxpbmZvUGFuZWxDb21wb25lbnRFbmFibGVkfGluZm9QYW5lbENvbXBvbmVudHN8aW5mb1BhbmVsc3xpbkdhbWVVSVNldEV2ZW50SGFuZGxlcnxpbmhlcml0c0Zyb218aW5pdEFtYmllbnRMaWZlfGluUG9seWdvbnxpbnB1dEFjdGlvbnxpblJhbmdlT2ZBcnRpbGxlcnl8aW5zZXJ0RWRpdG9yT2JqZWN0fGludGVyc2VjdHxpczNERU58aXMzREVOTXVsdGlwbGF5ZXJ8aXNBYmxlVG9CcmVhdGhlfGlzQWdlbnR8aXNBaW1QcmVjaXNpb25FbmFibGVkfGlzQXJyYXl8aXNBdXRvSG92ZXJPbnxpc0F1dG9ub21vdXN8aXNBdXRvU3RhcnRVcEVuYWJsZWRSVER8aXNBdXRvdGVzdHxpc0F1dG9UcmltT25SVER8aXNCbGVlZGluZ3xpc0J1cm5pbmd8aXNDbGFzc3xpc0NvbGxpc2lvbkxpZ2h0T258aXNDb3BpbG90RW5hYmxlZHxpc0RhbWFnZUFsbG93ZWR8aXNEZWRpY2F0ZWR8aXNETENBdmFpbGFibGV8aXNFbmdpbmVPbnxpc0VxdWFsVG98aXNFcXVhbFR5cGV8aXNFcXVhbFR5cGVBbGx8aXNFcXVhbFR5cGVBbnl8aXNFcXVhbFR5cGVBcnJheXxpc0VxdWFsVHlwZVBhcmFtc3xpc0ZpbGVQYXRjaGluZ0VuYWJsZWR8aXNGbGFzaGxpZ2h0T258aXNGbGF0RW1wdHl8aXNGb3JjZWRXYWxrfGlzRm9ybWF0aW9uTGVhZGVyfGlzR3JvdXBEZWxldGVkV2hlbkVtcHR5fGlzSGlkZGVufGlzSW5SZW1haW5zQ29sbGVjdG9yfGlzSW5zdHJ1Y3RvckZpZ3VyZUVuYWJsZWR8aXNJUkxhc2VyT258aXNLZXlBY3RpdmV8aXNLaW5kT2Z8aXNMYXNlck9ufGlzTGlnaHRPbnxpc0xvY2FsaXplZHxpc01hbnVhbEZpcmV8aXNNYXJrZWRGb3JDb2xsZWN0aW9ufGlzTXVsdGlwbGF5ZXJ8aXNNdWx0aXBsYXllclNvbG98aXNOaWx8aXNOdWxsfGlzTnVtYmVyfGlzT2JqZWN0SGlkZGVufGlzT2JqZWN0UlREfGlzT25Sb2FkfGlzUGlwRW5hYmxlZHxpc1BsYXllcnxpc1JlYWxUaW1lfGlzUmVtb3RlRXhlY3V0ZWR8aXNSZW1vdGVFeGVjdXRlZEpJUHxpc1NlcnZlcnxpc1Nob3dpbmczREljb25zfGlzU2ltcGxlT2JqZWN0fGlzU3ByaW50QWxsb3dlZHxpc1N0YW1pbmFFbmFibGVkfGlzU3RlYW1NaXNzaW9ufGlzU3RyZWFtRnJpZW5kbHlVSUVuYWJsZWR8aXNTdHJlc3NEYW1hZ2VFbmFibGVkfGlzVGV4dHxpc1RvdWNoaW5nR3JvdW5kfGlzVHVybmVkT3V0fGlzVHV0SGludHNFbmFibGVkfGlzVUFWQ29ubmVjdGFibGV8aXNVQVZDb25uZWN0ZWR8aXNVSUNvbnRleHR8aXNVbmlmb3JtQWxsb3dlZHxpc1ZlaGljbGVDYXJnb3xpc1ZlaGljbGVSYWRhck9ufGlzVmVoaWNsZVNlbnNvckVuYWJsZWR8aXNXYWxraW5nfGlzV2VhcG9uRGVwbG95ZWR8aXNXZWFwb25SZXN0ZWR8aXRlbUNhcmdvfGl0ZW1zfGl0ZW1zV2l0aE1hZ2F6aW5lc3xqb2lufGpvaW5Bc3xqb2luQXNTaWxlbnR8am9pblNpbGVudHxqb2luU3RyaW5nfGtiQWRkRGF0YWJhc2V8a2JBZGREYXRhYmFzZVRhcmdldHN8a2JBZGRUb3BpY3xrYkhhc1RvcGljfGtiUmVhY3R8a2JSZW1vdmVUb3BpY3xrYlRlbGx8a2JXYXNTYWlkfGtleUltYWdlfGtleU5hbWV8a25vd3NBYm91dHxsYW5kfGxhbmRBdHxsYW5kUmVzdWx0fGxhbmd1YWdlfGxhc2VyVGFyZ2V0fGxiQWRkfGxiQ2xlYXJ8bGJDb2xvcnxsYkNvbG9yUmlnaHR8bGJDdXJTZWx8bGJEYXRhfGxiRGVsZXRlfGxiSXNTZWxlY3RlZHxsYlBpY3R1cmV8bGJQaWN0dXJlUmlnaHR8bGJTZWxlY3Rpb258bGJTZXRDb2xvcnxsYlNldENvbG9yUmlnaHR8bGJTZXRDdXJTZWx8bGJTZXREYXRhfGxiU2V0UGljdHVyZXxsYlNldFBpY3R1cmVDb2xvcnxsYlNldFBpY3R1cmVDb2xvckRpc2FibGVkfGxiU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWR8bGJTZXRQaWN0dXJlUmlnaHR8bGJTZXRQaWN0dXJlUmlnaHRDb2xvcnxsYlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWR8bGJTZXRQaWN0dXJlUmlnaHRDb2xvclNlbGVjdGVkfGxiU2V0U2VsZWN0Q29sb3J8bGJTZXRTZWxlY3RDb2xvclJpZ2h0fGxiU2V0U2VsZWN0ZWR8bGJTZXRUZXh0fGxiU2V0VGV4dFJpZ2h0fGxiU2V0VG9vbHRpcHxsYlNldFZhbHVlfGxiU2l6ZXxsYlNvcnR8bGJTb3J0QnlWYWx1ZXxsYlRleHR8bGJUZXh0UmlnaHR8bGJWYWx1ZXxsZWFkZXJ8bGVhZGVyYm9hcmREZUluaXR8bGVhZGVyYm9hcmRHZXRSb3dzfGxlYWRlcmJvYXJkSW5pdHxsZWFkZXJib2FyZFJlcXVlc3RSb3dzRnJpZW5kc3xsZWFkZXJib2FyZFJlcXVlc3RSb3dzR2xvYmFsfGxlYWRlcmJvYXJkUmVxdWVzdFJvd3NHbG9iYWxBcm91bmRVc2VyfGxlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZXxsZWFkZXJib2FyZHNSZXF1ZXN0VXBsb2FkU2NvcmVLZWVwQmVzdHxsZWFkZXJib2FyZFN0YXRlfGxlYXZlVmVoaWNsZXxsaWJyYXJ5Q3JlZGl0c3xsaWJyYXJ5RGlzY2xhaW1lcnN8bGlmZVN0YXRlfGxpZ2h0QXR0YWNoT2JqZWN0fGxpZ2h0RGV0YWNoT2JqZWN0fGxpZ2h0SXNPbnxsaWdodG5pbmdzfGxpbWl0U3BlZWR8bGluZWFyQ29udmVyc2lvbnxsaW5lQnJlYWt8bGluZUludGVyc2VjdHN8bGluZUludGVyc2VjdHNPYmpzfGxpbmVJbnRlcnNlY3RzU3VyZmFjZXN8bGluZUludGVyc2VjdHNXaXRofGxpbmtJdGVtfGxpc3R8bGlzdE9iamVjdHN8bGlzdFJlbW90ZVRhcmdldHN8bGlzdFZlaGljbGVTZW5zb3JzfGxufGxuYkFkZEFycmF5fGxuYkFkZENvbHVtbnxsbmJBZGRSb3d8bG5iQ2xlYXJ8bG5iQ29sb3J8bG5iQ29sb3JSaWdodHxsbmJDdXJTZWxSb3d8bG5iRGF0YXxsbmJEZWxldGVDb2x1bW58bG5iRGVsZXRlUm93fGxuYkdldENvbHVtbnNQb3NpdGlvbnxsbmJQaWN0dXJlfGxuYlBpY3R1cmVSaWdodHxsbmJTZXRDb2xvcnxsbmJTZXRDb2xvclJpZ2h0fGxuYlNldENvbHVtbnNQb3N8bG5iU2V0Q3VyU2VsUm93fGxuYlNldERhdGF8bG5iU2V0UGljdHVyZXxsbmJTZXRQaWN0dXJlQ29sb3J8bG5iU2V0UGljdHVyZUNvbG9yUmlnaHR8bG5iU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWR8bG5iU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWRSaWdodHxsbmJTZXRQaWN0dXJlUmlnaHR8bG5iU2V0VGV4dHxsbmJTZXRUZXh0UmlnaHR8bG5iU2V0VmFsdWV8bG5iU2l6ZXxsbmJTb3J0fGxuYlNvcnRCeVZhbHVlfGxuYlRleHR8bG5iVGV4dFJpZ2h0fGxuYlZhbHVlfGxvYWR8bG9hZEFic3xsb2FkQmFja3BhY2t8bG9hZEZpbGV8bG9hZEdhbWV8bG9hZElkZW50aXR5fGxvYWRNYWdhemluZXxsb2FkT3ZlcmxheXxsb2FkU3RhdHVzfGxvYWRVbmlmb3JtfGxvYWRWZXN0fGxvY2FsfGxvY2FsaXplfGxvY2F0aW9uTnVsbHxsb2NhdGlvblBvc2l0aW9ufGxvY2t8bG9ja0NhbWVyYVRvfGxvY2tDYXJnb3xsb2NrRHJpdmVyfGxvY2tlZHxsb2NrZWRDYXJnb3xsb2NrZWREcml2ZXJ8bG9ja2VkVHVycmV0fGxvY2tJZGVudGl0eXxsb2NrVHVycmV0fGxvY2tXUHxsb2d8bG9nRW50aXRpZXN8bG9nTmV0d29ya3xsb2dOZXR3b3JrVGVybWluYXRlfGxvb2tBdHxsb29rQXRQb3N8bWFnYXppbmVDYXJnb3xtYWdhemluZXN8bWFnYXppbmVzQWxsVHVycmV0c3xtYWdhemluZXNBbW1vfG1hZ2F6aW5lc0FtbW9DYXJnb3xtYWdhemluZXNBbW1vRnVsbHxtYWdhemluZXNEZXRhaWx8bWFnYXppbmVzRGV0YWlsQmFja3BhY2t8bWFnYXppbmVzRGV0YWlsVW5pZm9ybXxtYWdhemluZXNEZXRhaWxWZXN0fG1hZ2F6aW5lc1R1cnJldHxtYWdhemluZVR1cnJldEFtbW98bWFwQW5pbUFkZHxtYXBBbmltQ2xlYXJ8bWFwQW5pbUNvbW1pdHxtYXBBbmltRG9uZXxtYXBDZW50ZXJPbkNhbWVyYXxtYXBHcmlkUG9zaXRpb258bWFya0FzRmluaXNoZWRPblN0ZWFtfG1hcmtlckFscGhhfG1hcmtlckJydXNofG1hcmtlckNvbG9yfG1hcmtlckRpcnxtYXJrZXJQb3N8bWFya2VyU2hhcGV8bWFya2VyU2l6ZXxtYXJrZXJUZXh0fG1hcmtlclR5cGV8bWF4fG1lbWJlcnN8bWVudUFjdGlvbnxtZW51QWRkfG1lbnVDaGVja2VkfG1lbnVDbGVhcnxtZW51Q29sbGFwc2V8bWVudURhdGF8bWVudURlbGV0ZXxtZW51RW5hYmxlfG1lbnVFbmFibGVkfG1lbnVFeHBhbmR8bWVudUhvdmVyfG1lbnVQaWN0dXJlfG1lbnVTZXRBY3Rpb258bWVudVNldENoZWNrfG1lbnVTZXREYXRhfG1lbnVTZXRQaWN0dXJlfG1lbnVTZXRWYWx1ZXxtZW51U2hvcnRjdXR8bWVudVNob3J0Y3V0VGV4dHxtZW51U2l6ZXxtZW51U29ydHxtZW51VGV4dHxtZW51VVJMfG1lbnVWYWx1ZXxtaW58bWluZUFjdGl2ZXxtaW5lRGV0ZWN0ZWRCeXxtaXNzaW9uQ29uZmlnRmlsZXxtaXNzaW9uRGlmZmljdWx0eXxtaXNzaW9uTmFtZXxtaXNzaW9uTmFtZXNwYWNlfG1pc3Npb25TdGFydHxtaXNzaW9uVmVyc2lvbnxtb2RlbFRvV29ybGR8bW9kZWxUb1dvcmxkVmlzdWFsfG1vZGVsVG9Xb3JsZFZpc3VhbFdvcmxkfG1vZGVsVG9Xb3JsZFdvcmxkfG1vZFBhcmFtc3xtb29uSW50ZW5zaXR5fG1vb25QaGFzZXxtb3JhbGV8bW92ZXxtb3ZlM0RFTkNhbWVyYXxtb3ZlSW5Bbnl8bW92ZUluQ2FyZ298bW92ZUluQ29tbWFuZGVyfG1vdmVJbkRyaXZlcnxtb3ZlSW5HdW5uZXJ8bW92ZUluVHVycmV0fG1vdmVPYmplY3RUb0VuZHxtb3ZlT3V0fG1vdmVUaW1lfG1vdmVUb3xtb3ZlVG9Db21wbGV0ZWR8bW92ZVRvRmFpbGVkfG11c2ljVm9sdW1lfG5hbWV8bmFtZVNvdW5kfG5lYXJFbnRpdGllc3xuZWFyZXN0QnVpbGRpbmd8bmVhcmVzdExvY2F0aW9ufG5lYXJlc3RMb2NhdGlvbnN8bmVhcmVzdExvY2F0aW9uV2l0aER1YmJpbmd8bmVhcmVzdE9iamVjdHxuZWFyZXN0T2JqZWN0c3xuZWFyZXN0VGVycmFpbk9iamVjdHN8bmVhck9iamVjdHN8bmVhck9iamVjdHNSZWFkeXxuZWFyUm9hZHN8bmVhclN1cHBsaWVzfG5lYXJUYXJnZXRzfG5lZWRSZWxvYWR8bmV0SWR8bmV0T2JqTnVsbHxuZXdPdmVybGF5fG5leHRNZW51SXRlbUluZGV4fG5leHRXZWF0aGVyQ2hhbmdlfG5NZW51SXRlbXN8bnVtYmVyT2ZFbmdpbmVzUlREfG51bWJlclRvRGF0ZXxvYmplY3RDdXJhdG9yc3xvYmplY3RGcm9tTmV0SWR8b2JqZWN0UGFyZW50fG9iak51bGx8b2JqU3RhdHVzfG9uQnJpZWZpbmdHZWFyfG9uQnJpZWZpbmdHcm91cHxvbkJyaWVmaW5nTm90ZXN8b25CcmllZmluZ1BsYW58b25CcmllZmluZ1RlYW1Td2l0Y2h8b25Db21tYW5kTW9kZUNoYW5nZWR8b25Eb3VibGVDbGlja3xvbkVhY2hGcmFtZXxvbkdyb3VwSWNvbkNsaWNrfG9uR3JvdXBJY29uT3ZlckVudGVyfG9uR3JvdXBJY29uT3ZlckxlYXZlfG9uSENHcm91cFNlbGVjdGlvbkNoYW5nZWR8b25NYXBTaW5nbGVDbGlja3xvblBsYXllckNvbm5lY3RlZHxvblBsYXllckRpc2Nvbm5lY3RlZHxvblByZWxvYWRGaW5pc2hlZHxvblByZWxvYWRTdGFydGVkfG9uU2hvd05ld09iamVjdHxvblRlYW1Td2l0Y2h8b3BlbkN1cmF0b3JJbnRlcmZhY2V8b3BlbkRMQ1BhZ2V8b3BlbkRTSW50ZXJmYWNlfG9wZW5NYXB8b3BlblN0ZWFtQXBwfG9wZW5Zb3V0dWJlVmlkZW98b3Bmb3J8b3JkZXJHZXRJbnxvdmVyY2FzdHxvdmVyY2FzdEZvcmVjYXN0fG93bmVyfHBhcmFtfHBhcmFtc3xwYXJzZU51bWJlcnxwYXJzZVNpbXBsZUFycmF5fHBhcnNlVGV4dHxwYXJzaW5nTmFtZXNwYWNlfHBhcnRpY2xlc1F1YWxpdHl8cGl8cGlja1dlYXBvblBvb2x8cGl0Y2h8cGl4ZWxHcmlkfHBpeGVsR3JpZEJhc2V8cGl4ZWxHcmlkTm9VSVNjYWxlfHBpeGVsSHxwaXhlbFd8cGxheWFibGVTbG90c051bWJlcnxwbGF5YWJsZVVuaXRzfHBsYXlBY3Rpb258cGxheUFjdGlvbk5vd3xwbGF5ZXJ8cGxheWVyUmVzcGF3blRpbWV8cGxheWVyU2lkZXxwbGF5ZXJzTnVtYmVyfHBsYXlHZXN0dXJlfHBsYXlNaXNzaW9ufHBsYXlNb3ZlfHBsYXlNb3ZlTm93fHBsYXlNdXNpY3xwbGF5U2NyaXB0ZWRNaXNzaW9ufHBsYXlTb3VuZHxwbGF5U291bmQzRHxwb3NpdGlvbnxwb3NpdGlvbkNhbWVyYVRvV29ybGR8cG9zU2NyZWVuVG9Xb3JsZHxwb3NXb3JsZFRvU2NyZWVufHBwRWZmZWN0QWRqdXN0fHBwRWZmZWN0Q29tbWl0fHBwRWZmZWN0Q29tbWl0dGVkfHBwRWZmZWN0Q3JlYXRlfHBwRWZmZWN0RGVzdHJveXxwcEVmZmVjdEVuYWJsZXxwcEVmZmVjdEVuYWJsZWR8cHBFZmZlY3RGb3JjZUluTlZHfHByZWNpc2lvbnxwcmVsb2FkQ2FtZXJhfHByZWxvYWRPYmplY3R8cHJlbG9hZFNvdW5kfHByZWxvYWRUaXRsZU9ianxwcmVsb2FkVGl0bGVSc2N8cHJpbWFyeVdlYXBvbnxwcmltYXJ5V2VhcG9uSXRlbXN8cHJpbWFyeVdlYXBvbk1hZ2F6aW5lfHByaW9yaXR5fHByb2Nlc3NEaWFyeUxpbmt8cHJvY2Vzc0luaXRDb21tYW5kc3xwcm9kdWN0VmVyc2lvbnxwcm9maWxlTmFtZXxwcm9maWxlTmFtZXNwYWNlfHByb2ZpbGVOYW1lU3RlYW18cHJvZ3Jlc3NMb2FkaW5nU2NyZWVufHByb2dyZXNzUG9zaXRpb258cHJvZ3Jlc3NTZXRQb3NpdGlvbnxwdWJsaWNWYXJpYWJsZXxwdWJsaWNWYXJpYWJsZUNsaWVudHxwdWJsaWNWYXJpYWJsZVNlcnZlcnxwdXNoQmFja3xwdXNoQmFja1VuaXF1ZXxwdXRXZWFwb25Qb29sfHF1ZXJ5SXRlbXNQb29sfHF1ZXJ5TWFnYXppbmVQb29sfHF1ZXJ5V2VhcG9uUG9vbHxyYWR8cmFkaW9DaGFubmVsQWRkfHJhZGlvQ2hhbm5lbENyZWF0ZXxyYWRpb0NoYW5uZWxSZW1vdmV8cmFkaW9DaGFubmVsU2V0Q2FsbFNpZ258cmFkaW9DaGFubmVsU2V0TGFiZWx8cmFkaW9Wb2x1bWV8cmFpbnxyYWluYm93fHJhbmRvbXxyYW5rfHJhbmtJZHxyYXRpbmd8cmVjdGFuZ3VsYXJ8cmVnaXN0ZXJlZFRhc2tzfHJlZ2lzdGVyVGFza3xyZWxvYWR8cmVsb2FkRW5hYmxlZHxyZW1vdGVDb250cm9sfHJlbW90ZUV4ZWN8cmVtb3RlRXhlY0NhbGx8cmVtb3RlRXhlY3V0ZWRPd25lcnxyZW1vdmUzREVOQ29ubmVjdGlvbnxyZW1vdmUzREVORXZlbnRIYW5kbGVyfHJlbW92ZTNERU5MYXllcnxyZW1vdmVBY3Rpb258cmVtb3ZlQWxsM0RFTkV2ZW50SGFuZGxlcnN8cmVtb3ZlQWxsQWN0aW9uc3xyZW1vdmVBbGxBc3NpZ25lZEl0ZW1zfHJlbW92ZUFsbENvbnRhaW5lcnN8cmVtb3ZlQWxsQ3VyYXRvckFkZG9uc3xyZW1vdmVBbGxDdXJhdG9yQ2FtZXJhQXJlYXN8cmVtb3ZlQWxsQ3VyYXRvckVkaXRpbmdBcmVhc3xyZW1vdmVBbGxFdmVudEhhbmRsZXJzfHJlbW92ZUFsbEhhbmRndW5JdGVtc3xyZW1vdmVBbGxJdGVtc3xyZW1vdmVBbGxJdGVtc1dpdGhNYWdhemluZXN8cmVtb3ZlQWxsTWlzc2lvbkV2ZW50SGFuZGxlcnN8cmVtb3ZlQWxsTVBFdmVudEhhbmRsZXJzfHJlbW92ZUFsbE11c2ljRXZlbnRIYW5kbGVyc3xyZW1vdmVBbGxPd25lZE1pbmVzfHJlbW92ZUFsbFByaW1hcnlXZWFwb25JdGVtc3xyZW1vdmVBbGxXZWFwb25zfHJlbW92ZUJhY2twYWNrfHJlbW92ZUJhY2twYWNrR2xvYmFsfHJlbW92ZUN1cmF0b3JBZGRvbnN8cmVtb3ZlQ3VyYXRvckNhbWVyYUFyZWF8cmVtb3ZlQ3VyYXRvckVkaXRhYmxlT2JqZWN0c3xyZW1vdmVDdXJhdG9yRWRpdGluZ0FyZWF8cmVtb3ZlRHJhd0ljb258cmVtb3ZlRHJhd0xpbmtzfHJlbW92ZUV2ZW50SGFuZGxlcnxyZW1vdmVGcm9tUmVtYWluc0NvbGxlY3RvcnxyZW1vdmVHb2dnbGVzfHJlbW92ZUdyb3VwSWNvbnxyZW1vdmVIYW5kZ3VuSXRlbXxyZW1vdmVIZWFkZ2VhcnxyZW1vdmVJdGVtfHJlbW92ZUl0ZW1Gcm9tQmFja3BhY2t8cmVtb3ZlSXRlbUZyb21Vbmlmb3JtfHJlbW92ZUl0ZW1Gcm9tVmVzdHxyZW1vdmVJdGVtc3xyZW1vdmVNYWdhemluZXxyZW1vdmVNYWdhemluZUdsb2JhbHxyZW1vdmVNYWdhemluZXN8cmVtb3ZlTWFnYXppbmVzVHVycmV0fHJlbW92ZU1hZ2F6aW5lVHVycmV0fHJlbW92ZU1lbnVJdGVtfHJlbW92ZU1pc3Npb25FdmVudEhhbmRsZXJ8cmVtb3ZlTVBFdmVudEhhbmRsZXJ8cmVtb3ZlTXVzaWNFdmVudEhhbmRsZXJ8cmVtb3ZlT3duZWRNaW5lfHJlbW92ZVByaW1hcnlXZWFwb25JdGVtfHJlbW92ZVNlY29uZGFyeVdlYXBvbkl0ZW18cmVtb3ZlU2ltcGxlVGFza3xyZW1vdmVTd2l0Y2hhYmxlVW5pdHxyZW1vdmVUZWFtTWVtYmVyfHJlbW92ZVVuaWZvcm18cmVtb3ZlVmVzdHxyZW1vdmVXZWFwb258cmVtb3ZlV2VhcG9uQXR0YWNobWVudENhcmdvfHJlbW92ZVdlYXBvbkNhcmdvfHJlbW92ZVdlYXBvbkdsb2JhbHxyZW1vdmVXZWFwb25UdXJyZXR8cmVwb3J0UmVtb3RlVGFyZ2V0fHJlcXVpcmVkVmVyc2lvbnxyZXNldENhbVNoYWtlfHJlc2V0U3ViZ3JvdXBEaXJlY3Rpb258cmVzaXN0YW5jZXxyZXNpemV8cmVzb3VyY2VzfHJlc3Bhd25WZWhpY2xlfHJlc3RhcnRFZGl0b3JDYW1lcmF8cmV2ZWFsfHJldmVhbE1pbmV8cmV2ZXJzZXxyZXZlcnNlZE1vdXNlWXxyb2FkQXR8cm9hZHNDb25uZWN0ZWRUb3xyb2xlRGVzY3JpcHRpb258cm9wZUF0dGFjaGVkT2JqZWN0c3xyb3BlQXR0YWNoZWRUb3xyb3BlQXR0YWNoRW5hYmxlZHxyb3BlQXR0YWNoVG98cm9wZUNyZWF0ZXxyb3BlQ3V0fHJvcGVEZXN0cm95fHJvcGVEZXRhY2h8cm9wZUVuZFBvc2l0aW9ufHJvcGVMZW5ndGh8cm9wZXN8cm9wZVVud2luZHxyb3BlVW53b3VuZHxyb3RvcnNGb3JjZXNSVER8cm90b3JzUnBtUlREfHJvdW5kfHJ1bkluaXRTY3JpcHR8c2FmZVpvbmVIfHNhZmVab25lV3xzYWZlWm9uZVdBYnN8c2FmZVpvbmVYfHNhZmVab25lWEFic3xzYWZlWm9uZVl8c2F2ZTNERU5JbnZlbnRvcnl8c2F2ZUdhbWV8c2F2ZUlkZW50aXR5fHNhdmVKb3lzdGlja3N8c2F2ZU92ZXJsYXl8c2F2ZVByb2ZpbGVOYW1lc3BhY2V8c2F2ZVN0YXR1c3xzYXZlVmFyfHNhdmluZ0VuYWJsZWR8c2F5fHNheTJEfHNheTNEfHNjb3JlfHNjb3JlU2lkZXxzY3JlZW5zaG90fHNjcmVlblRvV29ybGR8c2NyaXB0RG9uZXxzY3JpcHROYW1lfHNjcmlwdE51bGx8c2N1ZFN0YXRlfHNlY29uZGFyeVdlYXBvbnxzZWNvbmRhcnlXZWFwb25JdGVtc3xzZWNvbmRhcnlXZWFwb25NYWdhemluZXxzZWxlY3R8c2VsZWN0QmVzdFBsYWNlc3xzZWxlY3REaWFyeVN1YmplY3R8c2VsZWN0ZWRFZGl0b3JPYmplY3RzfHNlbGVjdEVkaXRvck9iamVjdHxzZWxlY3Rpb25OYW1lc3xzZWxlY3Rpb25Qb3NpdGlvbnxzZWxlY3RMZWFkZXJ8c2VsZWN0TWF4fHNlbGVjdE1pbnxzZWxlY3ROb1BsYXllcnxzZWxlY3RQbGF5ZXJ8c2VsZWN0UmFuZG9tfHNlbGVjdFJhbmRvbVdlaWdodGVkfHNlbGVjdFdlYXBvbnxzZWxlY3RXZWFwb25UdXJyZXR8c2VuZEFVTWVzc2FnZXxzZW5kU2ltcGxlQ29tbWFuZHxzZW5kVGFza3xzZW5kVGFza1Jlc3VsdHxzZW5kVURQTWVzc2FnZXxzZXJ2ZXJDb21tYW5kfHNlcnZlckNvbW1hbmRBdmFpbGFibGV8c2VydmVyQ29tbWFuZEV4ZWN1dGFibGV8c2VydmVyTmFtZXxzZXJ2ZXJUaW1lfHNldHxzZXQzREVOQXR0cmlidXRlfHNldDNERU5BdHRyaWJ1dGVzfHNldDNERU5HcmlkfHNldDNERU5JY29uc1Zpc2libGV8c2V0M0RFTkxheWVyfHNldDNERU5MaW5lc1Zpc2libGV8c2V0M0RFTkxvZ2ljVHlwZXxzZXQzREVOTWlzc2lvbkF0dHJpYnV0ZXxzZXQzREVOTWlzc2lvbkF0dHJpYnV0ZXN8c2V0M0RFTk1vZGVsc1Zpc2libGV8c2V0M0RFTk9iamVjdFR5cGV8c2V0M0RFTlNlbGVjdGVkfHNldEFjY1RpbWV8c2V0QWN0dWFsQ29sbGVjdGl2ZVJURHxzZXRBaXJwbGFuZVRocm90dGxlfHNldEFpcnBvcnRTaWRlfHNldEFtbW98c2V0QW1tb0NhcmdvfHNldEFtbW9PblB5bG9ufHNldEFuaW1TcGVlZENvZWZ8c2V0QXBlcnR1cmV8c2V0QXBlcnR1cmVOZXd8c2V0QXJtb3J5UG9pbnRzfHNldEF0dHJpYnV0ZXN8c2V0QXV0b25vbW91c3xzZXRCZWhhdmlvdXJ8c2V0QmxlZWRpbmdSZW1haW5pbmd8c2V0QnJha2VzUlREfHNldENhbWVyYUludGVyZXN0fHNldENhbVNoYWtlRGVmUGFyYW1zfHNldENhbVNoYWtlUGFyYW1zfHNldENhbVVzZVRJfHNldENhcHRpdmV8c2V0Q2VudGVyT2ZNYXNzfHNldENvbGxpc2lvbkxpZ2h0fHNldENvbWJhdE1vZGV8c2V0Q29tcGFzc09zY2lsbGF0aW9ufHNldENvbnZveVNlcGFyYXRpb258c2V0Q3VyYXRvckNhbWVyYUFyZWFDZWlsaW5nfHNldEN1cmF0b3JDb2VmfHNldEN1cmF0b3JFZGl0aW5nQXJlYVR5cGV8c2V0Q3VyYXRvcldheXBvaW50Q29zdHxzZXRDdXJyZW50Q2hhbm5lbHxzZXRDdXJyZW50VGFza3xzZXRDdXJyZW50V2F5cG9pbnR8c2V0Q3VzdG9tQWltQ29lZnxzZXRDdXN0b21XZWlnaHRSVER8c2V0RGFtYWdlfHNldERhbW1hZ2V8c2V0RGF0ZXxzZXREZWJyaWVmaW5nVGV4dHxzZXREZWZhdWx0Q2FtZXJhfHNldERlc3RpbmF0aW9ufHNldERldGFpbE1hcEJsZW5kUGFyc3xzZXREaXJ8c2V0RGlyZWN0aW9ufHNldERyYXdJY29ufHNldERyaXZlT25QYXRofHNldERyb3BJbnRlcnZhbHxzZXREeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlfHNldER5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2VDb2VmfHNldEVkaXRvck1vZGV8c2V0RWRpdG9yT2JqZWN0U2NvcGV8c2V0RWZmZWN0Q29uZGl0aW9ufHNldEVuZ2luZVJwbVJURHxzZXRGYWNlfHNldEZhY2VBbmltYXRpb258c2V0RmF0aWd1ZXxzZXRGZWF0dXJlVHlwZXxzZXRGbGFnQW5pbWF0aW9uUGhhc2V8c2V0RmxhZ093bmVyfHNldEZsYWdTaWRlfHNldEZsYWdUZXh0dXJlfHNldEZvZ3xzZXRGb3JjZUdlbmVyYXRvclJURHxzZXRGb3JtYXRpb258c2V0Rm9ybWF0aW9uVGFza3xzZXRGb3JtRGlyfHNldEZyaWVuZHxzZXRGcm9tRWRpdG9yfHNldEZTTVZhcmlhYmxlfHNldEZ1ZWx8c2V0RnVlbENhcmdvfHNldEdyb3VwSWNvbnxzZXRHcm91cEljb25QYXJhbXN8c2V0R3JvdXBJY29uc1NlbGVjdGFibGV8c2V0R3JvdXBJY29uc1Zpc2libGV8c2V0R3JvdXBJZHxzZXRHcm91cElkR2xvYmFsfHNldEdyb3VwT3duZXJ8c2V0R3VzdHN8c2V0SGlkZUJlaGluZHxzZXRIaXR8c2V0SGl0SW5kZXh8c2V0SGl0UG9pbnREYW1hZ2V8c2V0SG9yaXpvblBhcmFsbGF4Q29lZnxzZXRIVURNb3ZlbWVudExldmVsc3xzZXRJZGVudGl0eXxzZXRJbXBvcnRhbmNlfHNldEluZm9QYW5lbHxzZXRMZWFkZXJ8c2V0TGlnaHRBbWJpZW50fHNldExpZ2h0QXR0ZW51YXRpb258c2V0TGlnaHRCcmlnaHRuZXNzfHNldExpZ2h0Q29sb3J8c2V0TGlnaHREYXlMaWdodHxzZXRMaWdodEZsYXJlTWF4RGlzdGFuY2V8c2V0TGlnaHRGbGFyZVNpemV8c2V0TGlnaHRJbnRlbnNpdHl8c2V0TGlnaHRuaW5nc3xzZXRMaWdodFVzZUZsYXJlfHNldExvY2FsV2luZFBhcmFtc3xzZXRNYWdhemluZVR1cnJldEFtbW98c2V0TWFya2VyQWxwaGF8c2V0TWFya2VyQWxwaGFMb2NhbHxzZXRNYXJrZXJCcnVzaHxzZXRNYXJrZXJCcnVzaExvY2FsfHNldE1hcmtlckNvbG9yfHNldE1hcmtlckNvbG9yTG9jYWx8c2V0TWFya2VyRGlyfHNldE1hcmtlckRpckxvY2FsfHNldE1hcmtlclBvc3xzZXRNYXJrZXJQb3NMb2NhbHxzZXRNYXJrZXJTaGFwZXxzZXRNYXJrZXJTaGFwZUxvY2FsfHNldE1hcmtlclNpemV8c2V0TWFya2VyU2l6ZUxvY2FsfHNldE1hcmtlclRleHR8c2V0TWFya2VyVGV4dExvY2FsfHNldE1hcmtlclR5cGV8c2V0TWFya2VyVHlwZUxvY2FsfHNldE1hc3N8c2V0TWltaWN8c2V0TW91c2VQb3NpdGlvbnxzZXRNdXNpY0VmZmVjdHxzZXRNdXNpY0V2ZW50SGFuZGxlcnxzZXROYW1lfHNldE5hbWVTb3VuZHxzZXRPYmplY3RBcmd1bWVudHN8c2V0T2JqZWN0TWF0ZXJpYWx8c2V0T2JqZWN0TWF0ZXJpYWxHbG9iYWx8c2V0T2JqZWN0UHJveHl8c2V0T2JqZWN0VGV4dHVyZXxzZXRPYmplY3RUZXh0dXJlR2xvYmFsfHNldE9iamVjdFZpZXdEaXN0YW5jZXxzZXRPdmVyY2FzdHxzZXRPd25lcnxzZXRPeHlnZW5SZW1haW5pbmd8c2V0UGFydGljbGVDaXJjbGV8c2V0UGFydGljbGVDbGFzc3xzZXRQYXJ0aWNsZUZpcmV8c2V0UGFydGljbGVQYXJhbXN8c2V0UGFydGljbGVSYW5kb218c2V0UGlsb3RDYW1lcmFEaXJlY3Rpb258c2V0UGlsb3RDYW1lcmFSb3RhdGlvbnxzZXRQaWxvdENhbWVyYVRhcmdldHxzZXRQaWxvdExpZ2h0fHNldFBpUEVmZmVjdHxzZXRQaXRjaHxzZXRQbGF0ZU51bWJlcnxzZXRQbGF5YWJsZXxzZXRQbGF5ZXJSZXNwYXduVGltZXxzZXRQb3N8c2V0UG9zQVNMfHNldFBvc0FTTDJ8c2V0UG9zQVNMV3xzZXRQb3NBVEx8c2V0UG9zaXRpb258c2V0UG9zV29ybGR8c2V0UHlsb25Mb2FkT3V0fHNldFB5bG9uc1ByaW9yaXR5fHNldFJhZGlvTXNnfHNldFJhaW58c2V0UmFpbmJvd3xzZXRSYW5kb21MaXB8c2V0UmFua3xzZXRSZWN0YW5ndWxhcnxzZXRSZXBhaXJDYXJnb3xzZXRSb3RvckJyYWtlUlREfHNldFNoYWRvd0Rpc3RhbmNlfHNldFNob3RQYXJlbnRzfHNldFNpZGV8c2V0U2ltcGxlVGFza0Fsd2F5c1Zpc2libGV8c2V0U2ltcGxlVGFza0N1c3RvbURhdGF8c2V0U2ltcGxlVGFza0Rlc2NyaXB0aW9ufHNldFNpbXBsZVRhc2tEZXN0aW5hdGlvbnxzZXRTaW1wbGVUYXNrVGFyZ2V0fHNldFNpbXBsZVRhc2tUeXBlfHNldFNpbXVsV2VhdGhlckxheWVyc3xzZXRTaXplfHNldFNraWxsfHNldFNsaW5nTG9hZHxzZXRTb3VuZEVmZmVjdHxzZXRTcGVha2VyfHNldFNwZWVjaHxzZXRTcGVlZE1vZGV8c2V0U3RhbWluYXxzZXRTdGFtaW5hU2NoZW1lfHNldFN0YXRWYWx1ZXxzZXRTdXBwcmVzc2lvbnxzZXRTeXN0ZW1PZlVuaXRzfHNldFRhcmdldEFnZXxzZXRUYXNrTWFya2VyT2Zmc2V0fHNldFRhc2tSZXN1bHR8c2V0VGFza1N0YXRlfHNldFRlcnJhaW5HcmlkfHNldFRleHR8c2V0VGltZU11bHRpcGxpZXJ8c2V0VGl0bGVFZmZlY3R8c2V0VG9uZU1hcHBpbmd8c2V0VG9uZU1hcHBpbmdQYXJhbXN8c2V0VHJhZmZpY0RlbnNpdHl8c2V0VHJhZmZpY0Rpc3RhbmNlfHNldFRyYWZmaWNHYXB8c2V0VHJhZmZpY1NwZWVkfHNldFRyaWdnZXJBY3RpdmF0aW9ufHNldFRyaWdnZXJBcmVhfHNldFRyaWdnZXJTdGF0ZW1lbnRzfHNldFRyaWdnZXJUZXh0fHNldFRyaWdnZXJUaW1lb3V0fHNldFRyaWdnZXJUeXBlfHNldFR5cGV8c2V0VW5jb25zY2lvdXN8c2V0VW5pdEFiaWxpdHl8c2V0VW5pdExvYWRvdXR8c2V0VW5pdFBvc3xzZXRVbml0UG9zV2Vha3xzZXRVbml0UmFua3xzZXRVbml0UmVjb2lsQ29lZmZpY2llbnR8c2V0VW5pdFRyYWl0fHNldFVubG9hZEluQ29tYmF0fHNldFVzZXJBY3Rpb25UZXh0fHNldFVzZXJNRkRUZXh0fHNldFVzZXJNRkRWYWx1ZXxzZXRWYXJpYWJsZXxzZXRWZWN0b3JEaXJ8c2V0VmVjdG9yRGlyQW5kVXB8c2V0VmVjdG9yVXB8c2V0VmVoaWNsZUFtbW98c2V0VmVoaWNsZUFtbW9EZWZ8c2V0VmVoaWNsZUFybW9yfHNldFZlaGljbGVDYXJnb3xzZXRWZWhpY2xlSWR8c2V0VmVoaWNsZUluaXR8c2V0VmVoaWNsZUxvY2t8c2V0VmVoaWNsZVBvc2l0aW9ufHNldFZlaGljbGVSYWRhcnxzZXRWZWhpY2xlUmVjZWl2ZVJlbW90ZVRhcmdldHN8c2V0VmVoaWNsZVJlcG9ydE93blBvc2l0aW9ufHNldFZlaGljbGVSZXBvcnRSZW1vdGVUYXJnZXRzfHNldFZlaGljbGVUSVBhcnN8c2V0VmVoaWNsZVZhck5hbWV8c2V0VmVsb2NpdHl8c2V0VmVsb2NpdHlNb2RlbFNwYWNlfHNldFZlbG9jaXR5VHJhbnNmb3JtYXRpb258c2V0Vmlld0Rpc3RhbmNlfHNldFZpc2libGVJZlRyZWVDb2xsYXBzZWR8c2V0V2FudGVkUnBtUlREfHNldFdhdmVzfHNldFdheXBvaW50QmVoYXZpb3VyfHNldFdheXBvaW50Q29tYmF0TW9kZXxzZXRXYXlwb2ludENvbXBsZXRpb25SYWRpdXN8c2V0V2F5cG9pbnREZXNjcmlwdGlvbnxzZXRXYXlwb2ludEZvcmNlQmVoYXZpb3VyfHNldFdheXBvaW50Rm9ybWF0aW9ufHNldFdheXBvaW50SG91c2VQb3NpdGlvbnxzZXRXYXlwb2ludExvaXRlclJhZGl1c3xzZXRXYXlwb2ludExvaXRlclR5cGV8c2V0V2F5cG9pbnROYW1lfHNldFdheXBvaW50UG9zaXRpb258c2V0V2F5cG9pbnRTY3JpcHR8c2V0V2F5cG9pbnRTcGVlZHxzZXRXYXlwb2ludFN0YXRlbWVudHN8c2V0V2F5cG9pbnRUaW1lb3V0fHNldFdheXBvaW50VHlwZXxzZXRXYXlwb2ludFZpc2libGV8c2V0V2VhcG9uUmVsb2FkaW5nVGltZXxzZXRXaW5kfHNldFdpbmREaXJ8c2V0V2luZEZvcmNlfHNldFdpbmRTdHJ8c2V0V2luZ0ZvcmNlU2NhbGVSVER8c2V0V1BQb3N8c2hvdzNESWNvbnN8c2hvd0NoYXR8c2hvd0NpbmVtYUJvcmRlcnxzaG93Q29tbWFuZGluZ01lbnV8c2hvd0NvbXBhc3N8c2hvd0N1cmF0b3JDb21wYXNzfHNob3dHUFN8c2hvd0hVRHxzaG93TGVnZW5kfHNob3dNYXB8c2hvd25BcnRpbGxlcnlDb21wdXRlcnxzaG93bkNoYXR8c2hvd25Db21wYXNzfHNob3duQ3VyYXRvckNvbXBhc3N8c2hvd05ld0VkaXRvck9iamVjdHxzaG93bkdQU3xzaG93bkhVRHxzaG93bk1hcHxzaG93blBhZHxzaG93blJhZGlvfHNob3duU2NvcmV0YWJsZXxzaG93blVBVkZlZWR8c2hvd25XYXJyYW50fHNob3duV2F0Y2h8c2hvd1BhZHxzaG93UmFkaW98c2hvd1Njb3JldGFibGV8c2hvd1N1YnRpdGxlc3xzaG93VUFWRmVlZHxzaG93V2FycmFudHxzaG93V2F0Y2h8c2hvd1dheXBvaW50fHNob3dXYXlwb2ludHN8c2lkZXxzaWRlQW1iaWVudExpZmV8c2lkZUNoYXR8c2lkZUVtcHR5fHNpZGVFbmVteXxzaWRlRnJpZW5kbHl8c2lkZUxvZ2ljfHNpZGVSYWRpb3xzaWRlVW5rbm93bnxzaW1wbGVUYXNrc3xzaW11bGF0aW9uRW5hYmxlZHxzaW11bENsb3VkRGVuc2l0eXxzaW11bENsb3VkT2NjbHVzaW9ufHNpbXVsSW5DbG91ZHN8c2ltdWxXZWF0aGVyU3luY3xzaW58c2l6ZXxzaXplT2Z8c2tpbGx8c2tpbGxGaW5hbHxza2lwVGltZXxzbGVlcHxzbGlkZXJQb3NpdGlvbnxzbGlkZXJSYW5nZXxzbGlkZXJTZXRQb3NpdGlvbnxzbGlkZXJTZXRSYW5nZXxzbGlkZXJTZXRTcGVlZHxzbGlkZXJTcGVlZHxzbGluZ0xvYWRBc3Npc3RhbnRTaG93bnxzb2xkaWVyTWFnYXppbmVzfHNvbWVBbW1vfHNvcnR8c291bmRWb2x1bWV8c3BlYWtlcnxzcGVlZHxzcGVlZE1vZGV8c3BsaXRTdHJpbmd8c3FydHxzcXVhZFBhcmFtc3xzdGFuY2V8c3RhcnRMb2FkaW5nU2NyZWVufHN0b3B8c3RvcEVuZ2luZVJURHxzdG9wcGVkfHN0cnxzdW5Pck1vb258c3VwcG9ydEluZm98c3VwcHJlc3NGb3J8c3VyZmFjZUlzV2F0ZXJ8c3VyZmFjZU5vcm1hbHxzdXJmYWNlVHlwZXxzd2ltSW5EZXB0aHxzd2l0Y2hhYmxlVW5pdHN8c3dpdGNoQWN0aW9ufHN3aXRjaENhbWVyYXxzd2l0Y2hHZXN0dXJlfHN3aXRjaExpZ2h0fHN3aXRjaE1vdmV8c3luY2hyb25pemVkT2JqZWN0c3xzeW5jaHJvbml6ZWRUcmlnZ2Vyc3xzeW5jaHJvbml6ZWRXYXlwb2ludHN8c3luY2hyb25pemVPYmplY3RzQWRkfHN5bmNocm9uaXplT2JqZWN0c1JlbW92ZXxzeW5jaHJvbml6ZVRyaWdnZXJ8c3luY2hyb25pemVXYXlwb2ludHxzeXN0ZW1DaGF0fHN5c3RlbU9mVW5pdHN8dGFufHRhcmdldEtub3dsZWRnZXx0YXJnZXRzfHRhcmdldHNBZ2dyZWdhdGV8dGFyZ2V0c1F1ZXJ5fHRhc2tBbHdheXNWaXNpYmxlfHRhc2tDaGlsZHJlbnx0YXNrQ29tcGxldGVkfHRhc2tDdXN0b21EYXRhfHRhc2tEZXNjcmlwdGlvbnx0YXNrRGVzdGluYXRpb258dGFza0hpbnR8dGFza01hcmtlck9mZnNldHx0YXNrTnVsbHx0YXNrUGFyZW50fHRhc2tSZXN1bHR8dGFza1N0YXRlfHRhc2tUeXBlfHRlYW1NZW1iZXJ8dGVhbU1lbWJlck51bGx8dGVhbU5hbWV8dGVhbXN8dGVhbVN3aXRjaHx0ZWFtU3dpdGNoRW5hYmxlZHx0ZWFtVHlwZXx0ZXJtaW5hdGV8dGVycmFpbkludGVyc2VjdHx0ZXJyYWluSW50ZXJzZWN0QVNMfHRlcnJhaW5JbnRlcnNlY3RBdEFTTHx0ZXh0fHRleHRMb2d8dGV4dExvZ0Zvcm1hdHx0Z3x0aW1lfHRpbWVNdWx0aXBsaWVyfHRpdGxlQ3V0fHRpdGxlRmFkZU91dHx0aXRsZU9ianx0aXRsZVJzY3x0aXRsZVRleHR8dG9BcnJheXx0b0ZpeGVkfHRvTG93ZXJ8dG9TdHJpbmd8dG9VcHBlcnx0cmlnZ2VyQWN0aXZhdGVkfHRyaWdnZXJBY3RpdmF0aW9ufHRyaWdnZXJBcmVhfHRyaWdnZXJBdHRhY2hlZFZlaGljbGV8dHJpZ2dlckF0dGFjaE9iamVjdHx0cmlnZ2VyQXR0YWNoVmVoaWNsZXx0cmlnZ2VyRHluYW1pY1NpbXVsYXRpb258dHJpZ2dlclN0YXRlbWVudHN8dHJpZ2dlclRleHR8dHJpZ2dlclRpbWVvdXR8dHJpZ2dlclRpbWVvdXRDdXJyZW50fHRyaWdnZXJUeXBlfHR1cnJldExvY2FsfHR1cnJldE93bmVyfHR1cnJldFVuaXR8dHZBZGR8dHZDbGVhcnx0dkNvbGxhcHNlfHR2Q29sbGFwc2VBbGx8dHZDb3VudHx0dkN1clNlbHx0dkRhdGF8dHZEZWxldGV8dHZFeHBhbmR8dHZFeHBhbmRBbGx8dHZQaWN0dXJlfHR2UGljdHVyZVJpZ2h0fHR2U2V0Q29sb3J8dHZTZXRDdXJTZWx8dHZTZXREYXRhfHR2U2V0UGljdHVyZXx0dlNldFBpY3R1cmVDb2xvcnx0dlNldFBpY3R1cmVDb2xvckRpc2FibGVkfHR2U2V0UGljdHVyZUNvbG9yU2VsZWN0ZWR8dHZTZXRQaWN0dXJlUmlnaHR8dHZTZXRQaWN0dXJlUmlnaHRDb2xvcnx0dlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWR8dHZTZXRQaWN0dXJlUmlnaHRDb2xvclNlbGVjdGVkfHR2U2V0U2VsZWN0Q29sb3J8dHZTZXRUZXh0fHR2U2V0VG9vbHRpcHx0dlNldFZhbHVlfHR2U29ydHx0dlNvcnRCeVZhbHVlfHR2VGV4dHx0dlRvb2x0aXB8dHZWYWx1ZXx0eXBlfHR5cGVOYW1lfHR5cGVPZnxVQVZDb250cm9sfHVpTmFtZXNwYWNlfHVpU2xlZXB8dW5hc3NpZ25DdXJhdG9yfHVuYXNzaWduSXRlbXx1bmFzc2lnblRlYW18dW5hc3NpZ25WZWhpY2xlfHVuZGVyd2F0ZXJ8dW5pZm9ybXx1bmlmb3JtQ29udGFpbmVyfHVuaWZvcm1JdGVtc3x1bmlmb3JtTWFnYXppbmVzfHVuaXRBZGRvbnN8dW5pdEFpbVBvc2l0aW9ufHVuaXRBaW1Qb3NpdGlvblZpc3VhbHx1bml0QmFja3BhY2t8dW5pdElzVUFWfHVuaXRQb3N8dW5pdFJlYWR5fHVuaXRSZWNvaWxDb2VmZmljaWVudHx1bml0c3x1bml0c0JlbG93SGVpZ2h0fHVubGlua0l0ZW18dW5sb2NrQWNoaWV2ZW1lbnR8dW5yZWdpc3RlclRhc2t8dXBkYXRlRHJhd0ljb258dXBkYXRlTWVudUl0ZW18dXBkYXRlT2JqZWN0VHJlZXx1c2VBSU9wZXJNYXBPYnN0cnVjdGlvblRlc3R8dXNlQUlTdGVlcmluZ0NvbXBvbmVudHx1c2VBdWRpb1RpbWVGb3JNb3Zlc3x1c2VySW5wdXREaXNhYmxlZHx2ZWN0b3JBZGR8dmVjdG9yQ29zfHZlY3RvckNyb3NzUHJvZHVjdHx2ZWN0b3JEaWZmfHZlY3RvckRpcnx2ZWN0b3JEaXJWaXN1YWx8dmVjdG9yRGlzdGFuY2V8dmVjdG9yRGlzdGFuY2VTcXJ8dmVjdG9yRG90UHJvZHVjdHx2ZWN0b3JGcm9tVG98dmVjdG9yTWFnbml0dWRlfHZlY3Rvck1hZ25pdHVkZVNxcnx2ZWN0b3JNb2RlbFRvV29ybGR8dmVjdG9yTW9kZWxUb1dvcmxkVmlzdWFsfHZlY3Rvck11bHRpcGx5fHZlY3Rvck5vcm1hbGl6ZWR8dmVjdG9yVXB8dmVjdG9yVXBWaXN1YWx8dmVjdG9yV29ybGRUb01vZGVsfHZlY3RvcldvcmxkVG9Nb2RlbFZpc3VhbHx2ZWhpY2xlfHZlaGljbGVDYXJnb0VuYWJsZWR8dmVoaWNsZUNoYXR8dmVoaWNsZVJhZGlvfHZlaGljbGVSZWNlaXZlUmVtb3RlVGFyZ2V0c3x2ZWhpY2xlUmVwb3J0T3duUG9zaXRpb258dmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHN8dmVoaWNsZXN8dmVoaWNsZVZhck5hbWV8dmVsb2NpdHl8dmVsb2NpdHlNb2RlbFNwYWNlfHZlcmlmeVNpZ25hdHVyZXx2ZXN0fHZlc3RDb250YWluZXJ8dmVzdEl0ZW1zfHZlc3RNYWdhemluZXN8dmlld0Rpc3RhbmNlfHZpc2libGVDb21wYXNzfHZpc2libGVHUFN8dmlzaWJsZU1hcHx2aXNpYmxlUG9zaXRpb258dmlzaWJsZVBvc2l0aW9uQVNMfHZpc2libGVTY29yZXRhYmxlfHZpc2libGVXYXRjaHx3YWl0VW50aWx8d2F2ZXN8d2F5cG9pbnRBdHRhY2hlZE9iamVjdHx3YXlwb2ludEF0dGFjaGVkVmVoaWNsZXx3YXlwb2ludEF0dGFjaE9iamVjdHx3YXlwb2ludEF0dGFjaFZlaGljbGV8d2F5cG9pbnRCZWhhdmlvdXJ8d2F5cG9pbnRDb21iYXRNb2RlfHdheXBvaW50Q29tcGxldGlvblJhZGl1c3x3YXlwb2ludERlc2NyaXB0aW9ufHdheXBvaW50Rm9yY2VCZWhhdmlvdXJ8d2F5cG9pbnRGb3JtYXRpb258d2F5cG9pbnRIb3VzZVBvc2l0aW9ufHdheXBvaW50TG9pdGVyUmFkaXVzfHdheXBvaW50TG9pdGVyVHlwZXx3YXlwb2ludE5hbWV8d2F5cG9pbnRQb3NpdGlvbnx3YXlwb2ludHN8d2F5cG9pbnRTY3JpcHR8d2F5cG9pbnRzRW5hYmxlZFVBVnx3YXlwb2ludFNob3d8d2F5cG9pbnRTcGVlZHx3YXlwb2ludFN0YXRlbWVudHN8d2F5cG9pbnRUaW1lb3V0fHdheXBvaW50VGltZW91dEN1cnJlbnR8d2F5cG9pbnRUeXBlfHdheXBvaW50VmlzaWJsZXx3ZWFwb25BY2Nlc3Nvcmllc3x3ZWFwb25BY2Nlc3Nvcmllc0NhcmdvfHdlYXBvbkNhcmdvfHdlYXBvbkRpcmVjdGlvbnx3ZWFwb25JbmVydGlhfHdlYXBvbkxvd2VyZWR8d2VhcG9uc3x3ZWFwb25zSXRlbXN8d2VhcG9uc0l0ZW1zQ2FyZ298d2VhcG9uU3RhdGV8d2VhcG9uc1R1cnJldHx3ZWlnaHRSVER8d2VzdHxXRlNpZGVUZXh0fHdpbmR8d2luZERpcnx3aW5kUlREfHdpbmRTdHJ8d2luZ3NGb3JjZXNSVER8d29ybGROYW1lfHdvcmxkU2l6ZXx3b3JsZFRvTW9kZWx8d29ybGRUb01vZGVsVmlzdWFsfHdvcmxkVG9TY3JlZW4pXGIvaSxudW1iZXI6Lyg/OlwkfFxiMHgpW1xkYS1mXStcYnwoPzpcQlwuXGQrfFxiXGQrKD86XC5cZCspPykoPzplWystXT9cZCspP1xiL2ksb3BlcmF0b3I6LyMjfD4+fCYmfFx8XHx8WyE9PD5dPT98Wy0rKi8lI15dfFxiKD86YW5kfG1vZHxub3R8b3IpXGIvaSwibWFnaWMtdmFyaWFibGUiOntwYXR0ZXJuOi9cYig/OnRoaXN8dGhpc0xpc3R8dGhpc1RyaWdnZXJ8X2V4Y2VwdGlvbnxfZm5jX3NjcmlwdE5hbWV8X2ZuY19zY3JpcHROYW1lUGFyZW50fF9mb3JFYWNoSW5kZXh8X3RoaXN8X3RoaXNFdmVudEhhbmRsZXJ8X3RoaXNGU018X3RoaXNTY3JpcHR8X3gpXGIvaSxhbGlhczoia2V5d29yZCJ9LGNvbnN0YW50Oi9cYkRJSyg/Ol9bYS16XGRdKykrXGIvaX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic3FmIiwic3RyaW5nIix7bWFjcm86e3BhdHRlcm46LyheWyBcdF0qKSNbYS16XSg/OlteXHJcblxcXXxcXCg/OlxyXG58W1xzXFNdKSkqL2ltLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJwcm9wZXJ0eSIsaW5zaWRlOntkaXJlY3RpdmU6e3BhdHRlcm46LyNbYS16XStcYi9pLGFsaWFzOiJrZXl3b3JkIn0sY29tbWVudDp0Lmxhbmd1YWdlcy5zcWYuY29tbWVudH19fSksZGVsZXRlIHQubGFuZ3VhZ2VzLnNxZlsiY2xhc3MtbmFtZSJdfXJldHVybiBmZn12YXIgbWYsV0E7ZnVuY3Rpb24gZzYoKXtpZihXQSlyZXR1cm4gbWY7V0E9MSxtZj1lLGUuZGlzcGxheU5hbWU9InNxdWlycmVsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy5zcXVpcnJlbD10Lmxhbmd1YWdlcy5leHRlbmQoImNsaWtlIix7Y29tbWVudDpbdC5sYW5ndWFnZXMuY2xpa2UuY29tbWVudFswXSx7cGF0dGVybjovKF58W15cXDpdKSg/OlwvXC98IykuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46LyhefFteXFwiJ0BdKSg/OkAiKD86W14iXXwiIikqIig/ISIpfCIoPzpbXlxcXHJcbiJdfFxcLikqIikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGVudW18ZXh0ZW5kc3xpbnN0YW5jZW9mKVxzKylcdysoPzpcLlx3KykqLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LGtleXdvcmQ6L1xiKD86X19GSUxFX198X19MSU5FX198YmFzZXxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNsb25lfGNvbnN0fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGRlZmF1bHR8ZGVsZXRlfGVsc2V8ZW51bXxleHRlbmRzfGZvcnxmb3JlYWNofGZ1bmN0aW9ufGlmfGlufGluc3RhbmNlb2Z8bG9jYWx8bnVsbHxyZXN1bWV8cmV0dXJufHN0YXRpY3xzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZW9mfHdoaWxlfHlpZWxkKVxiLyxudW1iZXI6L1xiKD86MHhbMC05YS1mQS1GXSt8XGQrKD86XC4oPzpcZCt8W2VFXVsrLV0/XGQrKSk/KVxiLyxvcGVyYXRvcjovXCtcK3wtLXw8PT58PFstPF18Pj4+P3wmJj98XHxcfD98Wy0rKi8lIT08Pl09P3xbfl5dfDo6Py8scHVuY3R1YXRpb246L1soKXt9XFtcXSw7Ll0vfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJzcXVpcnJlbCIsInN0cmluZyIse2NoYXI6e3BhdHRlcm46LyhefFteXFwiJ10pJyg/OlteXFwnXXxcXCg/Olt4dVVdWzAtOWEtZkEtRl17MCw4fXxbXHNcU10pKScvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgic3F1aXJyZWwiLCJvcGVyYXRvciIseyJhdHRyaWJ1dGUtcHVuY3R1YXRpb24iOntwYXR0ZXJuOi88XC98XC8+LyxhbGlhczoiaW1wb3J0YW50In0sbGFtYmRhOntwYXR0ZXJuOi9AKD89XCgpLyxhbGlhczoib3BlcmF0b3IifX0pfXJldHVybiBtZn12YXIgZ2YsWUE7ZnVuY3Rpb24gaDYoKXtpZihZQSlyZXR1cm4gZ2Y7WUE9MSxnZj1lLGUuZGlzcGxheU5hbWU9InN0YW4iLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj0vXGIoPzphbGdlYnJhX3NvbHZlcnxhbGdlYnJhX3NvbHZlcl9uZXd0b258aW50ZWdyYXRlXzFkfGludGVncmF0ZV9vZGV8aW50ZWdyYXRlX29kZV9iZGZ8aW50ZWdyYXRlX29kZV9yazQ1fG1hcF9yZWN0fG9kZV8oPzphZGFtc3xiZGZ8Y2tya3xyazQ1KSg/Ol90b2wpP3xvZGVfYWRqb2ludF90b2xfY3RsfHJlZHVjZV9zdW18cmVkdWNlX3N1bV9zdGF0aWMpXGIvO24ubGFuZ3VhZ2VzLnN0YW49e2NvbW1lbnQ6L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvfCMoPyFpbmNsdWRlKS4qLyxzdHJpbmc6e3BhdHRlcm46LyJbXHgyMFx4MjFceDIzLVx4NUJceDVELVx4N0VdKiIvLGdyZWVkeTohMH0sZGlyZWN0aXZlOntwYXR0ZXJuOi9eKFsgXHRdKikjaW5jbHVkZVxiLiovbSxsb29rYmVoaW5kOiEwLGFsaWFzOiJwcm9wZXJ0eSJ9LCJmdW5jdGlvbi1hcmciOntwYXR0ZXJuOlJlZ0V4cCgiKCIrci5zb3VyY2UrL1xzKlwoXHMqLy5zb3VyY2UrIikiKy9bYS16QS1aXVx3Ki8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJmdW5jdGlvbiJ9LGNvbnN0cmFpbnQ6e3BhdHRlcm46LyhcYig/OmludHxtYXRyaXh8cmVhbHxyb3dfdmVjdG9yfHZlY3RvcilccyopPFtePD5dKj4vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntleHByZXNzaW9uOntwYXR0ZXJuOi8oPVxzKilcUyg/OlxTfFxzKyg/IVxzKSkqPyg/PVxzKig/Oj4kfCxccypcdytccyo9KSkvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9LHByb3BlcnR5Oi9cYlthLXpdXHcqKD89XHMqPSkvaSxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246L148fD4kfCwvfX0sa2V5d29yZDpbe3BhdHRlcm46L1xiZGF0YSg/PVxzKlx7KXxcYig/OmZ1bmN0aW9uc3xnZW5lcmF0ZWR8bW9kZWx8cGFyYW1ldGVyc3xxdWFudGl0aWVzfHRyYW5zZm9ybWVkKVxiLyxhbGlhczoicHJvZ3JhbS1ibG9jayJ9LC9cYig/OmFycmF5fGJyZWFrfGNob2xlc2t5X2ZhY3Rvcl9jb3JyfGNob2xlc2t5X2ZhY3Rvcl9jb3Z8Y29tcGxleHxjb250aW51ZXxjb3JyX21hdHJpeHxjb3ZfbWF0cml4fGRhdGF8ZWxzZXxmb3J8aWZ8aW58aW5jcmVtZW50X2xvZ19wcm9ifGludHxtYXRyaXh8b3JkZXJlZHxwb3NpdGl2ZV9vcmRlcmVkfHByaW50fHJlYWx8cmVqZWN0fHJldHVybnxyb3dfdmVjdG9yfHNpbXBsZXh8dGFyZ2V0fHVuaXRfdmVjdG9yfHZlY3Rvcnx2b2lkfHdoaWxlKVxiLyxyXSxmdW5jdGlvbjovXGJbYS16XVx3Kig/PVxzKlwoKS9pLG51bWJlcjovKD86XGJcZCsoPzpfXGQrKSooPzpcLig/OlxkKyg/Ol9cZCspKik/KT98XEJcLlxkKyg/Ol9cZCspKikoPzpFWystXT9cZCsoPzpfXGQrKSopP2k/KD8hXHcpL2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxvcGVyYXRvcjovPC18XC5bKi9dPT98XHxcfD98JiZ8WyE9PD4rXC0qL109P3xbJ14lfj86XS8scHVuY3R1YXRpb246L1soKVxbXF17fSw7XS99LG4ubGFuZ3VhZ2VzLnN0YW4uY29uc3RyYWludC5pbnNpZGUuZXhwcmVzc2lvbi5pbnNpZGU9bi5sYW5ndWFnZXMuc3Rhbn0pKHQpfXJldHVybiBnZn12YXIgaGYsS0E7ZnVuY3Rpb24gYjYoKXtpZihLQSlyZXR1cm4gaGY7S0E9MSxoZj1lLGUuZGlzcGxheU5hbWU9InN0eWx1cyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPXtwYXR0ZXJuOi8oXGJcZCspKD86JXxbYS16XSspLyxsb29rYmVoaW5kOiEwfSxhPXtwYXR0ZXJuOi8oXnxbXlx3Li1dKS0/KD86XGQrKD86XC5cZCspP3xcLlxkKykvLGxvb2tiZWhpbmQ6ITB9LGk9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qP1wqXC98XC9cLy4qKS8sbG9va2JlaGluZDohMH0sdXJsOntwYXR0ZXJuOi9cYnVybFwoKFsiJ10/KS4qP1wxXCkvaSxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovKCJ8JykoPzooPyFcMSlbXlxcXHJcbl18XFwoPzpcclxufFtcc1xTXSkpKlwxLyxncmVlZHk6ITB9LGludGVycG9sYXRpb246bnVsbCxmdW5jOm51bGwsaW1wb3J0YW50Oi9cQiEoPzppbXBvcnRhbnR8b3B0aW9uYWwpXGIvaSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxccyspKD86KD86ZWxzZXxmb3J8aWZ8cmV0dXJufHVubGVzcykoPz1cc3wkKXxAW1x3LV0rKS8sbG9va2JlaGluZDohMH0saGV4Y29kZTovI1tcZGEtZl17Myw2fS9pLGNvbG9yOlsvXGIoPzpBbGljZUJsdWV8QW50aXF1ZVdoaXRlfEFxdWF8QXF1YW1hcmluZXxBenVyZXxCZWlnZXxCaXNxdWV8QmxhY2t8QmxhbmNoZWRBbG1vbmR8Qmx1ZXxCbHVlVmlvbGV0fEJyb3dufEJ1cmx5V29vZHxDYWRldEJsdWV8Q2hhcnRyZXVzZXxDaG9jb2xhdGV8Q29yYWx8Q29ybmZsb3dlckJsdWV8Q29ybnNpbGt8Q3JpbXNvbnxDeWFufERhcmtCbHVlfERhcmtDeWFufERhcmtHb2xkZW5Sb2R8RGFya0dyW2FlXXl8RGFya0dyZWVufERhcmtLaGFraXxEYXJrTWFnZW50YXxEYXJrT2xpdmVHcmVlbnxEYXJrT3JhbmdlfERhcmtPcmNoaWR8RGFya1JlZHxEYXJrU2FsbW9ufERhcmtTZWFHcmVlbnxEYXJrU2xhdGVCbHVlfERhcmtTbGF0ZUdyW2FlXXl8RGFya1R1cnF1b2lzZXxEYXJrVmlvbGV0fERlZXBQaW5rfERlZXBTa3lCbHVlfERpbUdyW2FlXXl8RG9kZ2VyQmx1ZXxGaXJlQnJpY2t8RmxvcmFsV2hpdGV8Rm9yZXN0R3JlZW58RnVjaHNpYXxHYWluc2Jvcm98R2hvc3RXaGl0ZXxHb2xkfEdvbGRlblJvZHxHclthZV15fEdyZWVufEdyZWVuWWVsbG93fEhvbmV5RGV3fEhvdFBpbmt8SW5kaWFuUmVkfEluZGlnb3xJdm9yeXxLaGFraXxMYXZlbmRlcnxMYXZlbmRlckJsdXNofExhd25HcmVlbnxMZW1vbkNoaWZmb258TGlnaHRCbHVlfExpZ2h0Q29yYWx8TGlnaHRDeWFufExpZ2h0R29sZGVuUm9kWWVsbG93fExpZ2h0R3JbYWVdeXxMaWdodEdyZWVufExpZ2h0UGlua3xMaWdodFNhbG1vbnxMaWdodFNlYUdyZWVufExpZ2h0U2t5Qmx1ZXxMaWdodFNsYXRlR3JbYWVdeXxMaWdodFN0ZWVsQmx1ZXxMaWdodFllbGxvd3xMaW1lfExpbWVHcmVlbnxMaW5lbnxNYWdlbnRhfE1hcm9vbnxNZWRpdW1BcXVhTWFyaW5lfE1lZGl1bUJsdWV8TWVkaXVtT3JjaGlkfE1lZGl1bVB1cnBsZXxNZWRpdW1TZWFHcmVlbnxNZWRpdW1TbGF0ZUJsdWV8TWVkaXVtU3ByaW5nR3JlZW58TWVkaXVtVHVycXVvaXNlfE1lZGl1bVZpb2xldFJlZHxNaWRuaWdodEJsdWV8TWludENyZWFtfE1pc3R5Um9zZXxNb2NjYXNpbnxOYXZham9XaGl0ZXxOYXZ5fE9sZExhY2V8T2xpdmV8T2xpdmVEcmFifE9yYW5nZXxPcmFuZ2VSZWR8T3JjaGlkfFBhbGVHb2xkZW5Sb2R8UGFsZUdyZWVufFBhbGVUdXJxdW9pc2V8UGFsZVZpb2xldFJlZHxQYXBheWFXaGlwfFBlYWNoUHVmZnxQZXJ1fFBpbmt8UGx1bXxQb3dkZXJCbHVlfFB1cnBsZXxSZWR8Um9zeUJyb3dufFJveWFsQmx1ZXxTYWRkbGVCcm93bnxTYWxtb258U2FuZHlCcm93bnxTZWFHcmVlbnxTZWFTaGVsbHxTaWVubmF8U2lsdmVyfFNreUJsdWV8U2xhdGVCbHVlfFNsYXRlR3JbYWVdeXxTbm93fFNwcmluZ0dyZWVufFN0ZWVsQmx1ZXxUYW58VGVhbHxUaGlzdGxlfFRvbWF0b3xUcmFuc3BhcmVudHxUdXJxdW9pc2V8VmlvbGV0fFdoZWF0fFdoaXRlfFdoaXRlU21va2V8WWVsbG93fFllbGxvd0dyZWVuKVxiL2kse3BhdHRlcm46L1xiKD86aHNsfHJnYilcKFxzKlxkezEsM31ccyosXHMqXGR7MSwzfSU/XHMqLFxzKlxkezEsM30lP1xzKlwpXEJ8XGIoPzpoc2x8cmdiKWFcKFxzKlxkezEsM31ccyosXHMqXGR7MSwzfSU/XHMqLFxzKlxkezEsM30lP1xzKixccyooPzowfDA/XC5cZCt8MSlccypcKVxCL2ksaW5zaWRlOnt1bml0OnIsbnVtYmVyOmEsZnVuY3Rpb246L1tcdy1dKyg/PVwoKS8scHVuY3R1YXRpb246L1soKSxdL319XSxlbnRpdHk6L1xcW1xkYS1mXXsxLDh9L2ksdW5pdDpyLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6Wy9+fFsrIVwvJTw+Pz1dPT98Wy06XT18XCpbKj1dP3xcLnsyLDN9fCYmfFx8XHx8XEItXEJ8XGIoPzphbmR8aW58aXMoPzogYXwgZGVmaW5lZHwgbm90fG50KT98bm90fG9yKVxiL10sbnVtYmVyOmEscHVuY3R1YXRpb246L1t7fSgpXFtcXTs6LF0vfTtpLmludGVycG9sYXRpb249e3BhdHRlcm46L1x7W15cclxufTpdK1x9LyxhbGlhczoidmFyaWFibGUiLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0Oml9fSxpLmZ1bmM9e3BhdHRlcm46L1tcdy1dK1woW14pXSpcKS4qLyxpbnNpZGU6e2Z1bmN0aW9uOi9eW14oXSsvLHJlc3Q6aX19LG4ubGFuZ3VhZ2VzLnN0eWx1cz17ImF0cnVsZS1kZWNsYXJhdGlvbiI6e3BhdHRlcm46LyheWyBcdF0qKUAuKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnthdHJ1bGU6L15AW1x3LV0rLyxyZXN0Oml9fSwidmFyaWFibGUtZGVjbGFyYXRpb24iOntwYXR0ZXJuOi8oXlsgXHRdKilbXHckLV0rXHMqLj89WyBcdF0qKD86XHtbXnt9XSpcfXxcUy4qfCQpL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3ZhcmlhYmxlOi9eXFMrLyxyZXN0Oml9fSxzdGF0ZW1lbnQ6e3BhdHRlcm46LyheWyBcdF0qKSg/OmVsc2V8Zm9yfGlmfHJldHVybnx1bmxlc3MpWyBcdF0uKy9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntrZXl3b3JkOi9eXFMrLyxyZXN0Oml9fSwicHJvcGVydHktZGVjbGFyYXRpb24iOntwYXR0ZXJuOi8oKD86XnxceykoWyBcdF0qKSkoPzpbXHctXXxce1tefVxyXG5dK1x9KSsoPzpccyo6XHMqfFsgXHRdKykoPyFccylbXntcclxuXSooPzo7fFtee1xyXG4sXSQoPyEoPzpccj9cbnxccikoPzpce3xcMlsgXHRdKSkpL20sbG9va2JlaGluZDohMCxpbnNpZGU6e3Byb3BlcnR5OntwYXR0ZXJuOi9eW15cczpdKy8saW5zaWRlOntpbnRlcnBvbGF0aW9uOmkuaW50ZXJwb2xhdGlvbn19LHJlc3Q6aX19LHNlbGVjdG9yOntwYXR0ZXJuOi8oXlsgXHRdKikoPzooPz1cUykoPzpbXnt9XHJcbjooKV18Ojo/W1x3LV0rKD86XChbXilcclxuXSpcKXwoPyFbXHctXSkpfFx7W159XHJcbl0rXH0pKykoPzooPzpccj9cbnxccikoPzpcMSg/Oig/PVxTKSg/Oltee31cclxuOigpXXw6Oj9bXHctXSsoPzpcKFteKVxyXG5dKlwpfCg/IVtcdy1dKSl8XHtbXn1cclxuXStcfSkrKSkpKig/OiwkfFx7fCg/PSg/OlxyP1xufFxyKSg/Olx7fFwxWyBcdF0pKSkvbSxsb29rYmVoaW5kOiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjppLmludGVycG9sYXRpb24sY29tbWVudDppLmNvbW1lbnQscHVuY3R1YXRpb246L1t7fSxdL319LGZ1bmM6aS5mdW5jLHN0cmluZzppLnN0cmluZyxjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcXSkoPzpcL1wqW1xzXFNdKj9cKlwvfFwvXC8uKikvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSxpbnRlcnBvbGF0aW9uOmkuaW50ZXJwb2xhdGlvbixwdW5jdHVhdGlvbjovW3t9KClcW1xdOzouXS99fSkodCl9cmV0dXJuIGhmfXZhciBiZixYQTtmdW5jdGlvbiB5Nigpe2lmKFhBKXJldHVybiBiZjtYQT0xLGJmPWUsZS5kaXNwbGF5TmFtZT0ic3dpZnQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnN3aWZ0PXtjb21tZW50OntwYXR0ZXJuOi8oXnxbXlxcOl0pKD86XC9cLy4qfFwvXCooPzpbXi8qXXxcLyg/IVwqKXxcKig/IVwvKXxcL1wqKD86W14qXXxcKig/IVwvKSkqXCpcLykqXCpcLykvLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfSwic3RyaW5nLWxpdGVyYWwiOlt7cGF0dGVybjpSZWdFeHAoLyhefFteIiNdKS8uc291cmNlKyIoPzoiKy8iKD86XFwoPzpcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfFxyXG58W14oXSl8W15cXFxyXG4iXSkqIi8uc291cmNlKyJ8IisvIiIiKD86XFwoPzpcKCg/OlteKCldfFwoW14oKV0qXCkpKlwpfFteKF0pfFteXFwiXXwiKD8hIiIpKSoiIiIvLnNvdXJjZSsiKSIrLyg/IVsiI10pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKFxcXCgpKD86W14oKV18XChbXigpXSpcKSkqKD89XCkpLyxsb29rYmVoaW5kOiEwLGluc2lkZTpudWxsfSwiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L15cKXxcXFwoJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0scHVuY3R1YXRpb246L1xcKD89W1xyXG5dKS8sc3RyaW5nOi9bXHNcU10rL319LHtwYXR0ZXJuOlJlZ0V4cCgvKF58W14iI10pKCMrKS8uc291cmNlKyIoPzoiKy8iKD86XFwoPzojK1woKD86W14oKV18XChbXigpXSpcKSkqXCl8XHJcbnxbXiNdKXxbXlxcXHJcbl0pKj8iLy5zb3VyY2UrInwiKy8iIiIoPzpcXCg/OiMrXCgoPzpbXigpXXxcKFteKCldKlwpKSpcKXxbXiNdKXxbXlxcXSkqPyIiIi8uc291cmNlKyIpXFwyIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOi8oXFwjK1woKSg/OlteKCldfFwoW14oKV0qXCkpKig/PVwpKS8sbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH0sImludGVycG9sYXRpb24tcHVuY3R1YXRpb24iOntwYXR0ZXJuOi9eXCl8XFwjK1woJC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sc3RyaW5nOi9bXHNcU10rL319XSxkaXJlY3RpdmU6e3BhdHRlcm46UmVnRXhwKC8jLy5zb3VyY2UrIig/OiIrKC8oPzplbHNlaWZ8aWYpXGIvLnNvdXJjZSsiKD86WyAJXSoiKy8oPzohWyBcdF0qKT8oPzpcYlx3K1xiKD86WyBcdF0qXCgoPzpbXigpXXxcKFteKCldKlwpKSpcKSk/fFwoKD86W14oKV18XChbXigpXSpcKSkqXCkpKD86WyBcdF0qKD86JiZ8XHxcfCkpPy8uc291cmNlKyIpKyIpKyJ8IisvKD86ZWxzZXxlbmRpZilcYi8uc291cmNlKyIpIiksYWxpYXM6InByb3BlcnR5IixpbnNpZGU6eyJkaXJlY3RpdmUtbmFtZSI6L14jXHcrLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG51bWJlcjovXGJcZCsoPzpcLlxkKykqXGIvLG9wZXJhdG9yOi8hfCYmfFx8XHx8Wzw+XT0/LyxwdW5jdHVhdGlvbjovWygpLF0vfX0sbGl0ZXJhbDp7cGF0dGVybjovIyg/OmNvbG9yTGl0ZXJhbHxjb2x1bW58ZHNvaGFuZGxlfGZpbGUoPzpJRHxMaXRlcmFsfFBhdGgpP3xmdW5jdGlvbnxpbWFnZUxpdGVyYWx8bGluZSlcYi8sYWxpYXM6ImNvbnN0YW50In0sIm90aGVyLWRpcmVjdGl2ZSI6e3BhdHRlcm46LyNcdytcYi8sYWxpYXM6InByb3BlcnR5In0sYXR0cmlidXRlOntwYXR0ZXJuOi9AXHcrLyxhbGlhczoiYXRydWxlIn0sImZ1bmN0aW9uLWRlZmluaXRpb24iOntwYXR0ZXJuOi8oXGJmdW5jXHMrKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoiZnVuY3Rpb24ifSxsYWJlbDp7cGF0dGVybjovXGIoYnJlYWt8Y29udGludWUpXHMrXHcrfFxiW2EtekEtWl9dXHcqKD89XHMqOlxzKig/OmZvcnxyZXBlYXR8d2hpbGUpXGIpLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJpbXBvcnRhbnQifSxrZXl3b3JkOi9cYig/OkFueXxQcm90b2NvbHxTZWxmfFR5cGV8YWN0b3J8YXN8YXNzaWdubWVudHxhc3NvY2lhdGVkdHlwZXxhc3NvY2lhdGl2aXR5fGFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29udGludWV8Y29udmVuaWVuY2V8ZGVmYXVsdHxkZWZlcnxkZWluaXR8ZGlkU2V0fGRvfGR5bmFtaWN8ZWxzZXxlbnVtfGV4dGVuc2lvbnxmYWxsdGhyb3VnaHxmaWxlcHJpdmF0ZXxmaW5hbHxmb3J8ZnVuY3xnZXR8Z3VhcmR8aGlnaGVyVGhhbnxpZnxpbXBvcnR8aW58aW5kaXJlY3R8aW5maXh8aW5pdHxpbm91dHxpbnRlcm5hbHxpc3xpc29sYXRlZHxsYXp5fGxlZnR8bGV0fGxvd2VyVGhhbnxtdXRhdGluZ3xub25lfG5vbmlzb2xhdGVkfG5vbm11dGF0aW5nfG9wZW58b3BlcmF0b3J8b3B0aW9uYWx8b3ZlcnJpZGV8cG9zdGZpeHxwcmVjZWRlbmNlZ3JvdXB8cHJlZml4fHByaXZhdGV8cHJvdG9jb2x8cHVibGljfHJlcGVhdHxyZXF1aXJlZHxyZXRocm93c3xyZXR1cm58cmlnaHR8c2FmZXxzZWxmfHNldHxzb21lfHN0YXRpY3xzdHJ1Y3R8c3Vic2NyaXB0fHN1cGVyfHN3aXRjaHx0aHJvd3x0aHJvd3N8dHJ5fHR5cGVhbGlhc3x1bm93bmVkfHVuc2FmZXx2YXJ8d2Vha3x3aGVyZXx3aGlsZXx3aWxsU2V0KVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG5pbDp7cGF0dGVybjovXGJuaWxcYi8sYWxpYXM6ImNvbnN0YW50In0sInNob3J0LWFyZ3VtZW50IjovXCRcZCtcYi8sb21pdDp7cGF0dGVybjovXGJfXGIvLGFsaWFzOiJrZXl3b3JkIn0sbnVtYmVyOi9cYig/OltcZF9dKyg/OlwuW1xkZV9dKyk/fDB4W2EtZjAtOV9dKyg/OlwuW2EtZjAtOXBfXSspP3wwYlswMV9dK3wwb1swLTdfXSspXGIvaSwiY2xhc3MtbmFtZSI6L1xiW0EtWl0oPzpbQS1aX1xkXSpbYS16XVx3Kik/XGIvLGZ1bmN0aW9uOi9cYlthLXpfXVx3Kig/PVxzKlwoKS9pLGNvbnN0YW50Oi9cYig/OltBLVpfXXsyLH18a1tBLVpdW0EtWmEtel9dKylcYi8sb3BlcmF0b3I6L1stKyovJT0hPD4mfF5+P10rfFwuWy5cLSsqLyU9ITw+Jnxefj9dKy8scHVuY3R1YXRpb246L1t7fVtcXSgpOywuOlxcXS99LHQubGFuZ3VhZ2VzLnN3aWZ0WyJzdHJpbmctbGl0ZXJhbCJdLmZvckVhY2goZnVuY3Rpb24obil7bi5pbnNpZGUuaW50ZXJwb2xhdGlvbi5pbnNpZGU9dC5sYW5ndWFnZXMuc3dpZnR9KX1yZXR1cm4gYmZ9dmFyIHlmLFpBO2Z1bmN0aW9uIHY2KCl7aWYoWkEpcmV0dXJuIHlmO1pBPTEseWY9ZSxlLmRpc3BsYXlOYW1lPSJzeXN0ZW1kIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9e3BhdHRlcm46L15bOyNdLiovbSxncmVlZHk6ITB9LGE9LyIoPzpbXlxyXG4iXFxdfFxcKD86W15ccl18XHJcbj8pKSoiKD8hXFMpLy5zb3VyY2U7bi5sYW5ndWFnZXMuc3lzdGVtZD17Y29tbWVudDpyLHNlY3Rpb246e3BhdHRlcm46L15cW1teXG5cclxbXF1dKlxdKD89WyBcdF0qJCkvbSxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXlxbfFxdJC8sInNlY3Rpb24tbmFtZSI6e3BhdHRlcm46L1tcc1xTXSsvLGFsaWFzOiJzZWxlY3RvciJ9fX0sa2V5OntwYXR0ZXJuOi9eW15ccz1dKyg/PVsgXHRdKj0pL20sZ3JlZWR5OiEwLGFsaWFzOiJhdHRyLW5hbWUifSx2YWx1ZTp7cGF0dGVybjpSZWdFeHAoLyg9WyBcdF0qKD8hXHMpKS8uc291cmNlKyIoPzoiK2ErYHwoPz1bXiJccgpdKSkoPzpgKygvW15cc1xcXS8uc291cmNlKyd8WyAJXSsoPzooPyFbIAkiXSl8JythKyIpfCIrL1xcW1xyXG5dKyg/OlsjO10uKltcclxuXSspKig/IVsjO10pLy5zb3VyY2UpKyIpKiIpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJhdHRyLXZhbHVlIixpbnNpZGU6e2NvbW1lbnQ6cixxdW90ZWQ6e3BhdHRlcm46UmVnRXhwKC8oXnxccykvLnNvdXJjZSthKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0scHVuY3R1YXRpb246L1xcJC9tLGJvb2xlYW46e3BhdHRlcm46L14oPzpmYWxzZXxub3xvZmZ8b258dHJ1ZXx5ZXMpJC8sZ3JlZWR5OiEwfX19LHB1bmN0dWF0aW9uOi89L319KSh0KX1yZXR1cm4geWZ9dmFyIHZmLFFBO2Z1bmN0aW9uIEJiKCl7aWYoUUEpcmV0dXJuIHZmO1FBPTEsdmY9ZSxlLmRpc3BsYXlOYW1lPSJ0NFRlbXBsYXRpbmciLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtmdW5jdGlvbiByKGksbyxzKXtyZXR1cm57cGF0dGVybjpSZWdFeHAoIjwjIitpKyJbXFxzXFxTXSo/Iz4iKSxhbGlhczoiYmxvY2siLGluc2lkZTp7ZGVsaW1pdGVyOntwYXR0ZXJuOlJlZ0V4cCgiXjwjIitpKyJ8Iz4kIiksYWxpYXM6ImltcG9ydGFudCJ9LGNvbnRlbnQ6e3BhdHRlcm46L1tcc1xTXSsvLGluc2lkZTpvLGFsaWFzOnN9fX19ZnVuY3Rpb24gYShpKXt2YXIgbz1uLmxhbmd1YWdlc1tpXSxzPSJsYW5ndWFnZS0iK2k7cmV0dXJue2Jsb2NrOntwYXR0ZXJuOi88I1tcc1xTXSs/Iz4vLGluc2lkZTp7ZGlyZWN0aXZlOnIoIkAiLHsiYXR0ci12YWx1ZSI6e3BhdHRlcm46Lz0oPzooInwnKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKSpcMXxbXlxzJyI+PV0rKS8saW5zaWRlOntwdW5jdHVhdGlvbjovXj18XlsiJ118WyInXSQvfX0sa2V5d29yZDovXGJcdysoPz1ccykvLCJhdHRyLW5hbWUiOi9cYlx3Ky99KSxleHByZXNzaW9uOnIoIj0iLG8scyksImNsYXNzLWZlYXR1cmUiOnIoIlxcKyIsbyxzKSxzdGFuZGFyZDpyKCIiLG8scyl9fX19bi5sYW5ndWFnZXNbInQ0LXRlbXBsYXRpbmciXT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImNyZWF0ZVQ0Iix7dmFsdWU6YX0pfSkodCl9cmV0dXJuIHZmfXZhciBFZixKQTtmdW5jdGlvbiBFNigpe2lmKEpBKXJldHVybiBFZjtKQT0xO3ZhciBlPUJiKCksdD1XcygpO0VmPW4sbi5kaXNwbGF5TmFtZT0idDRDcyIsbi5hbGlhc2VzPVtdO2Z1bmN0aW9uIG4ocil7ci5yZWdpc3RlcihlKSxyLnJlZ2lzdGVyKHQpLHIubGFuZ3VhZ2VzLnQ0PXIubGFuZ3VhZ2VzWyJ0NC1jcyJdPXIubGFuZ3VhZ2VzWyJ0NC10ZW1wbGF0aW5nIl0uY3JlYXRlVDQoImNzaGFycCIpfXJldHVybiBFZn12YXIgU2YsZXg7ZnVuY3Rpb24gV0MoKXtpZihleClyZXR1cm4gU2Y7ZXg9MTt2YXIgZT1HQygpO1NmPXQsdC5kaXNwbGF5TmFtZT0idmJuZXQiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksbi5sYW5ndWFnZXMudmJuZXQ9bi5sYW5ndWFnZXMuZXh0ZW5kKCJiYXNpYyIse2NvbW1lbnQ6W3twYXR0ZXJuOi8oPzohfFJFTVxiKS4rL2ksaW5zaWRlOntrZXl3b3JkOi9eUkVNL2l9fSx7cGF0dGVybjovKF58W15cXDpdKScuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46LyhefFteIl0pIig/OiIifFteIl0pKiIoPyEiKS8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGtleXdvcmQ6Lyg/OlxiKD86QURESEFORExFUnxBRERSRVNTT0Z8QUxJQVN8QU5EfEFOREFMU098QVN8QkVFUHxCTE9BRHxCT09MRUFOfEJTQVZFfEJZUkVGfEJZVEV8QllWQUx8Q0FMTCg/OiBBQlNPTFVURSk/fENBU0V8Q0FUQ0h8Q0JPT0x8Q0JZVEV8Q0NIQVJ8Q0RBVEV8Q0RCTHxDREVDfENIQUlOfENIQVJ8Q0hESVJ8Q0lOVHxDTEFTU3xDTEVBUnxDTE5HfENMT1NFfENMU3xDT0JKfENPTXxDT01NT058Q09OU1R8Q09OVElOVUV8Q1NCWVRFfENTSE9SVHxDU05HfENTVFJ8Q1RZUEV8Q1VJTlR8Q1VMTkd8Q1VTSE9SVHxEQVRBfERBVEV8REVDSU1BTHxERUNMQVJFfERFRig/OiBGTnwgU0VHfERCTHxJTlR8TE5HfFNOR3xTVFIpfERFRkFVTFR8REVMRUdBVEV8RElNfERJUkVDVENBU1R8RE98RE9VQkxFfEVMU0V8RUxTRUlGfEVORHxFTlVNfEVOVklST058RVJBU0V8RVJST1J8RVZFTlR8RVhJVHxGQUxTRXxGSUVMRHxGSUxFU3xGSU5BTExZfEZPUig/OiBFQUNIKT98RlJJRU5EfEZVTkNUSU9OfEdFVHxHRVRUWVBFfEdFVFhNTE5BTUVTUEFDRXxHTE9CQUx8R09TVUJ8R09UT3xIQU5ETEVTfElGfElNUExFTUVOVFN8SU1QT1JUU3xJTnxJTkhFUklUU3xJTlBVVHxJTlRFR0VSfElOVEVSRkFDRXxJT0NUTHxJU3xJU05PVHxLRVl8S0lMTHxMRVR8TElCfExJS0V8TElORSBJTlBVVHxMT0NBVEV8TE9DS3xMT05HfExPT1B8TFNFVHxNRXxNS0RJUnxNT0R8TU9EVUxFfE1VU1RJTkhFUklUfE1VU1RPVkVSUklERXxNWUJBU0V8TVlDTEFTU3xOQU1FfE5BTUVTUEFDRXxOQVJST1dJTkd8TkVXfE5FWFR8Tk9UfE5PVEhJTkd8Tk9USU5IRVJJVEFCTEV8Tk9UT1ZFUlJJREFCTEV8T0JKRUNUfE9GfE9GRnxPTig/OiBDT018IEVSUk9SfCBLRVl8IFRJTUVSKT98T1BFTnxPUEVSQVRPUnxPUFRJT04oPzogQkFTRSk/fE9QVElPTkFMfE9SfE9SRUxTRXxPVVR8T1ZFUkxPQURTfE9WRVJSSURBQkxFfE9WRVJSSURFU3xQQVJBTUFSUkFZfFBBUlRJQUx8UE9LRXxQUklWQVRFfFBST1BFUlRZfFBST1RFQ1RFRHxQVUJMSUN8UFVUfFJBSVNFRVZFTlR8UkVBRHxSRUFET05MWXxSRURJTXxSRU18UkVNT1ZFSEFORExFUnxSRVNUT1JFfFJFU1VNRXxSRVRVUk58Uk1ESVJ8UlNFVHxSVU58U0JZVEV8U0VMRUNUKD86IENBU0UpP3xTRVR8U0hBRE9XU3xTSEFSRUR8U0hFTEx8U0hPUlR8U0lOR0xFfFNMRUVQfFNUQVRJQ3xTVEVQfFNUT1B8U1RSSU5HfFNUUlVDVFVSRXxTVUJ8U1dBUHxTWU5DTE9DS3xTWVNURU18VEhFTnxUSFJPV3xUSU1FUnxUT3xUUk9GRnxUUk9OfFRSVUV8VFJZfFRSWUNBU1R8VFlQRXxUWVBFT0Z8VUlOVEVHRVJ8VUxPTkd8VU5MT0NLfFVOVElMfFVTSE9SVHxVU0lOR3xWSUVXIFBSSU5UfFdBSVR8V0VORHxXSEVOfFdISUxFfFdJREVOSU5HfFdJVEh8V0lUSEVWRU5UU3xXUklURXxXUklURU9OTFl8WE9SKXxcQig/OiNDT05TVHwjRUxTRXwjRUxTRUlGfCNFTkR8I0lGKSkoPzpcJHxcYikvaSxwdW5jdHVhdGlvbjovWyw7Oigpe31dL30pfXJldHVybiBTZn12YXIgd2YsdHg7ZnVuY3Rpb24gUzYoKXtpZih0eClyZXR1cm4gd2Y7dHg9MTt2YXIgZT1CYigpLHQ9V0MoKTt3Zj1uLG4uZGlzcGxheU5hbWU9InQ0VmIiLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKHIpe3IucmVnaXN0ZXIoZSksci5yZWdpc3Rlcih0KSxyLmxhbmd1YWdlc1sidDQtdmIiXT1yLmxhbmd1YWdlc1sidDQtdGVtcGxhdGluZyJdLmNyZWF0ZVQ0KCJ2Ym5ldCIpfXJldHVybiB3Zn12YXIgVGYsbng7ZnVuY3Rpb24gWUMoKXtpZihueClyZXR1cm4gVGY7bng9MSxUZj1lLGUuZGlzcGxheU5hbWU9InlhbWwiLGUuYWxpYXNlcz1bInltbCJdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS9bKiZdW15cc1tcXXt9LF0rLyxhPS8hKD86PFtcd1wtJSM7Lz86QCY9KyQsLiF+KicoKVtcXV0rPnwoPzpbYS16QS1aXGQtXSohKT9bXHdcLSUjOy8/OkAmPSskLn4qJygpXSspPy8saT0iKD86IithLnNvdXJjZSsiKD86WyAJXSsiK3Iuc291cmNlKyIpP3wiK3Iuc291cmNlKyIoPzpbIAldKyIrYS5zb3VyY2UrIik/KSIsbz0vKD86W15cc1x4MDAtXHgwOFx4MGUtXHgxZiEiIyUmJyosXC06Pj9AW1xdYHt8fVx4N2YtXHg4NFx4ODYtXHg5Zlx1ZDgwMC1cdWRmZmZcdWZmZmVcdWZmZmZdfFs/Oi1dPFBMQUlOPikoPzpbIFx0XSooPzooPyFbIzpdKTxQTEFJTj58OjxQTEFJTj4pKSovLnNvdXJjZS5yZXBsYWNlKC88UExBSU4+L2csZnVuY3Rpb24oKXtyZXR1cm4vW15cc1x4MDAtXHgwOFx4MGUtXHgxZixbXF17fVx4N2YtXHg4NFx4ODYtXHg5Zlx1ZDgwMC1cdWRmZmZcdWZmZmVcdWZmZmZdLy5zb3VyY2V9KSxzPS8iKD86W14iXFxcclxuXXxcXC4pKiJ8Jyg/OlteJ1xcXHJcbl18XFwuKSonLy5zb3VyY2U7ZnVuY3Rpb24gbCh1LGMpe2M9KGN8fCIiKS5yZXBsYWNlKC9tL2csIiIpKyJtIjt2YXIgZD0vKFs6XC0sW3tdXHMqKD86XHM8PHByb3A+PlsgXHRdKyk/KSg/Ojw8dmFsdWU+PikoPz1bIFx0XSooPzokfCx8XF18XH18KD86W1xyXG5dXHMqKT8jKSkvLnNvdXJjZS5yZXBsYWNlKC88PHByb3A+Pi9nLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KS5yZXBsYWNlKC88PHZhbHVlPj4vZyxmdW5jdGlvbigpe3JldHVybiB1fSk7cmV0dXJuIFJlZ0V4cChkLGMpfW4ubGFuZ3VhZ2VzLnlhbWw9e3NjYWxhcjp7cGF0dGVybjpSZWdFeHAoLyhbXC06XVxzKig/OlxzPDxwcm9wPj5bIFx0XSspP1t8Pl0pWyBcdF0qKD86KCg/OlxyP1xufFxyKVsgXHRdKylcU1teXHJcbl0qKD86XDJbXlxyXG5dKykqKS8uc291cmNlLnJlcGxhY2UoLzw8cHJvcD4+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJzdHJpbmcifSxjb21tZW50Oi8jLiovLGtleTp7cGF0dGVybjpSZWdFeHAoLygoPzpefFs6XC0sW3tcclxuP10pWyBcdF0qKD86PDxwcm9wPj5bIFx0XSspPyk8PGtleT4+KD89XHMqOlxzKS8uc291cmNlLnJlcGxhY2UoLzw8cHJvcD4+L2csZnVuY3Rpb24oKXtyZXR1cm4gaX0pLnJlcGxhY2UoLzw8a2V5Pj4vZyxmdW5jdGlvbigpe3JldHVybiIoPzoiK28rInwiK3MrIikifSkpLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwLGFsaWFzOiJhdHJ1bGUifSxkaXJlY3RpdmU6e3BhdHRlcm46LyheWyBcdF0qKSUuKy9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9LGRhdGV0aW1lOntwYXR0ZXJuOmwoL1xkezR9LVxkXGQ/LVxkXGQ/KD86W3RUXXxbIFx0XSspXGRcZD86XGR7Mn06XGR7Mn0oPzpcLlxkKik/KD86WyBcdF0qKD86WnxbLStdXGRcZD8oPzo6XGR7Mn0pPykpP3xcZHs0fS1cZHsyfS1cZHsyfXxcZFxkPzpcZHsyfSg/OjpcZHsyfSg/OlwuXGQqKT8pPy8uc291cmNlKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJudW1iZXIifSxib29sZWFuOntwYXR0ZXJuOmwoL2ZhbHNlfHRydWUvLnNvdXJjZSwiaSIpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImltcG9ydGFudCJ9LG51bGw6e3BhdHRlcm46bCgvbnVsbHx+Ly5zb3VyY2UsImkiKSxsb29rYmVoaW5kOiEwLGFsaWFzOiJpbXBvcnRhbnQifSxzdHJpbmc6e3BhdHRlcm46bChzKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0sbnVtYmVyOntwYXR0ZXJuOmwoL1srLV0/KD86MHhbXGRhLWZdK3wwb1swLTddK3woPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/fFwuaW5mfFwubmFuKS8uc291cmNlLCJpIiksbG9va2JlaGluZDohMH0sdGFnOmEsaW1wb3J0YW50OnIscHVuY3R1YXRpb246Ly0tLXxbOltcXXt9XC0sfD4/XXxcLlwuXC4vfSxuLmxhbmd1YWdlcy55bWw9bi5sYW5ndWFnZXMueWFtbH0pKHQpfXJldHVybiBUZn12YXIga2Yscng7ZnVuY3Rpb24gdzYoKXtpZihyeClyZXR1cm4ga2Y7cng9MTt2YXIgZT1ZQygpO2tmPXQsdC5kaXNwbGF5TmFtZT0idGFwIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLnRhcD17ZmFpbDovbm90IG9rW14je1xuXHJdKi8scGFzczovb2tbXiN7XG5ccl0qLyxwcmFnbWE6L3ByYWdtYSBbKy1dW2Etel0rLyxiYWlsb3V0Oi9iYWlsIG91dCEuKi9pLHZlcnNpb246L1RBUCB2ZXJzaW9uIFxkKy9pLHBsYW46L1xiXGQrXC5cLlxkKyg/OiArIy4qKT8vLHN1YnRlc3Q6e3BhdHRlcm46LyMgU3VidGVzdCg/OjogLiopPy8sZ3JlZWR5OiEwfSxwdW5jdHVhdGlvbjovW3t9XS8sZGlyZWN0aXZlOi8jLiovLHlhbWxpc2g6e3BhdHRlcm46LyheWyBcdF0qKS0tLVtcc1xTXSo/W1xyXG5dWyBcdF0qXC5cLlwuJC9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm4ubGFuZ3VhZ2VzLnlhbWwsYWxpYXM6Imxhbmd1YWdlLXlhbWwifX19cmV0dXJuIGtmfXZhciBBZixheDtmdW5jdGlvbiBUNigpe2lmKGF4KXJldHVybiBBZjtheD0xLEFmPWUsZS5kaXNwbGF5TmFtZT0idGNsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy50Y2w9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSMuKi8sbG9va2JlaGluZDohMH0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqIi8sZ3JlZWR5OiEwfSx2YXJpYWJsZTpbe3BhdHRlcm46LyhcJCkoPzo6Oik/KD86W2EtekEtWjAtOV0rOjopKlx3Ky8sbG9va2JlaGluZDohMH0se3BhdHRlcm46LyhcJClce1tefV0rXH0vLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOi8oXltcdCBdKnNldFsgXHRdKykoPzo6Oik/KD86W2EtekEtWjAtOV0rOjopKlx3Ky9tLGxvb2tiZWhpbmQ6ITB9XSxmdW5jdGlvbjp7cGF0dGVybjovKF5bXHQgXSpwcm9jWyBcdF0rKVxTKy9tLGxvb2tiZWhpbmQ6ITB9LGJ1aWx0aW46W3twYXR0ZXJuOi8oXltcdCBdKikoPzpicmVha3xjbGFzc3xjb250aW51ZXxlcnJvcnxldmFsfGV4aXR8Zm9yfGZvcmVhY2h8aWZ8cHJvY3xyZXR1cm58c3dpdGNofHdoaWxlKVxiL20sbG9va2JlaGluZDohMH0sL1xiKD86ZWxzZXxlbHNlaWYpXGIvXSxzY29wZTp7cGF0dGVybjovKF5bXHQgXSopKD86Z2xvYmFsfHVwdmFyfHZhcmlhYmxlKVxiL20sbG9va2JlaGluZDohMCxhbGlhczoiY29uc3RhbnQifSxrZXl3b3JkOntwYXR0ZXJuOi8oXltcdCBdKnxcWykoPzpTYWZlX0Jhc2V8VGNsfGFmdGVyfGFwcGVuZHxhcHBseXxhcnJheXxhdXRvXyg/OmV4ZWNva3xpbXBvcnR8bG9hZHxta2luZGV4fHF1YWxpZnl8cmVzZXQpfGF1dG9ta2luZGV4X29sZHxiZ2Vycm9yfGJpbmFyeXxjYXRjaHxjZHxjaGFufGNsb2NrfGNsb3NlfGNvbmNhdHxkZGV8ZGljdHxlbmNvZGluZ3xlb2Z8ZXhlY3xleHByfGZibG9ja2VkfGZjb25maWd1cmV8ZmNvcHl8ZmlsZSg/OmV2ZW50fG5hbWUpP3xmbHVzaHxnZXRzfGdsb2J8aGlzdG9yeXxodHRwfGluY3J8aW5mb3xpbnRlcnB8am9pbnxsYXBwZW5kfGxhc3NpZ258bGluZGV4fGxpbnNlcnR8bGlzdHxsbGVuZ3RofGxvYWR8bHJhbmdlfGxyZXBlYXR8bHJlcGxhY2V8bHJldmVyc2V8bHNlYXJjaHxsc2V0fGxzb3J0fG1hdGgoPzpmdW5jfG9wKXxtZW1vcnl8bXNnY2F0fG5hbWVzcGFjZXxvcGVufHBhY2thZ2V8cGFycmF5fHBpZHxwa2dfbWtJbmRleHxwbGF0Zm9ybXxwdXRzfHB3ZHxyZV9zeW50YXh8cmVhZHxyZWZjaGFufHJlZ2V4cHxyZWdpc3RyeXxyZWdzdWJ8cmVuYW1lfHNjYW58c2Vla3xzZXR8c29ja2V0fHNvdXJjZXxzcGxpdHxzdHJpbmd8c3Vic3R8dGNsKD86X2VuZE9mV29yZHxfZmluZExpYnJhcnl8c3RhcnRPZig/Ok5leHR8UHJldmlvdXMpV29yZHx0ZXN0fHZhcnN8d29yZEJyZWFrKD86QWZ0ZXJ8QmVmb3JlKSl8dGVsbHx0aW1lfHRtfHRyYWNlfHVua25vd258dW5sb2FkfHVuc2V0fHVwZGF0ZXx1cGxldmVsfHZ3YWl0KVxiL20sbG9va2JlaGluZDohMH0sb3BlcmF0b3I6LyE9P3xcKlwqP3w9PXwmJj98XHxcfD98PFs9PF0/fD5bPT5dP3xbLSt+XC8lP15dfFxiKD86ZXF8aW58bmV8bmkpXGIvLHB1bmN0dWF0aW9uOi9be30oKVxbXF1dL319cmV0dXJuIEFmfXZhciB4ZixpeDtmdW5jdGlvbiBrNigpe2lmKGl4KXJldHVybiB4ZjtpeD0xLHhmPWUsZS5kaXNwbGF5TmFtZT0idGV4dGlsZSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe3ZhciByPS9cKFtefCgpXG5dK1wpfFxbW15cXVxuXStcXXxce1tefVxuXStcfS8uc291cmNlLGE9L1wpfFwoKD8hW158KClcbl0rXCkpLy5zb3VyY2U7ZnVuY3Rpb24gaShwLGYpe3JldHVybiBSZWdFeHAocC5yZXBsYWNlKC88TU9EPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIig/OiIrcisiKSJ9KS5yZXBsYWNlKC88UEFSPi9nLGZ1bmN0aW9uKCl7cmV0dXJuIig/OiIrYSsiKSJ9KSxmfHwiIil9dmFyIG89e2Nzczp7cGF0dGVybjovXHtbXnt9XStcfS8saW5zaWRlOntyZXN0Om4ubGFuZ3VhZ2VzLmNzc319LCJjbGFzcy1pZCI6e3BhdHRlcm46LyhcKClbXigpXSsoPz1cKSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxsYW5nOntwYXR0ZXJuOi8oXFspW15cW1xdXSsoPz1cXSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItdmFsdWUifSxwdW5jdHVhdGlvbjovW1xcXC9dXGQrfFxTL30scz1uLmxhbmd1YWdlcy50ZXh0aWxlPW4ubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7cGhyYXNlOntwYXR0ZXJuOi8oXnxccnxcbilcU1tcc1xTXSo/KD89JHxccj9cblxyP1xufFxyXHIpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp7ImJsb2NrLXRhZyI6e3BhdHRlcm46aSgvXlthLXpdXHcqKD86PE1PRD58PFBBUj58Wzw+PV0pKlwuLy5zb3VyY2UpLGluc2lkZTp7bW9kaWZpZXI6e3BhdHRlcm46aSgvKF5bYS16XVx3KikoPzo8TU9EPnw8UEFSPnxbPD49XSkrKD89XC4pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm99LHRhZzovXlthLXpdXHcqLyxwdW5jdHVhdGlvbjovXC4kL319LGxpc3Q6e3BhdHRlcm46aSgvXlsqI10rPE1PRD4qXHMrXFMuKi8uc291cmNlLCJtIiksaW5zaWRlOnttb2RpZmllcjp7cGF0dGVybjppKC8oXlsqI10rKTxNT0Q+Ky8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTpvfSxwdW5jdHVhdGlvbjovXlsqI10rL319LHRhYmxlOntwYXR0ZXJuOmkoL14oPzooPzo8TU9EPnw8UEFSPnxbPD49Xn5dKStcLlxzKik/KD86XHwoPzooPzo8TU9EPnw8UEFSPnxbPD49Xn5fXXxbXFwvXVxkKykrXC58KD8hKD86PE1PRD58PFBBUj58Wzw+PV5+X118W1xcL11cZCspK1wuKSlbXnxdKikrXHwvLnNvdXJjZSwibSIpLGluc2lkZTp7bW9kaWZpZXI6e3BhdHRlcm46aSgvKF58XHwoPzpccj9cbnxccik/KSg/OjxNT0Q+fDxQQVI+fFs8Pj1efl9dfFtcXC9dXGQrKSsoPz1cLikvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6b30scHVuY3R1YXRpb246L1x8fF5cLi99fSxpbmxpbmU6e3BhdHRlcm46aSgvKF58W15hLXpBLVpcZF0pKFwqXCp8X198XD9cP3xbKl8lQCtcLV5+XSk8TU9EPiouKz9cMig/IVthLXpBLVpcZF0pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntib2xkOntwYXR0ZXJuOmkoLyheKFwqXCo/KTxNT0Q+KikuKz8oPz1cMikvLnNvdXJjZSksbG9va2JlaGluZDohMH0saXRhbGljOntwYXR0ZXJuOmkoLyheKF9fPyk8TU9EPiopLis/KD89XDIpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITB9LGNpdGU6e3BhdHRlcm46aSgvKF5cP1w/PE1PRD4qKS4rPyg/PVw/XD8pLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InN0cmluZyJ9LGNvZGU6e3BhdHRlcm46aSgvKF5APE1PRD4qKS4rPyg/PUApLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImtleXdvcmQifSxpbnNlcnRlZDp7cGF0dGVybjppKC8oXlwrPE1PRD4qKS4rPyg/PVwrKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxkZWxldGVkOntwYXR0ZXJuOmkoLyheLTxNT0Q+KikuKz8oPz0tKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxzcGFuOntwYXR0ZXJuOmkoLyheJTxNT0Q+KikuKz8oPz0lKS8uc291cmNlKSxsb29rYmVoaW5kOiEwfSxtb2RpZmllcjp7cGF0dGVybjppKC8oXlwqXCp8X198XD9cP3xbKl8lQCtcLV5+XSk8TU9EPisvLnNvdXJjZSksbG9va2JlaGluZDohMCxpbnNpZGU6b30scHVuY3R1YXRpb246L1sqXyU/QCtcLV5+XSsvfX0sImxpbmstcmVmIjp7cGF0dGVybjovXlxbW15cXV0rXF1cUyskL20saW5zaWRlOntzdHJpbmc6e3BhdHRlcm46LyheXFspW15cXV0rKD89XF0pLyxsb29rYmVoaW5kOiEwfSx1cmw6e3BhdHRlcm46LyheXF0pXFMrJC8sbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L1tcW1xdXS99fSxsaW5rOntwYXR0ZXJuOmkoLyI8TU9EPipbXiJdKyI6Lis/KD89W15cdy9dPyg/OlxzfCQpKS8uc291cmNlKSxpbnNpZGU6e3RleHQ6e3BhdHRlcm46aSgvKF4iPE1PRD4qKVteIl0rKD89IikvLnNvdXJjZSksbG9va2JlaGluZDohMH0sbW9kaWZpZXI6e3BhdHRlcm46aSgvKF4iKTxNT0Q+Ky8uc291cmNlKSxsb29rYmVoaW5kOiEwLGluc2lkZTpvfSx1cmw6e3BhdHRlcm46Lyg6KS4rLyxsb29rYmVoaW5kOiEwfSxwdW5jdHVhdGlvbjovWyI6XS99fSxpbWFnZTp7cGF0dGVybjppKC8hKD86PE1PRD58PFBBUj58Wzw+PV0pKig/IVs8Pj1dKVteIVxzKCldKyg/OlwoW14pXStcKSk/ISg/OjouKz8oPz1bXlx3L10/KD86XHN8JCkpKT8vLnNvdXJjZSksaW5zaWRlOntzb3VyY2U6e3BhdHRlcm46aSgvKF4hKD86PE1PRD58PFBBUj58Wzw+PV0pKikoPyFbPD49XSlbXiFccygpXSsoPzpcKFteKV0rXCkpPyg/PSEpLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InVybCJ9LG1vZGlmaWVyOntwYXR0ZXJuOmkoLyheISkoPzo8TU9EPnw8UEFSPnxbPD49XSkrLy5zb3VyY2UpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm99LHVybDp7cGF0dGVybjovKDopLisvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9bITpdL319LGZvb3Rub3RlOntwYXR0ZXJuOi9cYlxbXGQrXF0vLGFsaWFzOiJjb21tZW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi9cW3xcXS99fSxhY3JvbnltOntwYXR0ZXJuOi9cYltBLVpcZF0rXChbXildK1wpLyxpbnNpZGU6e2NvbW1lbnQ6e3BhdHRlcm46LyhcKClbXigpXSsoPz1cKSkvLGxvb2tiZWhpbmQ6ITB9LHB1bmN0dWF0aW9uOi9bKCldL319LG1hcms6e3BhdHRlcm46L1xiXCgoPzpDfFJ8VE0pXCkvLGFsaWFzOiJjb21tZW50IixpbnNpZGU6e3B1bmN0dWF0aW9uOi9bKCldL319fX19KSxsPXMucGhyYXNlLmluc2lkZSx1PXtpbmxpbmU6bC5pbmxpbmUsbGluazpsLmxpbmssaW1hZ2U6bC5pbWFnZSxmb290bm90ZTpsLmZvb3Rub3RlLGFjcm9ueW06bC5hY3JvbnltLG1hcms6bC5tYXJrfTtzLnRhZy5wYXR0ZXJuPS88XC8/KD8hXGQpW2EtejAtOV0rKD86XHMrW15ccz5cLz1dKyg/Oj0oPzooInwnKSg/OlxcW1xzXFNdfCg/IVwxKVteXFxdKSpcMXxbXlxzJyI+PV0rKSk/KSpccypcLz8+L2k7dmFyIGM9bC5pbmxpbmUuaW5zaWRlO2MuYm9sZC5pbnNpZGU9dSxjLml0YWxpYy5pbnNpZGU9dSxjLmluc2VydGVkLmluc2lkZT11LGMuZGVsZXRlZC5pbnNpZGU9dSxjLnNwYW4uaW5zaWRlPXU7dmFyIGQ9bC50YWJsZS5pbnNpZGU7ZC5pbmxpbmU9dS5pbmxpbmUsZC5saW5rPXUubGluayxkLmltYWdlPXUuaW1hZ2UsZC5mb290bm90ZT11LmZvb3Rub3RlLGQuYWNyb255bT11LmFjcm9ueW0sZC5tYXJrPXUubWFya30pKHQpfXJldHVybiB4Zn12YXIgUmYsb3g7ZnVuY3Rpb24gQTYoKXtpZihveClyZXR1cm4gUmY7b3g9MSxSZj1lLGUuZGlzcGxheU5hbWU9InRvbWwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj0vKD86W1x3LV0rfCdbXidcblxyXSonfCIoPzpcXC58W15cXCJcclxuXSkqIikvLnNvdXJjZTtmdW5jdGlvbiBhKGkpe3JldHVybiBpLnJlcGxhY2UoL19fL2csZnVuY3Rpb24oKXtyZXR1cm4gcn0pfW4ubGFuZ3VhZ2VzLnRvbWw9e2NvbW1lbnQ6e3BhdHRlcm46LyMuKi8sZ3JlZWR5OiEwfSx0YWJsZTp7cGF0dGVybjpSZWdFeHAoYSgvKF5bXHQgXSpcW1xzKig/OlxbXHMqKT8pX18oPzpccypcLlxzKl9fKSooPz1ccypcXSkvLnNvdXJjZSksIm0iKSxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoiY2xhc3MtbmFtZSJ9LGtleTp7cGF0dGVybjpSZWdFeHAoYSgvKF5bXHQgXSp8W3ssXVxzKilfXyg/OlxzKlwuXHMqX18pKig/PVxzKj0pLy5zb3VyY2UpLCJtIiksbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6InByb3BlcnR5In0sc3RyaW5nOntwYXR0ZXJuOi8iIiIoPzpcXFtcc1xTXXxbXlxcXSkqPyIiInwnJydbXHNcU10qPycnJ3wnW14nXG5ccl0qJ3wiKD86XFwufFteXFwiXHJcbl0pKiIvLGdyZWVkeTohMH0sZGF0ZTpbe3BhdHRlcm46L1xiXGR7NH0tXGR7Mn0tXGR7Mn0oPzpbVFxzXVxkezJ9OlxkezJ9OlxkezJ9KD86XC5cZCspPyg/Olp8WystXVxkezJ9OlxkezJ9KT8pP1xiL2ksYWxpYXM6Im51bWJlciJ9LHtwYXR0ZXJuOi9cYlxkezJ9OlxkezJ9OlxkezJ9KD86XC5cZCspP1xiLyxhbGlhczoibnVtYmVyIn1dLG51bWJlcjovKD86XGIwKD86eFtcZGEtekEtWl0rKD86X1tcZGEtekEtWl0rKSp8b1swLTddKyg/Ol9bMC03XSspKnxiWzEwXSsoPzpfWzEwXSspKikpXGJ8Wy0rXT9cYlxkKyg/Ol9cZCspKig/OlwuXGQrKD86X1xkKykqKT8oPzpbZUVdWystXT9cZCsoPzpfXGQrKSopP1xifFstK10/XGIoPzppbmZ8bmFuKVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLHB1bmN0dWF0aW9uOi9bLiw9W1xde31dL319KSh0KX1yZXR1cm4gUmZ9dmFyIF9mLHN4O2Z1bmN0aW9uIHg2KCl7aWYoc3gpcmV0dXJuIF9mO3N4PTEsX2Y9ZSxlLmRpc3BsYXlOYW1lPSJ0cmVtb3IiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtuLmxhbmd1YWdlcy50cmVtb3I9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKSg/OlwvXCpbXHNcU10qP1wqXC98KD86LS18XC9cL3wjKS4qKS8sbG9va2JlaGluZDohMH0sImludGVycG9sYXRlZC1zdHJpbmciOm51bGwsZXh0cmFjdG9yOntwYXR0ZXJuOi9cYlthLXpfXVx3Klx8KD86W15cclxuXFx8XXxcXCg/OlxyXG58W1xzXFNdKSkqXHwvaSxncmVlZHk6ITAsaW5zaWRlOntyZWdleDp7cGF0dGVybjovKF5yZSlcfFtcc1xTXSsvLGxvb2tiZWhpbmQ6ITB9LGZ1bmN0aW9uOi9eXHcrLyx2YWx1ZTovXHxbXHNcU10rL319LGlkZW50aWZpZXI6e3BhdHRlcm46L2BbXmBdKmAvLGdyZWVkeTohMH0sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqKD86Ojpccyo8fFwoKSlcYi8sa2V5d29yZDovXGIoPzphcmdzfGFzfGJ5fGNhc2V8Y29uZmlnfGNvbm5lY3R8Y29ubmVjdG9yfGNvbnN0fGNvcHl8Y3JlYXRlfGRlZmF1bHR8ZGVmaW5lfGRlcGxveXxkcm9wfGVhY2h8ZW1pdHxlbmR8ZXJhc2V8ZXZlbnR8Zmxvd3xmbnxmb3J8ZnJvbXxncm91cHxoYXZpbmd8aW5zZXJ0fGludG98aW50cmluc2ljfGxldHxsaW5rc3xtYXRjaHxtZXJnZXxtb2R8bW92ZXxvZnxvcGVyYXRvcnxwYXRjaHxwaXBlbGluZXxyZWN1cnxzY3JpcHR8c2VsZWN0fHNldHxzbGlkaW5nfHN0YXRlfHN0cmVhbXx0b3x0dW1ibGluZ3x1cGRhdGV8dXNlfHdoZW58d2hlcmV8d2luZG93fHdpdGgpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8bnVsbHx0cnVlKVxiL2ksbnVtYmVyOi9cYig/OjBiWzAxX10qfDB4WzAtOWEtZkEtRl9dKnxcZFtcZF9dKig/OlwuXGRbXGRfXSopPyg/OltFZV1bKy1dP1tcZF9dKyk/KVxiLywicGF0dGVybi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46LyUoPz1bKHtbXSkvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LG9wZXJhdG9yOi9bLSsqXC8lfiFeXT0/fD1bPT5dP3wmWyY9XT98XHxbfD1dP3w8PD89P3w+Pj8+Pz0/fCg/OmFic2VudHxhbmR8bm90fG9yfHByZXNlbnR8eG9yKVxiLyxwdW5jdHVhdGlvbjovOjp8WztcW1xdKClce1x9LC46XS99O3ZhciByPS8jXHsoPzpbXiJ7fV18XHtbXnt9XSpcfXwiKD86W14iXFxcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqIikqXH0vLnNvdXJjZTtuLmxhbmd1YWdlcy50cmVtb3JbImludGVycG9sYXRlZC1zdHJpbmciXT17cGF0dGVybjpSZWdFeHAoLyhefFteXFxdKS8uc291cmNlKycoPzoiIiIoPzonKy9bXiJcXCNdfFxcW1xzXFNdfCIoPyEiIil8Iyg/IVx7KS8uc291cmNlKyJ8IityKycpKiIiInwiKD86JysvW14iXFxcclxuI118XFwoPzpcclxufFtcc1xTXSl8Iyg/IVx7KS8uc291cmNlKyJ8IityKycpKiIpJyksbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntpbnRlcnBvbGF0aW9uOntwYXR0ZXJuOlJlZ0V4cChyKSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eI1x7fFx9JC8sZXhwcmVzc2lvbjp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm4ubGFuZ3VhZ2VzLnRyZW1vcn19fSxzdHJpbmc6L1tcc1xTXSsvfX0sbi5sYW5ndWFnZXMudHJveT1uLmxhbmd1YWdlcy50cmVtb3Isbi5sYW5ndWFnZXMudHJpY2tsZT1uLmxhbmd1YWdlcy50cmVtb3J9KSh0KX1yZXR1cm4gX2Z9dmFyIElmLGx4O2Z1bmN0aW9uIFI2KCl7aWYobHgpcmV0dXJuIElmO2x4PTE7dmFyIGU9VkMoKSx0PVBiKCk7SWY9bixuLmRpc3BsYXlOYW1lPSJ0c3giLG4uYWxpYXNlcz1bXTtmdW5jdGlvbiBuKHIpe3IucmVnaXN0ZXIoZSksci5yZWdpc3Rlcih0KSxmdW5jdGlvbihhKXt2YXIgaT1hLnV0aWwuY2xvbmUoYS5sYW5ndWFnZXMudHlwZXNjcmlwdCk7YS5sYW5ndWFnZXMudHN4PWEubGFuZ3VhZ2VzLmV4dGVuZCgianN4IixpKSxkZWxldGUgYS5sYW5ndWFnZXMudHN4LnBhcmFtZXRlcixkZWxldGUgYS5sYW5ndWFnZXMudHN4WyJsaXRlcmFsLXByb3BlcnR5Il07dmFyIG89YS5sYW5ndWFnZXMudHN4LnRhZztvLnBhdHRlcm49UmVnRXhwKC8oXnxbXlx3JF18KD89PFwvKSkvLnNvdXJjZSsiKD86IitvLnBhdHRlcm4uc291cmNlKyIpIixvLnBhdHRlcm4uZmxhZ3MpLG8ubG9va2JlaGluZD0hMH0ocil9cmV0dXJuIElmfXZhciBOZix1eDtmdW5jdGlvbiBfNigpe2lmKHV4KXJldHVybiBOZjt1eD0xO3ZhciBlPWx0KCk7TmY9dCx0LmRpc3BsYXlOYW1lPSJ0dDIiLHQuYWxpYXNlcz1bXTtmdW5jdGlvbiB0KG4pe24ucmVnaXN0ZXIoZSksZnVuY3Rpb24ocil7ci5sYW5ndWFnZXMudHQyPXIubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtjb21tZW50Oi8jLip8XFslI1tcc1xTXSo/JVxdLyxrZXl3b3JkOi9cYig/OkJMT0NLfENBTEx8Q0FTRXxDQVRDSHxDTEVBUnxERUJVR3xERUZBVUxUfEVMU0V8RUxTSUZ8RU5EfEZJTFRFUnxGSU5BTHxGT1JFQUNIfEdFVHxJRnxJTnxJTkNMVURFfElOU0VSVHxMQVNUfE1BQ1JPfE1FVEF8TkVYVHxQRVJMfFBST0NFU1N8UkFXUEVSTHxSRVRVUk58U0VUfFNUT1B8U1dJVENIfFRBR1N8VEhST1d8VFJZfFVOTEVTU3xVU0V8V0hJTEV8V1JBUFBFUilcYi8scHVuY3R1YXRpb246L1tbXF17fSwoKV0vfSksci5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ0dDIiLCJudW1iZXIiLHtvcGVyYXRvcjovPVs+PV0/fCE9P3w8PT98Pj0/fCYmfFx8XHw/fFxiKD86YW5kfG5vdHxvcilcYi8sdmFyaWFibGU6e3BhdHRlcm46L1xiW2Etel1cdyooPzpccypcLlxzKig/OlxkK3xcJD9bYS16XVx3KikpKlxiL2l9fSksci5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ0dDIiLCJrZXl3b3JkIix7ZGVsaW1pdGVyOntwYXR0ZXJuOi9eKD86XFslfCUlKS0/fC0/JVxdJC8sYWxpYXM6InB1bmN0dWF0aW9uIn19KSxyLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInR0MiIsInN0cmluZyIseyJzaW5nbGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LydbXlxcJ10qKD86XFxbXHNcU11bXlxcJ10qKSonLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LCJkb3VibGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LyJbXlxcIl0qKD86XFxbXHNcU11bXlxcIl0qKSoiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyIsaW5zaWRlOnt2YXJpYWJsZTp7cGF0dGVybjovXCQoPzpbYS16XVx3Kig/OlwuKD86XGQrfFwkP1thLXpdXHcqKSkqKS9pfX19fSksZGVsZXRlIHIubGFuZ3VhZ2VzLnR0Mi5zdHJpbmcsci5ob29rcy5hZGQoImJlZm9yZS10b2tlbml6ZSIsZnVuY3Rpb24oYSl7dmFyIGk9L1xbJVtcc1xTXSs/JVxdL2c7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0uYnVpbGRQbGFjZWhvbGRlcnMoYSwidHQyIixpKX0pLHIuaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oYSl7ci5sYW5ndWFnZXNbIm1hcmt1cC10ZW1wbGF0aW5nIl0udG9rZW5pemVQbGFjZWhvbGRlcnMoYSwidHQyIil9KX0obil9cmV0dXJuIE5mfXZhciBDZixjeDtmdW5jdGlvbiBJNigpe2lmKGN4KXJldHVybiBDZjtjeD0xO3ZhciBlPWx0KCk7Q2Y9dCx0LmRpc3BsYXlOYW1lPSJ0d2lnIix0LmFsaWFzZXM9W107ZnVuY3Rpb24gdChuKXtuLnJlZ2lzdGVyKGUpLG4ubGFuZ3VhZ2VzLnR3aWc9e2NvbW1lbnQ6L15ceyNbXHNcU10qPyNcfSQvLCJ0YWctbmFtZSI6e3BhdHRlcm46LyheXHslLT9ccyopXHcrLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJrZXl3b3JkIn0sZGVsaW1pdGVyOntwYXR0ZXJuOi9eXHtbeyVdLT98LT9bJX1dXH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSxzdHJpbmc6e3BhdHRlcm46LygifCcpKD86XFwufCg/IVwxKVteXFxcclxuXSkqXDEvLGluc2lkZTp7cHVuY3R1YXRpb246L15bJyJdfFsnIl0kL319LGtleXdvcmQ6L1xiKD86ZXZlbnxpZnxvZGQpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8bnVsbHx0cnVlKVxiLyxudW1iZXI6L1xiMHhbXGRBLUZhLWZdK3woPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRWVdWy0rXT9cZCspPy8sb3BlcmF0b3I6W3twYXR0ZXJuOi8oXHMpKD86YW5kfGItYW5kfGItb3J8Yi14b3J8ZW5kcyB3aXRofGlufGlzfG1hdGNoZXN8bm90fG9yfHNhbWUgYXN8c3RhcnRzIHdpdGgpKD89XHMpLyxsb29rYmVoaW5kOiEwfSwvWz08Pl09P3whPXxcKlwqP3xcL1wvP3xcPzo/fFstK34lfF0vXSxwdW5jdHVhdGlvbjovWygpXFtcXXt9Oi4sXS99LG4uaG9va3MuYWRkKCJiZWZvcmUtdG9rZW5pemUiLGZ1bmN0aW9uKHIpe2lmKHIubGFuZ3VhZ2U9PT0idHdpZyIpe3ZhciBhPS9ceyg/OiNbXHNcU10qPyN8JVtcc1xTXSo/JXxce1tcc1xTXSo/XH0pXH0vZztuLmxhbmd1YWdlc1sibWFya3VwLXRlbXBsYXRpbmciXS5idWlsZFBsYWNlaG9sZGVycyhyLCJ0d2lnIixhKX19KSxuLmhvb2tzLmFkZCgiYWZ0ZXItdG9rZW5pemUiLGZ1bmN0aW9uKHIpe24ubGFuZ3VhZ2VzWyJtYXJrdXAtdGVtcGxhdGluZyJdLnRva2VuaXplUGxhY2Vob2xkZXJzKHIsInR3aWciKX0pfXJldHVybiBDZn12YXIgT2YsZHg7ZnVuY3Rpb24gTjYoKXtpZihkeClyZXR1cm4gT2Y7ZHg9MSxPZj1lLGUuZGlzcGxheU5hbWU9InR5cG9zY3JpcHQiLGUuYWxpYXNlcz1bInRzY29uZmlnIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9L1xiKD86QUNUfEFDVElGU1VCfENBUlJBWXxDQVNFfENMRUFSR0lGfENPQXxDT0FfSU5UfENPTlNUQU5UU3xDT05URU5UfENVUnxFRElUUEFORUx8RUZGRUNUfEVYVHxGSUxFfEZMVUlEVEVNUExBVEV8Rk9STXxGUkFNRXxGUkFNRVNFVHxHSUZCVUlMREVSfEdNRU5VfEdNRU5VX0ZPTERPVVR8R01FTlVfTEFZRVJTfEdQfEhNRU5VfEhSVUxFUnxIVE1MfElFTlZ8SUZTVUJ8SU1BR0V8SU1HTUVOVXxJTUdNRU5VSVRFTXxJTUdURVhUfElNR19SRVNPVVJDRXxJTkNMVURFX1RZUE9TQ1JJUFR8SlNNRU5VfEpTTUVOVUlURU18TExMfExPQURfUkVHSVNURVJ8Tk98UEFHRXxSRUNPUkRTfFJFU1RPUkVfUkVHSVNURVJ8VEVNUExBVEV8VEVYVHxUTUVOVXxUTUVOVUlURU18VE1FTlVfTEFZRVJTfFVTRVJ8VVNFUl9JTlR8X0dJRkJVSUxERVJ8Z2xvYmFsfGdsb2JhbFN0cmluZ3xnbG9iYWxWYXIpXGIvO24ubGFuZ3VhZ2VzLnR5cG9zY3JpcHQ9e2NvbW1lbnQ6W3twYXR0ZXJuOi8oXnxbXlxcXSlcL1wqW1xzXFNdKj8oPzpcKlwvfCQpLyxsb29rYmVoaW5kOiEwfSx7cGF0dGVybjovKF58W15cXDo9IFx0XXwoPzpefFtePSBcdF0pWyBcdF0rKVwvXC8uKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXiInXSkjLiovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sZnVuY3Rpb246W3twYXR0ZXJuOi88SU5DTFVERV9UWVBPU0NSSVBUOlxzKnNvdXJjZVxzKj1ccyooPzoiW14iXHJcbl0qInwnW14nXHJcbl0qJylccyo+LyxpbnNpZGU6e3N0cmluZzp7cGF0dGVybjovIlteIlxyXG5dKiJ8J1teJ1xyXG5dKicvLGluc2lkZTp7a2V5d29yZDpyfX0sa2V5d29yZDp7cGF0dGVybjovSU5DTFVERV9UWVBPU0NSSVBUL319fSx7cGF0dGVybjovQGltcG9ydFxzKig/OiJbXiJcclxuXSoifCdbXidcclxuXSonKS8saW5zaWRlOntzdHJpbmc6LyJbXiJcclxuXSoifCdbXidcclxuXSonL319XSxzdHJpbmc6e3BhdHRlcm46L14oW149XSo9WzwgXT8pKD86KD8hXF1cbikuKSovLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntmdW5jdGlvbjovXHtcJC4qXH0vLGtleXdvcmQ6cixudW1iZXI6L15cZCskLyxwdW5jdHVhdGlvbjovWyx8Ol0vfX0sa2V5d29yZDpyLG51bWJlcjp7cGF0dGVybjovXGJcZCtccypbLns9XS8saW5zaWRlOntvcGVyYXRvcjovWy57PV0vfX0sdGFnOntwYXR0ZXJuOi9cLj9bLVx3XFxdK1wuPy8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0scHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOnxdLyxvcGVyYXRvcjovWzw+XT0/fFshPV09Pz0/fC0tP3xcK1wrP3wmJj98XHxcfD98Wz8qL35eJV0vfSxuLmxhbmd1YWdlcy50c2NvbmZpZz1uLmxhbmd1YWdlcy50eXBvc2NyaXB0fSkodCl9cmV0dXJuIE9mfXZhciBMZixweDtmdW5jdGlvbiBDNigpe2lmKHB4KXJldHVybiBMZjtweD0xLExmPWUsZS5kaXNwbGF5TmFtZT0idW5yZWFsc2NyaXB0IixlLmFsaWFzZXM9WyJ1YyIsInVzY3JpcHQiXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnVucmVhbHNjcmlwdD17Y29tbWVudDovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XFwoPzpcclxufFtcc1xTXSl8KD8hXDEpW15cXFxyXG5dKSpcMS8sZ3JlZWR5OiEwfSxjYXRlZ29yeTp7cGF0dGVybjovKFxiKD86KD86YXV0b2V4cGFuZHxoaWRlfHNob3cpY2F0ZWdvcmllc3x2YXIpXHMqXCgpW14oKV0rKD89XCkpLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxhbGlhczoicHJvcGVydHkifSxtZXRhZGF0YTp7cGF0dGVybjovKFx3XHMqKTxccypcdytccyo9W148Pnw9XHJcbl0rKD86XHxccypcdytccyo9W148Pnw9XHJcbl0rKSo+Lyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e3Byb3BlcnR5Oi9cYlx3Kyg/PVxzKj0pLyxvcGVyYXRvcjovPS8scHVuY3R1YXRpb246L1s8PnxdL319LG1hY3JvOntwYXR0ZXJuOi9gXHcrLyxhbGlhczoicHJvcGVydHkifSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmNsYXNzfGVudW18ZXh0ZW5kc3xpbnRlcmZhY2V8c3RhdGUoPzpcKFwpKT98c3RydWN0fHdpdGhpbilccyspXHcrLyxsb29rYmVoaW5kOiEwfSxrZXl3b3JkOi9cYig/OmFic3RyYWN0fGFjdG9yfGFycmF5fGF1dG98YXV0b2V4cGFuZGNhdGVnb3JpZXN8Ym9vbHxicmVha3xieXRlfGNhc2V8Y2xhc3N8Y2xhc3Nncm91cHxjbGllbnR8Y29lcmNlfGNvbGxhcHNlY2F0ZWdvcmllc3xjb25maWd8Y29uc3R8Y29udGludWV8ZGVmYXVsdHxkZWZhdWx0cHJvcGVydGllc3xkZWxlZ2F0ZXxkZXBlbmRzb258ZGVwcmVjYXRlZHxkb3xkb250Y29sbGFwc2VjYXRlZ29yaWVzfGVkaXRjb25zdHxlZGl0aW5saW5lbmV3fGVsc2V8ZW51bXxldmVudHxleGVjfGV4cG9ydHxleHRlbmRzfGZpbmFsfGZsb2F0fGZvcnxmb3JjZXNjcmlwdG9yZGVyfGZvcmVhY2h8ZnVuY3Rpb258Z290b3xndWlkfGhpZGVjYXRlZ29yaWVzfGhpZGVkcm9wZG93bnxpZnxpZ25vcmVzfGltcGxlbWVudHN8aW5oZXJpdHN8aW5wdXR8aW50fGludGVyZmFjZXxpdGVyYXRvcnxsYXRlbnR8bG9jYWx8bWF0ZXJpYWx8bmFtZXxuYXRpdmV8bmF0aXZlcmVwbGljYXRpb258bm9leHBvcnR8bm9udHJhbnNpZW50fG5vdGVkaXRpbmxpbmVuZXd8bm90cGxhY2VhYmxlfG9wZXJhdG9yfG9wdGlvbmFsfG91dHxwYXdufHBlcm9iamVjdGNvbmZpZ3xwZXJvYmplY3Rsb2NhbGl6ZWR8cGxhY2VhYmxlfHBvc3RvcGVyYXRvcnxwcmVvcGVyYXRvcnxwcml2YXRlfHByb3RlY3RlZHxyZWxpYWJsZXxyZXBsaWNhdGlvbnxyZXR1cm58c2VydmVyfHNob3djYXRlZ29yaWVzfHNpbXVsYXRlZHxzaW5ndWxhcnxzdGF0ZXxzdGF0aWN8c3RyaW5nfHN0cnVjdHxzdHJ1Y3RkZWZhdWx0fHN0cnVjdGRlZmF1bHRwcm9wZXJ0aWVzfHN3aXRjaHx0ZXh0dXJlfHRyYW5zaWVudHx0cmF2ZWx8dW5yZWxpYWJsZXx1bnRpbHx2YXJ8dmVjdG9yfHdoaWxlfHdpdGhpbilcYi8sZnVuY3Rpb246L1xiW2Etel9dXHcqKD89XHMqXCgpL2ksYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6L1xiMHhbXGRhLWZdK1xifCg/OlxiXGQrKD86XC5cZCopP3xcQlwuXGQrKSg/OmVbKy1dP1xkKyk/L2ksb3BlcmF0b3I6Lz4+fDw8fC0tfFwrXCt8XCpcKnxbLSsqL34hPTw+JEBdPT98JiY/fFx8XHw/fFxeXF4/fFs/OiVdfFxiKD86Q2xvY2t3aXNlRnJvbXxDcm9zc3xEb3QpXGIvLHB1bmN0dWF0aW9uOi9bKClbXF17fTssLl0vfSx0Lmxhbmd1YWdlcy51Yz10Lmxhbmd1YWdlcy51c2NyaXB0PXQubGFuZ3VhZ2VzLnVucmVhbHNjcmlwdH1yZXR1cm4gTGZ9dmFyIERmLGZ4O2Z1bmN0aW9uIE82KCl7aWYoZngpcmV0dXJuIERmO2Z4PTEsRGY9ZSxlLmRpc3BsYXlOYW1lPSJ1b3Jhem9yIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy51b3Jhem9yPXsiY29tbWVudC1oYXNoIjp7cGF0dGVybjovIy4qLyxhbGlhczoiY29tbWVudCIsZ3JlZWR5OiEwfSwiY29tbWVudC1zbGFzaCI6e3BhdHRlcm46L1wvXC8uKi8sYWxpYXM6ImNvbW1lbnQiLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8oInwnKSg/OlxcLnwoPyFcMSlbXlxcXHJcbl0pKlwxLyxpbnNpZGU6e3B1bmN0dWF0aW9uOi9eWyciXXxbJyJdJC99LGdyZWVkeTohMH0sInNvdXJjZS1sYXllcnMiOntwYXR0ZXJuOi9cYig/OmFybXN8YmFja3BhY2t8Ymx1ZXxicmFjZWxldHxjYW5jZWx8Y2xlYXJ8Y2xvYWt8Y3JpbWluYWx8ZWFycmluZ3N8ZW5lbXl8ZmFjaWFsaGFpcnxmcmllbmR8ZnJpZW5kbHl8Z2xvdmVzfGdyYXl8Z3JleXxncm91bmR8aGFpcnxoZWFkfGlubmVybGVnc3xpbm5lcnRvcnNvfGlubm9jZW50fGxlZnRoYW5kfG1pZGRsZXRvcnNvfG11cmRlcmVyfG5lY2t8bm9uZnJpZW5kbHl8b25laGFuZGVkc2Vjb25kYXJ5fG91dGVybGVnc3xvdXRlcnRvcnNvfHBhbnRzfHJlZHxyaWdodGhhbmR8cmluZ3xzZWxmfHNoaXJ0fHNob2VzfHRhbGlzbWFufHdhaXN0KVxiL2ksYWxpYXM6ImZ1bmN0aW9uIn0sInNvdXJjZS1jb21tYW5kcyI6e3BhdHRlcm46L1xiKD86YWxsaWFuY2V8YXR0YWNrfGNhc3R8Y2xlYXJhbGx8Y2xlYXJpZ25vcmV8Y2xlYXJqb3VybmFsfGNsZWFybGlzdHxjbGVhcnN5c21zZ3xjcmVhdGVsaXN0fGNyZWF0ZXRpbWVyfGRjbGlja3xkY2xpY2t0eXBlfGRjbGlja3ZhcnxkcmVzc3xkcmVzc2NvbmZpZ3xkcm9wfGRyb3ByZWxsb2N8ZW1vdGV8Z2V0bGFiZWx8Z3VpbGR8Z3VtcGNsb3NlfGd1bXByZXNwb25zZXxob3RrZXl8aWdub3JlfGxhc3R0YXJnZXR8bGlmdHxsaWZ0dHlwZXxtZW51fG1lbnVyZXNwb25zZXxtc2d8b3JnfG9yZ2FuaXplfG9yZ2FuaXplcnxvdmVyaGVhZHxwYXVzZXxwb3BsaXN0fHBvdGlvbnxwcm9tcHRyZXNwb25zZXxwdXNobGlzdHxyZW1vdmVsaXN0fHJlbW92ZXRpbWVyfHJlbmFtZXxyZXN0b2NrfHNheXxzY2F2fHNjYXZlbmdlcnxzY3JpcHR8c2V0YWJpbGl0eXxzZXRsYXN0dGFyZ2V0fHNldHNraWxsfHNldHRpbWVyfHNldHZhcnxzeXNtc2d8dGFyZ2V0fHRhcmdldGxvY3x0YXJnZXRyZWxsb2N8dGFyZ2V0dHlwZXx1bmRyZXNzfHVuaWdub3JlfHVuc2V0dmFyfHVzZW9iamVjdHx1c2VvbmNlfHVzZXNraWxsfHVzZXR5cGV8dmlydHVlfHdhaXR8d2FpdGZvcmd1bXB8d2FpdGZvcm1lbnV8d2FpdGZvcnByb21wdHx3YWl0Zm9yc3RhdHx3YWl0Zm9yc3lzbXNnfHdhaXRmb3J0YXJnZXR8d2Fsa3x3ZnN5c21zZ3x3ZnR8d2hpc3Blcnx5ZWxsKVxiLyxhbGlhczoiZnVuY3Rpb24ifSwidGFnLW5hbWUiOntwYXR0ZXJuOi8oXlx7JS0/XHMqKVx3Ky8sbG9va2JlaGluZDohMCxhbGlhczoia2V5d29yZCJ9LGRlbGltaXRlcjp7cGF0dGVybjovXlx7W3slXS0/fC0/WyV9XVx9JC8sYWxpYXM6InB1bmN0dWF0aW9uIn0sZnVuY3Rpb246L1xiKD86YXRsaXN0fGNsb3NlfGNsb3Nlc3R8Y291bnR8Y291bnRlcnxjb3VudHR5cGV8ZGVhZHxkZXh8ZGlmZmhpdHN8ZGlmZm1hbmF8ZGlmZnN0YW18ZGlmZndlaWdodHxmaW5kfGZpbmRidWZmfGZpbmRkZWJ1ZmZ8ZmluZGxheWVyfGZpbmR0eXBlfGZpbmR0eXBlbGlzdHxmb2xsb3dlcnN8Z3VtcGV4aXN0c3xoaWRkZW58aGl0c3xocHxodWV8aHVtYW58aHVtYW5vaWR8aW5ndW1wfGlubGlzdHxpbnN5c21lc3NhZ2V8aW5zeXNtc2d8aW50fGludnVsfGxoYW5kZW1wdHl8bGlzdHxsaXN0ZXhpc3RzfG1hbmF8bWF4aGl0c3xtYXhocHxtYXhtYW5hfG1heHN0YW18bWF4d2VpZ2h0fG1vbnN0ZXJ8bW91bnRlZHxuYW1lfG5leHR8bm90b3xwYXJhbHl6ZWR8cG9pc29uZWR8cG9zaXRpb258cHJldnxwcmV2aW91c3xxdWV1ZWR8cmFuZHxyYW5kb218cmhhbmRlbXB0eXxza2lsbHxzdGFtfHN0cnx0YXJnZXRleGlzdHN8dGltZXJ8dGltZXJleGlzdHN8dmFyZXhpc3R8d2FybW9kZXx3ZWlnaHQpXGIvLGtleXdvcmQ6L1xiKD86YW5kfGFzfGJyZWFrfGNvbnRpbnVlfGVsc2V8ZWxzZWlmfGVuZGZvcnxlbmRpZnxlbmR3aGlsZXxmb3J8aWZ8bG9vcHxub3R8b3J8cmVwbGF5fHN0b3B8d2hpbGUpXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8bnVsbHx0cnVlKVxiLyxudW1iZXI6L1xiMHhbXGRBLUZhLWZdK3woPzpcYlxkKyg/OlwuXGQqKT98XEJcLlxkKykoPzpbRWVdWy0rXT9cZCspPy8sb3BlcmF0b3I6W3twYXR0ZXJuOi8oXHMpKD86YW5kfGItYW5kfGItb3J8Yi14b3J8ZW5kcyB3aXRofGlufGlzfG1hdGNoZXN8bm90fG9yfHNhbWUgYXN8c3RhcnRzIHdpdGgpKD89XHMpLyxsb29rYmVoaW5kOiEwfSwvWz08Pl09P3whPXxcKlwqP3xcL1wvP3xcPzo/fFstK34lfF0vXSxwdW5jdHVhdGlvbjovWygpXFtcXXt9Oi4sXS99fXJldHVybiBEZn12YXIgTWYsbXg7ZnVuY3Rpb24gTDYoKXtpZihteClyZXR1cm4gTWY7bXg9MSxNZj1lLGUuZGlzcGxheU5hbWU9InVyaSIsZS5hbGlhc2VzPVsidXJsIl07ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy51cmk9e3NjaGVtZTp7cGF0dGVybjovXlthLXpdW2EtejAtOSsuLV0qOi9pbSxncmVlZHk6ITAsaW5zaWRlOnsic2NoZW1lLWRlbGltaXRlciI6LzokL319LGZyYWdtZW50OntwYXR0ZXJuOi8jW1x3XC0ufiEkJicoKSorLDs9JTpALz9dKi8saW5zaWRlOnsiZnJhZ21lbnQtZGVsaW1pdGVyIjovXiMvfX0scXVlcnk6e3BhdHRlcm46L1w/W1x3XC0ufiEkJicoKSorLDs9JTpALz9dKi8saW5zaWRlOnsicXVlcnktZGVsaW1pdGVyIjp7cGF0dGVybjovXlw/LyxncmVlZHk6ITB9LCJwYWlyLWRlbGltaXRlciI6L1smO10vLHBhaXI6e3BhdHRlcm46L15bXj1dW1xzXFNdKi8saW5zaWRlOntrZXk6L15bXj1dKy8sdmFsdWU6e3BhdHRlcm46LyhePSlbXHNcU10rLyxsb29rYmVoaW5kOiEwfX19fX0sYXV0aG9yaXR5OntwYXR0ZXJuOlJlZ0V4cCgvXlwvXC8vLnNvdXJjZSsvKD86W1x3XC0ufiEkJicoKSorLDs9JTpdKkApPy8uc291cmNlKygiKD86IisvXFsoPzpbMC05YS1mQS1GOi5dezIsNDh9fHZbMC05YS1mQS1GXStcLltcd1wtLn4hJCYnKCkqKyw7PV0rKVxdLy5zb3VyY2UrInwiKy9bXHdcLS5+ISQmJygpKissOz0lXSovLnNvdXJjZSsiKSIpKy8oPzo6XGQqKT8vLnNvdXJjZSwibSIpLGluc2lkZTp7ImF1dGhvcml0eS1kZWxpbWl0ZXIiOi9eXC9cLy8sInVzZXItaW5mby1zZWdtZW50Ijp7cGF0dGVybjovXltcd1wtLn4hJCYnKCkqKyw7PSU6XSpALyxpbnNpZGU6eyJ1c2VyLWluZm8tZGVsaW1pdGVyIjovQCQvLCJ1c2VyLWluZm8iOi9eW1x3XC0ufiEkJicoKSorLDs9JTpdKy99fSwicG9ydC1zZWdtZW50Ijp7cGF0dGVybjovOlxkKiQvLGluc2lkZTp7InBvcnQtZGVsaW1pdGVyIjovXjovLHBvcnQ6L15cZCsvfX0saG9zdDp7cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOnsiaXAtbGl0ZXJhbCI6e3BhdHRlcm46L15cW1tcc1xTXStcXSQvLGluc2lkZTp7ImlwLWxpdGVyYWwtZGVsaW1pdGVyIjovXlxbfFxdJC8sImlwdi1mdXR1cmUiOi9edltcc1xTXSsvLCJpcHY2LWFkZHJlc3MiOi9eW1xzXFNdKy99fSwiaXB2NC1hZGRyZXNzIjovXig/Oig/OlswMy05XVxkP3xbMTJdXGR7MCwyfSlcLil7M30oPzpbMDMtOV1cZD98WzEyXVxkezAsMn0pJC99fX19LHBhdGg6e3BhdHRlcm46L15bXHdcLS5+ISQmJygpKissOz0lOkAvXSsvbSxpbnNpZGU6eyJwYXRoLXNlcGFyYXRvciI6L1wvL319fSx0Lmxhbmd1YWdlcy51cmw9dC5sYW5ndWFnZXMudXJpfXJldHVybiBNZn12YXIgUGYsZ3g7ZnVuY3Rpb24gRDYoKXtpZihneClyZXR1cm4gUGY7Z3g9MSxQZj1lLGUuZGlzcGxheU5hbWU9InYiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXt2YXIgcj17cGF0dGVybjovW1xzXFNdKy8saW5zaWRlOm51bGx9O24ubGFuZ3VhZ2VzLnY9bi5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse3N0cmluZzp7cGF0dGVybjovcj8oWyInXSkoPzpcXCg/OlxyXG58W1xzXFNdKXwoPyFcMSlbXlxcXHJcbl0pKlwxLyxhbGlhczoicXVvdGVkLXN0cmluZyIsZ3JlZWR5OiEwLGluc2lkZTp7aW50ZXJwb2xhdGlvbjp7cGF0dGVybjovKCg/Ol58W15cXF0pKD86XFx7Mn0pKilcJCg/Olx7W157fV0qXH18XHcrKD86XC5cdysoPzpcKFteXChcKV0qXCkpP3xcW1teXFtcXV0rXF0pKikvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsiaW50ZXJwb2xhdGlvbi12YXJpYWJsZSI6e3BhdHRlcm46L15cJFx3W1xzXFNdKiQvLGFsaWFzOiJ2YXJpYWJsZSJ9LCJpbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uIjp7cGF0dGVybjovXlwkXHt8XH0kLyxhbGlhczoicHVuY3R1YXRpb24ifSwiaW50ZXJwb2xhdGlvbi1leHByZXNzaW9uIjpyfX19fSwiY2xhc3MtbmFtZSI6e3BhdHRlcm46LyhcYig/OmVudW18aW50ZXJmYWNlfHN0cnVjdHx0eXBlKVxzKykoPzpDXC4pP1x3Ky8sbG9va2JlaGluZDohMH0sa2V5d29yZDovKD86XGIoPzpfX2dsb2JhbHxhc3xhc218YXNzZXJ0fGF0b21pY3xicmVha3xjaGFufGNvbnN0fGNvbnRpbnVlfGRlZmVyfGVsc2V8ZW1iZWR8ZW51bXxmbnxmb3J8Z28oPzp0byk/fGlmfGltcG9ydHxpbnxpbnRlcmZhY2V8aXN8bG9ja3xtYXRjaHxtb2R1bGV8bXV0fG5vbmV8b3J8cHVifHJldHVybnxybG9ja3xzZWxlY3R8c2hhcmVkfHNpemVvZnxzdGF0aWN8c3RydWN0fHR5cGUoPzpvZik/fHVuaW9ufHVuc2FmZSl8XCQoPzplbHNlfGZvcnxpZil8Iyg/OmZsYWd8aW5jbHVkZSkpXGIvLG51bWJlcjovXGIoPzoweFthLWZcZF0rKD86X1thLWZcZF0rKSp8MGJbMDFdKyg/Ol9bMDFdKykqfDBvWzAtN10rKD86X1swLTddKykqfFxkKyg/Ol9cZCspKig/OlwuXGQrKD86X1xkKykqKT8pXGIvaSxvcGVyYXRvcjovfnxcP3xbKlwvJV4hPV09P3xcK1s9K10/fC1bPS1dP3xcfFs9fF0/fCYoPzo9fCZ8XF49Pyk/fD4oPzo+PT98PSk/fDwoPzo8PT98PXwtKT98Oj18XC5cLlwuPy8sYnVpbHRpbjovXGIoPzphbnkoPzpfZmxvYXR8X2ludCk/fGJvb2x8Ynl0ZSg/OnB0cik/fGNoYXJwdHJ8Zig/OjMyfDY0KXxpKD86OHwxNnw2NHwxMjh8bnQpfHJ1bmV8c2l6ZV90fHN0cmluZ3x1KD86MTZ8MzJ8NjR8MTI4KXx2b2lkcHRyKVxiL30pLHIuaW5zaWRlPW4ubGFuZ3VhZ2VzLnYsbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ2Iiwic3RyaW5nIix7Y2hhcjp7cGF0dGVybjovYCg/OlxcYHxcXD9bXmBdezEsMn0pYC8sYWxpYXM6InJ1bmUifX0pLG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgidiIsIm9wZXJhdG9yIix7YXR0cmlidXRlOntwYXR0ZXJuOi8oXltcdCBdKilcWyg/OmRlcHJlY2F0ZWR8ZGlyZWN0X2FycmF5X2FjY2Vzc3xmbGFnfGlubGluZXxsaXZlfHJlZl9vbmx5fHR5cGVkZWZ8dW5zYWZlX2ZufHdpbmRvd3Nfc3RkY2FsbClcXS9tLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImFubm90YXRpb24iLGluc2lkZTp7cHVuY3R1YXRpb246L1tcW1xdXS8sa2V5d29yZDovXHcrL319LGdlbmVyaWM6e3BhdHRlcm46Lzxcdys+KD89XHMqW1wpXHtdKS8saW5zaWRlOntwdW5jdHVhdGlvbjovWzw+XS8sImNsYXNzLW5hbWUiOi9cdysvfX19KSxuLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInYiLCJmdW5jdGlvbiIseyJnZW5lcmljLWZ1bmN0aW9uIjp7cGF0dGVybjovXGJcdytccyo8XHcrPig/PVwoKS8saW5zaWRlOntmdW5jdGlvbjovXlx3Ky8sZ2VuZXJpYzp7cGF0dGVybjovPFx3Kz4vLGluc2lkZTpuLmxhbmd1YWdlcy52LmdlbmVyaWMuaW5zaWRlfX19fSl9KSh0KX1yZXR1cm4gUGZ9dmFyIEZmLGh4O2Z1bmN0aW9uIE02KCl7aWYoaHgpcmV0dXJuIEZmO2h4PTEsRmY9ZSxlLmRpc3BsYXlOYW1lPSJ2YWxhIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy52YWxhPXQubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHsiY2xhc3MtbmFtZSI6W3twYXR0ZXJuOi9cYltBLVpdXHcqKD86XC5cdyspKlxiKD89KD86XD9ccyt8XCo/XHMrXCo/KVx3KS8saW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0se3BhdHRlcm46LyhcWylbQS1aXVx3Kig/OlwuXHcrKSpcYi8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fSx7cGF0dGVybjovKFxiKD86Y2xhc3N8aW50ZXJmYWNlKVxzK1tBLVpdXHcqKD86XC5cdyspKlxzKjpccyopW0EtWl1cdyooPzpcLlx3KykqXGIvLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXC4vfX0se3BhdHRlcm46LygoPzpcYig/OmNsYXNzfGVudW18aW50ZXJmYWNlfG5ld3xzdHJ1Y3QpXHMrKXwoPzpjYXRjaFxzK1woKSlbQS1aXVx3Kig/OlwuXHcrKSpcYi8sbG9va2JlaGluZDohMCxpbnNpZGU6e3B1bmN0dWF0aW9uOi9cLi99fV0sa2V5d29yZDovXGIoPzphYnN0cmFjdHxhc3xhc3NlcnR8YXN5bmN8YmFzZXxib29sfGJyZWFrfGNhc2V8Y2F0Y2h8Y2hhcnxjbGFzc3xjb25zdHxjb25zdHJ1Y3R8Y29udGludWV8ZGVmYXVsdHxkZWxlZ2F0ZXxkZWxldGV8ZG98ZG91YmxlfGR5bmFtaWN8ZWxzZXxlbnN1cmVzfGVudW18ZXJyb3Jkb21haW58ZXh0ZXJufGZpbmFsbHl8ZmxvYXR8Zm9yfGZvcmVhY2h8Z2V0fGlmfGlufGlubGluZXxpbnR8aW50MTZ8aW50MzJ8aW50NjR8aW50OHxpbnRlcmZhY2V8aW50ZXJuYWx8aXN8bG9ja3xsb25nfG5hbWVzcGFjZXxuZXd8bnVsbHxvdXR8b3ZlcnJpZGV8b3duZWR8cGFyYW1zfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZWZ8cmVxdWlyZXN8cmV0dXJufHNldHxzaG9ydHxzaWduYWx8c2l6ZW9mfHNpemVfdHxzc2l6ZV90fHN0YXRpY3xzdHJpbmd8c3RydWN0fHN3aXRjaHx0aGlzfHRocm93fHRocm93c3x0cnl8dHlwZW9mfHVjaGFyfHVpbnR8dWludDE2fHVpbnQzMnx1aW50NjR8dWludDh8dWxvbmd8dW5pY2hhcnx1bm93bmVkfHVzaG9ydHx1c2luZ3x2YWx1ZXx2YXJ8dmlydHVhbHx2b2lkfHZvbGF0aWxlfHdlYWt8d2hpbGV8eWllbGQpXGIvaSxmdW5jdGlvbjovXGJcdysoPz1ccypcKCkvLG51bWJlcjovKD86XGIweFtcZGEtZl0rXGJ8KD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86ZVsrLV0/XGQrKT8pKD86Znx1P2w/KT8vaSxvcGVyYXRvcjovXCtcK3wtLXwmJnxcfFx8fDw8PT98Pj49P3w9PnwtPnx+fFsrXC0qXC8lJl58PSE8Pl09P3xcP1w/P3xcLlwuXC4vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdLyxjb25zdGFudDovXGJbQS1aMC05X10rXGIvfSksdC5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJ2YWxhIiwic3RyaW5nIix7InJhdy1zdHJpbmciOntwYXR0ZXJuOi8iIiJbXHNcU10qPyIiIi8sZ3JlZWR5OiEwLGFsaWFzOiJzdHJpbmcifSwidGVtcGxhdGUtc3RyaW5nIjp7cGF0dGVybjovQCJbXHNcU10qPyIvLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46L1wkKD86XChbXildKlwpfFthLXpBLVpdXHcqKS8saW5zaWRlOntkZWxpbWl0ZXI6e3BhdHRlcm46L15cJFwoP3xcKSQvLGFsaWFzOiJwdW5jdHVhdGlvbiJ9LHJlc3Q6dC5sYW5ndWFnZXMudmFsYX19LHN0cmluZzovW1xzXFNdKy99fX0pLHQubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgidmFsYSIsImtleXdvcmQiLHtyZWdleDp7cGF0dGVybjovXC8oPzpcWyg/OlteXF1cXFxyXG5dfFxcLikqXF18XFwufFteL1xcXFtcclxuXSkrXC9baW1zeF17MCw0fSg/PVxzKig/OiR8W1xyXG4sLjt9KVxdXSkpLyxncmVlZHk6ITAsaW5zaWRlOnsicmVnZXgtc291cmNlIjp7cGF0dGVybjovXihcLylbXHNcU10rKD89XC9bYS16XSokKS8sbG9va2JlaGluZDohMCxhbGlhczoibGFuZ3VhZ2UtcmVnZXgiLGluc2lkZTp0Lmxhbmd1YWdlcy5yZWdleH0sInJlZ2V4LWRlbGltaXRlciI6L15cLy8sInJlZ2V4LWZsYWdzIjovXlthLXpdKyQvfX19KX1yZXR1cm4gRmZ9dmFyIFVmLGJ4O2Z1bmN0aW9uIFA2KCl7aWYoYngpcmV0dXJuIFVmO2J4PTEsVWY9ZSxlLmRpc3BsYXlOYW1lPSJ2ZWxvY2l0eSIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7KGZ1bmN0aW9uKG4pe24ubGFuZ3VhZ2VzLnZlbG9jaXR5PW4ubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7fSk7dmFyIHI9e3ZhcmlhYmxlOntwYXR0ZXJuOi8oXnxbXlxcXSg/OlxcXFwpKilcJCE/KD86W2Etel1bXHctXSooPzpcKFteKV0qXCkpPyg/OlwuW2Etel1bXHctXSooPzpcKFteKV0qXCkpP3xcW1teXF1dK1xdKSp8XHtbXn1dK1x9KS9pLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnt9fSxzdHJpbmc6e3BhdHRlcm46LyJbXiJdKiJ8J1teJ10qJy8sZ3JlZWR5OiEwfSxudW1iZXI6L1xiXGQrXGIvLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6L1s9ITw+XT0/fFsrKi8lLV18JiZ8XHxcfHxcLlwufFxiKD86ZXF8Z1tldF18bFtldF18big/OmV8b3QpKVxiLyxwdW5jdHVhdGlvbjovWygpe31bXF06LC5dL307ci52YXJpYWJsZS5pbnNpZGU9e3N0cmluZzpyLnN0cmluZyxmdW5jdGlvbjp7cGF0dGVybjovKFteXHctXSlbYS16XVtcdy1dKig/PVwoKS8sbG9va2JlaGluZDohMH0sbnVtYmVyOnIubnVtYmVyLGJvb2xlYW46ci5ib29sZWFuLHB1bmN0dWF0aW9uOnIucHVuY3R1YXRpb259LG4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgidmVsb2NpdHkiLCJjb21tZW50Iix7dW5wYXJzZWQ6e3BhdHRlcm46LyhefFteXFxdKSNcW1xbW1xzXFNdKj9cXVxdIy8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXiNcW1xbfFxdXF0jJC99fSwidmVsb2NpdHktY29tbWVudCI6W3twYXR0ZXJuOi8oXnxbXlxcXSkjXCpbXHNcU10qP1wqIy8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6ImNvbW1lbnQifSx7cGF0dGVybjovKF58W15cXF0pIyMuKi8sbG9va2JlaGluZDohMCxncmVlZHk6ITAsYWxpYXM6ImNvbW1lbnQifV0sZGlyZWN0aXZlOntwYXR0ZXJuOi8oXnxbXlxcXSg/OlxcXFwpKikjQD8oPzpbYS16XVtcdy1dKnxce1thLXpdW1x3LV0qXH0pKD86XHMqXCgoPzpbXigpXXxcKFteKCldKlwpKSpcKSk/L2ksbG9va2JlaGluZDohMCxpbnNpZGU6e2tleXdvcmQ6e3BhdHRlcm46L14jQD8oPzpbYS16XVtcdy1dKnxce1thLXpdW1x3LV0qXH0pfFxiaW5cYi8saW5zaWRlOntwdW5jdHVhdGlvbjovW3t9XS99fSxyZXN0OnJ9fSx2YXJpYWJsZTpyLnZhcmlhYmxlfSksbi5sYW5ndWFnZXMudmVsb2NpdHkudGFnLmluc2lkZVsiYXR0ci12YWx1ZSJdLmluc2lkZS5yZXN0PW4ubGFuZ3VhZ2VzLnZlbG9jaXR5fSkodCl9cmV0dXJuIFVmfXZhciBCZix5eDtmdW5jdGlvbiBGNigpe2lmKHl4KXJldHVybiBCZjt5eD0xLEJmPWUsZS5kaXNwbGF5TmFtZT0idmVyaWxvZyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMudmVyaWxvZz17Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfFwvXCpbXHNcU10qP1wqXC8vLGdyZWVkeTohMH0sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwoPzpcclxufFtcc1xTXSl8W14iXFxcclxuXSkqIi8sZ3JlZWR5OiEwfSwia2VybmVsLWZ1bmN0aW9uIjp7cGF0dGVybjovXEJcJFx3K1xiLyxhbGlhczoicHJvcGVydHkifSxjb25zdGFudDovXEJgXHcrXGIvLGZ1bmN0aW9uOi9cYlx3Kyg/PVwoKS8sa2V5d29yZDovXGIoPzphbGlhc3xhbmR8YXNzZXJ0fGFzc2lnbnxhc3N1bWV8YXV0b21hdGljfGJlZm9yZXxiZWdpbnxiaW5kfGJpbnN8Ymluc29mfGJpdHxicmVha3xidWZ8YnVmaWYwfGJ1ZmlmMXxieXRlfGNhc2V8Y2FzZXh8Y2FzZXp8Y2VsbHxjaGFuZGxlfGNsYXNzfGNsb2NraW5nfGNtb3N8Y29uZmlnfGNvbnN0fGNvbnN0cmFpbnR8Y29udGV4dHxjb250aW51ZXxjb3Zlcnxjb3Zlcmdyb3VwfGNvdmVycG9pbnR8Y3Jvc3N8ZGVhc3NpZ258ZGVmYXVsdHxkZWZwYXJhbXxkZXNpZ258ZGlzYWJsZXxkaXN0fGRvfGVkZ2V8ZWxzZXxlbmR8ZW5kY2FzZXxlbmRjbGFzc3xlbmRjbG9ja2luZ3xlbmRjb25maWd8ZW5kZnVuY3Rpb258ZW5kZ2VuZXJhdGV8ZW5kZ3JvdXB8ZW5kaW50ZXJmYWNlfGVuZG1vZHVsZXxlbmRwYWNrYWdlfGVuZHByaW1pdGl2ZXxlbmRwcm9ncmFtfGVuZHByb3BlcnR5fGVuZHNlcXVlbmNlfGVuZHNwZWNpZnl8ZW5kdGFibGV8ZW5kdGFza3xlbnVtfGV2ZW50fGV4cGVjdHxleHBvcnR8ZXh0ZW5kc3xleHRlcm58ZmluYWx8Zmlyc3RfbWF0Y2h8Zm9yfGZvcmNlfGZvcmVhY2h8Zm9yZXZlcnxmb3JrfGZvcmtqb2lufGZ1bmN0aW9ufGdlbmVyYXRlfGdlbnZhcnxoaWdoejB8aGlnaHoxfGlmfGlmZnxpZm5vbmV8aWdub3JlX2JpbnN8aWxsZWdhbF9iaW5zfGltcG9ydHxpbmNkaXJ8aW5jbHVkZXxpbml0aWFsfGlub3V0fGlucHV0fGluc2lkZXxpbnN0YW5jZXxpbnR8aW50ZWdlcnxpbnRlcmZhY2V8aW50ZXJzZWN0fGpvaW58am9pbl9hbnl8am9pbl9ub25lfGxhcmdlfGxpYmxpc3R8bGlicmFyeXxsb2NhbHxsb2NhbHBhcmFtfGxvZ2ljfGxvbmdpbnR8bWFjcm9tb2R1bGV8bWF0Y2hlc3xtZWRpdW18bW9kcG9ydHxtb2R1bGV8bmFuZHxuZWdlZGdlfG5ld3xubW9zfG5vcnxub3Nob3djYW5jZWxsZWR8bm90fG5vdGlmMHxub3RpZjF8bnVsbHxvcnxvdXRwdXR8cGFja2FnZXxwYWNrZWR8cGFyYW1ldGVyfHBtb3N8cG9zZWRnZXxwcmltaXRpdmV8cHJpb3JpdHl8cHJvZ3JhbXxwcm9wZXJ0eXxwcm90ZWN0ZWR8cHVsbDB8cHVsbDF8cHVsbGRvd258cHVsbHVwfHB1bHNlc3R5bGVfb25kZXRlY3R8cHVsc2VzdHlsZV9vbmV2ZW50fHB1cmV8cmFuZHxyYW5kY3xyYW5kY2FzZXxyYW5kc2VxdWVuY2V8cmNtb3N8cmVhbHxyZWFsdGltZXxyZWZ8cmVnfHJlbGVhc2V8cmVwZWF0fHJldHVybnxybm1vc3xycG1vc3xydHJhbnxydHJhbmlmMHxydHJhbmlmMXxzY2FsYXJlZHxzZXF1ZW5jZXxzaG9ydGludHxzaG9ydHJlYWx8c2hvd2NhbmNlbGxlZHxzaWduZWR8c21hbGx8c29sdmV8c3BlY2lmeXxzcGVjcGFyYW18c3RhdGljfHN0cmluZ3xzdHJvbmcwfHN0cm9uZzF8c3RydWN0fHN1cGVyfHN1cHBseTB8c3VwcGx5MXx0YWJsZXx0YWdnZWR8dGFza3x0aGlzfHRocm91Z2hvdXR8dGltZXx0aW1lcHJlY2lzaW9ufHRpbWV1bml0fHRyYW58dHJhbmlmMHx0cmFuaWYxfHRyaXx0cmkwfHRyaTF8dHJpYW5kfHRyaW9yfHRyaXJlZ3x0eXBlfHR5cGVkZWZ8dW5pb258dW5pcXVlfHVuc2lnbmVkfHVzZXx1d2lyZXx2YXJ8dmVjdG9yZWR8dmlydHVhbHx2b2lkfHdhaXR8d2FpdF9vcmRlcnx3YW5kfHdlYWswfHdlYWsxfHdoaWxlfHdpbGRjYXJkfHdpcmV8d2l0aHx3aXRoaW58d29yfHhub3J8eG9yKVxiLyxpbXBvcnRhbnQ6L1xiKD86YWx3YXlzfGFsd2F5c19jb21ifGFsd2F5c19mZnxhbHdheXNfbGF0Y2gpXGIoPzogKkApPy8sbnVtYmVyOi9cQiMjP1xkK3woPzpcYlxkKyk/J1tvZGJoXSA/W1xkYS1menhfP10rfFxiKD86XGQqWy5fXSk/XGQrKD86ZVstK10/XGQrKT8vaSxvcGVyYXRvcjovWy0re31efiUqXC8/PSE8PiZ8XSsvLHB1bmN0dWF0aW9uOi9bW1xdOygpLC46XS99fXJldHVybiBCZn12YXIgJGYsdng7ZnVuY3Rpb24gVTYoKXtpZih2eClyZXR1cm4gJGY7dng9MSwkZj1lLGUuZGlzcGxheU5hbWU9InZoZGwiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLnZoZGw9e2NvbW1lbnQ6Ly0tLisvLCJ2aGRsLXZlY3RvcnMiOntwYXR0ZXJuOi9cYltveGJdIltcZGEtZl9dKyJ8IlswMXV4endsaC1dKyIvaSxhbGlhczoibnVtYmVyIn0sInF1b3RlZC1mdW5jdGlvbiI6e3BhdHRlcm46LyJcUys/Iig/PVwoKS8sYWxpYXM6ImZ1bmN0aW9uIn0sc3RyaW5nOi8iKD86W15cXCJcclxuXXxcXCg/OlxyXG58W1xzXFNdKSkqIi8sY29uc3RhbnQ6L1xiKD86bGlicmFyeXx1c2UpXGIvaSxrZXl3b3JkOi9cYig/OidhY3RpdmV8J2FzY2VuZGluZ3wnYmFzZXwnZGVsYXllZHwnZHJpdmluZ3wnZHJpdmluZ192YWx1ZXwnZXZlbnR8J2hpZ2h8J2ltYWdlfCdpbnN0YW5jZV9uYW1lfCdsYXN0X2FjdGl2ZXwnbGFzdF9ldmVudHwnbGFzdF92YWx1ZXwnbGVmdHwnbGVmdG9mfCdsZW5ndGh8J2xvd3wncGF0aF9uYW1lfCdwb3N8J3ByZWR8J3F1aWV0fCdyYW5nZXwncmV2ZXJzZV9yYW5nZXwncmlnaHR8J3JpZ2h0b2Z8J3NpbXBsZV9uYW1lfCdzdGFibGV8J3N1Y2N8J3RyYW5zYWN0aW9ufCd2YWx8J3ZhbHVlfGFjY2Vzc3xhZnRlcnxhbGlhc3xhbGx8YXJjaGl0ZWN0dXJlfGFycmF5fGFzc2VydHxhdHRyaWJ1dGV8YmVnaW58YmxvY2t8Ym9keXxidWZmZXJ8YnVzfGNhc2V8Y29tcG9uZW50fGNvbmZpZ3VyYXRpb258Y29uc3RhbnR8ZGlzY29ubmVjdHxkb3dudG98ZWxzZXxlbHNpZnxlbmR8ZW50aXR5fGV4aXR8ZmlsZXxmb3J8ZnVuY3Rpb258Z2VuZXJhdGV8Z2VuZXJpY3xncm91cHxndWFyZGVkfGlmfGltcHVyZXxpbnxpbmVydGlhbHxpbm91dHxpc3xsYWJlbHxsaWJyYXJ5fGxpbmthZ2V8bGl0ZXJhbHxsb29wfG1hcHxuZXd8bmV4dHxudWxsfG9mfG9ufG9wZW58b3RoZXJzfG91dHxwYWNrYWdlfHBvcnR8cG9zdHBvbmVkfHByb2NlZHVyZXxwcm9jZXNzfHB1cmV8cmFuZ2V8cmVjb3JkfHJlZ2lzdGVyfHJlamVjdHxyZXBvcnR8cmV0dXJufHNlbGVjdHxzZXZlcml0eXxzaGFyZWR8c2lnbmFsfHN1YnR5cGV8dGhlbnx0b3x0cmFuc3BvcnR8dHlwZXx1bmFmZmVjdGVkfHVuaXRzfHVudGlsfHVzZXx2YXJpYWJsZXx3YWl0fHdoZW58d2hpbGV8d2l0aClcYi9pLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi9pLGZ1bmN0aW9uOi9cdysoPz1cKCkvLG51bWJlcjovJ1swMXV4endsaC1dJ3xcYig/OlxkKyNbXGRhLWZfLl0rI3xcZFtcZF8uXSopKD86ZVstK10/XGQrKT8vaSxvcGVyYXRvcjovWzw+XT0/fDo9fFstKyovJj1dfFxiKD86YWJzfGFuZHxtb2R8bmFuZHxub3J8bm90fG9yfHJlbXxyb2x8cm9yfHNsYXxzbGx8c3JhfHNybHx4bm9yfHhvcilcYi9pLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL319cmV0dXJuICRmfXZhciB6ZixFeDtmdW5jdGlvbiBCNigpe2lmKEV4KXJldHVybiB6ZjtFeD0xLHpmPWUsZS5kaXNwbGF5TmFtZT0idmltIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy52aW09e3N0cmluZzovIig/OlteIlxcXHJcbl18XFwuKSoifCcoPzpbXidcclxuXXwnJykqJy8sY29tbWVudDovIi4qLyxmdW5jdGlvbjovXGJcdysoPz1cKCkvLGtleXdvcmQ6L1xiKD86TnxOZXh0fFB8UHJpbnR8WHxYTUxlbnR8WE1MbnN8YWJ8YWJicmV2aWF0ZXxhYmN8YWJjbGVhcnxhYm98YWJvdmVsZWZ0fGFsfGFsbHxhcnxhcmdhfGFyZ2FkZHxhcmdkfGFyZ2RlbGV0ZXxhcmdkb3xhcmdlfGFyZ2VkaXR8YXJnZ3xhcmdnbG9iYWx8YXJnbHxhcmdsb2NhbHxhcmdzfGFyZ3V8YXJndW1lbnR8YXN8YXNjaWl8YnxiTnxiTmV4dHxiYXxiYWR8YmFkZHxiYWxsfGJkfGJkZWxldGV8YmV8YmVsfGJlbG93cmlnaHR8YmZ8YmZpcnN0fGJsfGJsYXN0fGJtfGJtb2RpZmllZHxibnxibmV4dHxib3xib3RyaWdodHxicHxicHJldmlvdXN8YnJ8YnJlYXxicmVha3xicmVha2F8YnJlYWthZGR8YnJlYWtkfGJyZWFrZGVsfGJyZWFrbHxicmVha2xpc3R8YnJld2luZHxicm98YnJvd3NlfGJ1ZmRvfGJ1ZmZlcnxidWZmZXJzfGJ1bnxidW5sb2FkfGJ3fGJ3aXBlb3V0fGN8Y058Y05leHR8Y05mY05maWxlfGNhfGNhYmJyZXZ8Y2FiY3xjYWJjbGVhcnxjYWR8Y2FkZGJ8Y2FkZGJ1ZmZlcnxjYWRkZXhwcnxjYWRkZnxjYWRkZmlsZXxjYWx8Y2FsbHxjYXR8Y2F0Y2h8Y2J8Y2J1ZmZlcnxjY3xjY2x8Y2Nsb3NlfGNkfGNlfGNlbnRlcnxjZXh8Y2V4cHJ8Y2Z8Y2ZpbGV8Y2ZpcnxjZmlyc3R8Y2d8Y2dldGJ8Y2dldGJ1ZmZlcnxjZ2V0ZXxjZ2V0ZXhwcnxjZ2V0ZmlsZXxjaGFuZ2V8Y2hhbmdlc3xjaGR8Y2hkaXJ8Y2hlfGNoZWNrcGF0aHxjaGVja3R8Y2hlY2t0aW1lfGNsfGNsYXxjbGFzdHxjbGlzdHxjbG98Y2xvc2V8Y21hcGN8Y21hcGNsZWFyfGNufGNuZXd8Y25ld2VyfGNuZXh0fGNuZnxjbmZpbGV8Y25vcmVhfGNub3JlYWJicmV2fGNvfGNvbHxjb2xkZXJ8Y29sb3xjb2xvcnNjaGVtZXxjb21jfGNvbWNsZWFyfGNvbXB8Y29tcGlsZXJ8Y29ufGNvbmZ8Y29uZmlybXxjb250aW51ZXxjb3BlfGNvcGVufGNvcHl8Y3B8Y3BmfGNwZmlsZXxjcHJldmlvdXN8Y3F8Y3F1aXR8Y3J8Y3Jld2luZHxjdXxjdW5hfGN1bmFiYnJldnxjdW5tYXB8Y3d8Y3dpbmRvd3xkfGRlYnVnZ3xkZWJ1Z2dyZWVkeXxkZWxjfGRlbGNvbW1hbmR8ZGVsZXRlfGRlbGZ8ZGVsZnVuY3Rpb258ZGVsbXxkZWxtYXJrc3xkaXxkaWZmZ3xkaWZmZ2V0fGRpZmZvZmZ8ZGlmZnBhdGNofGRpZmZwdXxkaWZmcHV0fGRpZmZzcGxpdHxkaWZmdGhpc3xkaWZmdXxkaWZmdXBkYXRlfGRpZ3xkaWdyYXBoc3xkaXNwbGF5fGRqfGRqdW1wfGRsfGRsaXN0fGRyfGRyb3B8ZHN8ZHNlYXJjaHxkc3B8ZHNwbGl0fGV8ZWFybGllcnxlY2hvZXxlY2hvZXJyfGVjaG9tfGVjaG9tc2d8ZWNob258ZWRpdHxlbHxlbHNlfGVsc2VpfGVsc2VpZnxlbXxlbWVudXxlbnxlbmRmfGVuZGZvfGVuZGZvcnxlbmRmdW58ZW5kZnVuY3Rpb258ZW5kaWZ8ZW5kdHxlbmR0cnl8ZW5kd3xlbmR3aGlsZXxlbmV8ZW5ld3xleHxleGl8ZXhpdHxleHV8ZXh1c2FnZXxmfGZpbGV8ZmlsZXN8ZmlsZXR5cGV8ZmlufGZpbmF8ZmluYWxseXxmaW5kfGZpbml8ZmluaXNofGZpcnxmaXJzdHxmaXh8Zml4ZGVsfGZvfGZvbGR8Zm9sZGN8Zm9sZGNsb3NlfGZvbGRkfGZvbGRkb2N8Zm9sZGRvY2xvc2VkfGZvbGRkb29wZW58Zm9sZG98Zm9sZG9wZW58Zm9yfGZ1fGZ1bnxmdW5jdGlvbnxnb3xnb3RvfGdyfGdyZXB8Z3JlcGF8Z3JlcGFkZHxofGhhfGhhcmRjb3B5fGhlbHB8aGVscGZ8aGVscGZpbmR8aGVscGd8aGVscGdyZXB8aGVscHR8aGVscHRhZ3N8aGlkfGhpZGV8aGlzfGhpc3Rvcnl8aWF8aWFiYnJldnxpYWJjfGlhYmNsZWFyfGlmfGlqfGlqdW1wfGlsfGlsaXN0fGltYXBjfGltYXBjbGVhcnxpbnxpbm9yZWF8aW5vcmVhYmJyZXZ8aXNlYXJjaHxpc3B8aXNwbGl0fGl1fGl1bmF8aXVuYWJicmV2fGl1bm1hcHxqfGpvaW58anV8anVtcHN8a3xrZWV8a2VlcGFsdHxrZWVwanxrZWVwanVtcHN8a2VlcG1hcmtzfGx8bE58bE5leHR8bE5mfGxOZmlsZXxsYXxsYWR8bGFkZGJ8bGFkZGJ1ZmZlcnxsYWRkZXhwcnxsYWRkZnxsYWRkZmlsZXxsYW58bGFuZ3VhZ2V8bGFzdHxsYXRlcnxsYnxsYnVmZmVyfGxjfGxjZHxsY2h8bGNoZGlyfGxjbHxsY2xvc2V8bGVmdHxsZWZ0YXxsZWZ0YWJvdmV8bGV0fGxleHxsZXhwcnxsZnxsZmlsZXxsZmlyfGxmaXJzdHxsZ3xsZ2V0YnxsZ2V0YnVmZmVyfGxnZXRlfGxnZXRleHByfGxnZXRmaWxlfGxncnxsZ3JlcHxsZ3JlcGF8bGdyZXBhZGR8bGh8bGhlbHBncmVwfGxpc3R8bGx8bGxhfGxsYXN0fGxsaXxsbGlzdHxsbXxsbWFrfGxtYWtlfGxtYXB8bG1hcGN8bG1hcGNsZWFyfGxufGxuZXxsbmV3fGxuZXdlcnxsbmV4dHxsbmZ8bG5maWxlfGxub3JlbWFwfGxvfGxvYWR2aWV3fGxvY3xsb2NrbWFya3N8bG9ja3Z8bG9ja3Zhcnxsb2x8bG9sZGVyfGxvcHxsb3BlbnxscHxscGZ8bHBmaWxlfGxwcmV2aW91c3xscnxscmV3aW5kfGxzfGx0fGx0YWd8bHV8bHVubWFwfGx2fGx2aW1ncmVwfGx2aW1ncmVwYXxsdmltZ3JlcGFkZHxsd3xsd2luZG93fG18bWF8bWFrfG1ha2V8bWFya3xtYXJrc3xtYXR8bWF0Y2h8bWVudXR8bWVudXRyYW5zbGF0ZXxta3xta2V4cmN8bWtzfG1rc2Vzc2lvbnxta3NwfG1rc3BlbGx8bWt2fG1rdmllfG1rdmlld3xta3ZpbXJjfG1vZHxtb2RlfG1vdmV8bXp8bXpmfG16ZmlsZXxtenNjaGVtZXxufG5ia2V5fG5ld3xuZXh0fG5tYXBjfG5tYXBjbGVhcnxub2h8bm9obHNlYXJjaHxub3JlYXxub3JlYWJicmV2fG51fG51bWJlcnxudW58bnVubWFwfG98b21hcGN8b21hcGNsZWFyfG9ufG9ubHl8b3BlbnxvcHR8b3B0aW9uc3xvdXxvdW5tYXB8cHxwY3xwY2xvc2V8cGV8cGVkfHBlZGl0fHBlcmx8cGVybGR8cGVybGRvfHBvfHBvcHxwb3B1fHBvcHVwfHBwfHBwb3B8cHJlfHByZXNlcnZlfHByZXZ8cHJldmlvdXN8cHJpbnR8cHJvZnxwcm9mZHxwcm9mZGVsfHByb2ZpbGV8cHJvbXB0Znxwcm9tcHRmaW5kfHByb21wdHJ8cHJvbXB0cmVwbHxwc3xwc2VhcmNofHB0TnxwdE5leHR8cHRhfHB0YWd8cHRmfHB0Zmlyc3R8cHRqfHB0anVtcHxwdGx8cHRsYXN0fHB0bnxwdG5leHR8cHRwfHB0cHJldmlvdXN8cHRyfHB0cmV3aW5kfHB0c3xwdHNlbGVjdHxwdXxwdXR8cHd8cHdkfHB5fHB5ZnxweWZpbGV8cHl0aG9ufHF8cWF8cWFsbHxxdWl0fHF1aXRhfHF1aXRhbGx8cnxyZWFkfHJlY3xyZWNvdmVyfHJlZHxyZWRpfHJlZGlyfHJlZG98cmVkcnxyZWRyYXd8cmVkcmF3c3xyZWRyYXdzdGF0dXN8cmVnfHJlZ2lzdGVyc3xyZXN8cmVzaXplfHJldHxyZXRhYnxyZXR1fHJldHVybnxyZXd8cmV3aW5kfHJpfHJpZ2h0fHJpZ2h0YnxyaWdodGJlbG93fHJ1fHJ1YnxydWJ5fHJ1YnlkfHJ1Ynlkb3xydWJ5ZnxydWJ5ZmlsZXxydW50aW1lfHJ2fHJ2aW1pbmZvfHNOfHNOZXh0fHNhfHNhbHxzYWxsfHNhbnxzYW5kYm94fHNhcmd1bWVudHxzYXZ8c2F2ZWFzfHNifHNiTnxzYk5leHR8c2JhfHNiYWxsfHNiZnxzYmZpcnN0fHNibHxzYmxhc3R8c2JtfHNibW9kaWZpZWR8c2JufHNibmV4dHxzYnB8c2JwcmV2aW91c3xzYnJ8c2JyZXdpbmR8c2J1ZmZlcnxzY3JpcHxzY3JpcHRlfHNjcmlwdGVuY29kaW5nfHNjcmlwdG5hbWVzfHNlfHNldHxzZXRmfHNldGZpbGV0eXBlfHNldGd8c2V0Z2xvYmFsfHNldGx8c2V0bG9jYWx8c2Z8c2ZpbmR8c2ZpcnxzZmlyc3R8c2h8c2hlbGx8c2lnbnxzaWx8c2lsZW50fHNpbXxzaW1hbHR8c2x8c2xhfHNsYXN0fHNsZWVwfHNtfHNtYWdpY3xzbWFwfHNtYXBjfHNtYXBjbGVhcnxzbWV8c21lbnV8c258c25leHR8c25pfHNuaWZmfHNub3xzbm9tYWdpY3xzbm9yfHNub3JlbWFwfHNub3JlbWV8c25vcmVtZW51fHNvfHNvcnxzb3J0fHNvdXJjZXxzcHxzcGV8c3BlbGxkfHNwZWxsZHVtcHxzcGVsbGdvb2R8c3BlbGxpfHNwZWxsaW5mb3xzcGVsbHJ8c3BlbGxyZXBhbGx8c3BlbGx1fHNwZWxsdW5kb3xzcGVsbHd8c3BlbGx3cm9uZ3xzcGxpdHxzcHJ8c3ByZXZpb3VzfHNyZXxzcmV3aW5kfHN0fHN0YXxzdGFnfHN0YXJ8c3RhcnRnfHN0YXJ0Z3JlcGxhY2V8c3RhcnRpbnNlcnR8c3RhcnRyfHN0YXJ0cmVwbGFjZXxzdGp8c3RqdW1wfHN0b3B8c3RvcGl8c3RvcGluc2VydHxzdHN8c3RzZWxlY3R8c3VufHN1bmhpZGV8c3VubXxzdW5tYXB8c3VzfHN1c3BlbmR8c3Z8c3ZpZXd8c3luY2JpbmR8dHx0Tnx0TmV4dHx0YXx0YWJ8dGFiTnx0YWJOZXh0fHRhYmN8dGFiY2xvc2V8dGFiZHx0YWJkb3x0YWJlfHRhYmVkaXR8dGFiZnx0YWJmaW5kfHRhYmZpcnx0YWJmaXJzdHx0YWJsfHRhYmxhc3R8dGFibXx0YWJtb3ZlfHRhYm58dGFibmV3fHRhYm5leHR8dGFib3x0YWJvbmx5fHRhYnB8dGFicHJldmlvdXN8dGFicnx0YWJyZXdpbmR8dGFic3x0YWd8dGFnc3x0Y3x0Y2x8dGNsZHx0Y2xkb3x0Y2xmfHRjbGZpbGV8dGV8dGVhcm9mZnx0Znx0Zmlyc3R8dGh8dGhyb3d8dGp8dGp1bXB8dGx8dGxhc3R8dG18dG1lbnV8dG58dG5leHR8dG98dG9wbGVmdHx0cHx0cHJldmlvdXN8dHJ8dHJld2luZHx0cnl8dHN8dHNlbGVjdHx0dXx0dW5tZW51fHV8dW5hfHVuYWJicmV2aWF0ZXx1bmRvfHVuZG9qfHVuZG9qb2lufHVuZG9sfHVuZG9saXN0fHVuaHx1bmhpZGV8dW5sZXR8dW5sb3x1bmxvY2t2YXJ8dW5tfHVubWFwfHVwfHVwZGF0ZXx2ZXx2ZXJifHZlcmJvc2V8dmVyc2lvbnx2ZXJ0fHZlcnRpY2FsfHZpfHZpZXx2aWV3fHZpbXx2aW1ncmVwfHZpbWdyZXBhfHZpbWdyZXBhZGR8dmlzdWFsfHZpdXx2aXVzYWdlfHZtYXBjfHZtYXBjbGVhcnx2bmV8dm5ld3x2c3x2c3BsaXR8dnV8dnVubWFwfHd8d058d05leHR8d2F8d2FsbHx3aHx3aGlsZXx3aW58d2luY3x3aW5jbWR8d2luZG98d2lucHx3aW5wb3N8d2luc2l6ZXx3bnx3bmV4dHx3cHx3cHJldmlvdXN8d3F8d3FhfHdxYWxsfHdyaXRlfHdzfHdzdmVyYnx3dnx3dmltaW5mb3x4fHhhfHhhbGx8eGl0fHhtfHhtYXB8eG1hcGN8eG1hcGNsZWFyfHhtZXx4bWVudXx4bnx4bm9yZW1hcHx4bm9yZW1lfHhub3JlbWVudXx4dXx4dW5tYXB8eXx5YW5rKVxiLyxidWlsdGluOi9cYig/OmFjZHxhaXxha218YWxlcGh8YWxsb3dyZXZpbnN8YWx0a2V5bWFwfGFtYml3aWR0aHxhbWJ3fGFudGl8YW50aWFsaWFzfGFyYWJ8YXJhYmljfGFyYWJpY3NoYXBlfGFyaXxhcnNoYXBlfGF1dG9jaGRpcnxhdXRvY21kfGF1dG9pbmRlbnR8YXV0b3JlYWR8YXV0b3dyaXRlfGF1dG93cml0ZWFsbHxhd3xhd2F8YmFja2dyb3VuZHxiYWNrc3BhY2V8YmFja3VwfGJhY2t1cGNvcHl8YmFja3VwZGlyfGJhY2t1cGV4dHxiYWNrdXBza2lwfGJhbGxvb25kZWxheXxiYWxsb29uZXZhbHxiYWxsb29uZXhwcnxiZGlyfGJkbGF5fGJldmFsfGJleHxiZXhwcnxiZ3xiaHxiaW58YmluYXJ5fGJpb3NrfGJpb3NrZXl8Ymt8YmtjfGJvbWJ8YnJlYWthdHxicmt8YnJvd3NlZGlyfGJzfGJzZGlyfGJza3xidHxidWZoaWRkZW58YnVmbGlzdGVkfGJ1ZnR5cGV8Y2FzZW1hcHxjY3Z8Y2RwYXRofGNlZGl0fGNmdXxjaHxjaGFyY29udmVydHxjaXxjaW58Y2luZGVudHxjaW5rfGNpbmtleXN8Y2lub3xjaW5vcHRpb25zfGNpbnd8Y2lud29yZHN8Y2xpcGJvYXJkfGNtZGhlaWdodHxjbWR3aW5oZWlnaHR8Y21wfGNtc3xjb2x1bW5zfGNvbXxjb21tZW50c3xjb21tZW50c3RyaW5nfGNvbXBhdGlibGV8Y29tcGxldGV8Y29tcGxldGVmdW5jfGNvbXBsZXRlb3B0fGNvbnNrfGNvbnNrZXl8Y29weWluZGVudHxjb3R8Y3BvfGNwb3B0aW9uc3xjcHR8Y3Njb3BlcGF0aGNvbXB8Y3Njb3BlcHJnfGNzY29wZXF1aWNrZml4fGNzY29wZXRhZ3xjc2NvcGV0YWdvcmRlcnxjc2NvcGV2ZXJib3NlfGNzcGN8Y3Nwcmd8Y3NxZnxjc3R8Y3N0b3xjc3ZlcmJ8Y3VjfGN1bHxjdXJzb3Jjb2x1bW58Y3Vyc29ybGluZXxjd2h8ZGVidWd8ZGVjb3xkZWZ8ZGVmaW5lfGRlbGNvbWJpbmV8ZGV4fGRnfGRpY3R8ZGljdGlvbmFyeXxkaWZmfGRpZmZleHByfGRpZmZvcHR8ZGlncmFwaHxkaXB8ZGlyfGRpcmVjdG9yeXxkeXxlYXxlYWR8ZWFkaXJlY3Rpb258ZWJ8ZWR8ZWRjb21wYXRpYmxlfGVmfGVmbXxlaXxla3xlbmN8ZW5jb2Rpbmd8ZW5kb2ZsaW5lfGVvbHxlcHxlcXVhbGFsd2F5c3xlcXVhbHByZ3xlcnJvcmJlbGxzfGVycm9yZmlsZXxlcnJvcmZvcm1hdHxlc2NrZXlzfGV0fGV2ZW50aWdub3JlfGV4cGFuZHRhYnxleHJjfGZjbHxmY3N8ZmRjfGZkZXxmZGl8ZmRsfGZkbHN8ZmRtfGZkbnxmZG98ZmR0fGZlbnxmZW5jfGZlbmNzfGZleHxmZnxmZnN8ZmlsZWVuY29kaW5nfGZpbGVlbmNvZGluZ3N8ZmlsZWZvcm1hdHxmaWxlZm9ybWF0c3xmaWxsY2hhcnN8Zmt8ZmttYXB8ZmxwfGZtbHxmbXJ8Zm9sZGNvbHVtbnxmb2xkZW5hYmxlfGZvbGRleHByfGZvbGRpZ25vcmV8Zm9sZGxldmVsfGZvbGRsZXZlbHN0YXJ0fGZvbGRtYXJrZXJ8Zm9sZG1ldGhvZHxmb2xkbWlubGluZXN8Zm9sZG5lc3RtYXh8Zm9sZHRleHR8Zm9ybWF0ZXhwcnxmb3JtYXRsaXN0cGF0fGZvcm1hdG9wdGlvbnN8Zm9ybWF0cHJnfGZwfGZzfGZzeW5jfGZ0fGdjcnxnZHxnZGVmYXVsdHxnZm18Z2ZufGdmc3xnZnd8Z2hyfGdwfGdyZXBmb3JtYXR8Z3JlcHByZ3xndGx8Z3R0fGd1aWN1cnNvcnxndWlmb250fGd1aWZvbnRzZXR8Z3VpZm9udHdpZGV8Z3VpaGVhZHJvb218Z3Vpb3B0aW9uc3xndWlwdHl8Z3VpdGFibGFiZWx8Z3VpdGFidG9vbHRpcHxoZWxwZmlsZXxoZWxwaGVpZ2h0fGhlbHBsYW5nfGhmfGhofGhpfGhpZGRlbnxoaWdobGlnaHR8aGt8aGttYXB8aGttYXBwfGhrcHxobHxobGd8aGxzfGhsc2VhcmNofGljfGljb258aWNvbnN0cmluZ3xpZ25vcmVjYXNlfGltfGltYWN0aXZhdGVrZXl8aW1ha3xpbWN8aW1jbWRsaW5lfGltZHxpbWRpc2FibGV8aW1pfGltaW5zZXJ0fGltc3xpbXNlYXJjaHxpbmN8aW5jbHVkZXxpbmNsdWRlZXhwcnxpbmNzZWFyY2h8aW5kZXxpbmRlbnRleHByfGluZGVudGtleXN8aW5ka3xpbmV4fGluZnxpbmZlcmNhc2V8aW5zZXJ0bW9kZXxpbnZhY2R8aW52YWl8aW52YWttfGludmFsbG93cmV2aW5zfGludmFsdGtleW1hcHxpbnZhbnRpfGludmFudGlhbGlhc3xpbnZhcnxpbnZhcmFifGludmFyYWJpY3xpbnZhcmFiaWNzaGFwZXxpbnZhcml8aW52YXJzaGFwZXxpbnZhdXRvY2hkaXJ8aW52YXV0b2luZGVudHxpbnZhdXRvcmVhZHxpbnZhdXRvd3JpdGV8aW52YXV0b3dyaXRlYWxsfGludmF3fGludmF3YXxpbnZiYWNrdXB8aW52YmFsbG9vbmV2YWx8aW52YmV2YWx8aW52YmlufGludmJpbmFyeXxpbnZiaW9za3xpbnZiaW9za2V5fGludmJrfGludmJsfGludmJvbWJ8aW52YnVmbGlzdGVkfGludmNmfGludmNpfGludmNpbnxpbnZjaW5kZW50fGludmNvbXBhdGlibGV8aW52Y29uZmlybXxpbnZjb25za3xpbnZjb25za2V5fGludmNvcHlpbmRlbnR8aW52Y3B8aW52Y3Njb3BldGFnfGludmNzY29wZXZlcmJvc2V8aW52Y3N0fGludmNzdmVyYnxpbnZjdWN8aW52Y3VsfGludmN1cnNvcmNvbHVtbnxpbnZjdXJzb3JsaW5lfGludmRlY298aW52ZGVsY29tYmluZXxpbnZkZ3xpbnZkaWZmfGludmRpZ3JhcGh8aW52ZGlzYWJsZXxpbnZlYXxpbnZlYnxpbnZlZHxpbnZlZGNvbXBhdGlibGV8aW52ZWt8aW52ZW5kb2ZsaW5lfGludmVvbHxpbnZlcXVhbGFsd2F5c3xpbnZlcnJvcmJlbGxzfGludmVzY2tleXN8aW52ZXR8aW52ZXh8aW52ZXhwYW5kdGFifGludmV4cmN8aW52ZmVufGludmZrfGludmZrbWFwfGludmZvbGRlbmFibGV8aW52Z2R8aW52Z2RlZmF1bHR8aW52Z3VpcHR5fGludmhpZHxpbnZoaWRkZW58aW52aGt8aW52aGttYXB8aW52aGttYXBwfGludmhrcHxpbnZobHN8aW52aGxzZWFyY2h8aW52aWN8aW52aWNvbnxpbnZpZ25vcmVjYXNlfGludmltfGludmltY3xpbnZpbWNtZGxpbmV8aW52aW1kfGludmluY3NlYXJjaHxpbnZpbmZ8aW52aW5mZXJjYXNlfGludmluc2VydG1vZGV8aW52aXN8aW52am9pbnNwYWNlc3xpbnZqc3xpbnZsYXp5cmVkcmF3fGludmxicnxpbnZsaW5lYnJlYWt8aW52bGlzcHxpbnZsaXN0fGludmxvYWRwbHVnaW5zfGludmxwbHxpbnZsenxpbnZtYXxpbnZtYWNhdHN1aXxpbnZtYWdpY3xpbnZtaHxpbnZtbHxpbnZtb2R8aW52bW9kZWxpbmV8aW52bW9kaWZpYWJsZXxpbnZtb2RpZmllZHxpbnZtb3JlfGludm1vdXNlZnxpbnZtb3VzZWZvY3VzfGludm1vdXNlaGlkZXxpbnZudXxpbnZudW1iZXJ8aW52b2RldnxpbnZvcGVuZGV2aWNlfGludnBhc3RlfGludnBpfGludnByZXNlcnZlaW5kZW50fGludnByZXZpZXd3aW5kb3d8aW52cHJvbXB0fGludnB2d3xpbnZyZWFkb25seXxpbnZyZW1hcHxpbnZyZXN0b3Jlc2NyZWVufGludnJldmluc3xpbnZyaXxpbnZyaWdodGxlZnR8aW52cmlnaHRsZWZ0Y21kfGludnJsfGludnJsY3xpbnZyb3xpbnZyc3xpbnZydXxpbnZydWxlcnxpbnZzYnxpbnZzY3xpbnZzY2J8aW52c2Nyb2xsYmluZHxpbnZzY3N8aW52c2VjdXJlfGludnNmdHxpbnZzaGVsbHNsYXNofGludnNoZWxsdGVtcHxpbnZzaGlmdHJvdW5kfGludnNob3J0bmFtZXxpbnZzaG93Y21kfGludnNob3dmdWxsdGFnfGludnNob3dtYXRjaHxpbnZzaG93bW9kZXxpbnZzaXxpbnZzbXxpbnZzbWFydGNhc2V8aW52c21hcnRpbmRlbnR8aW52c21hcnR0YWJ8aW52c21kfGludnNufGludnNvbHxpbnZzcGVsbHxpbnZzcGxpdGJlbG93fGludnNwbGl0cmlnaHR8aW52c3ByfGludnNyfGludnNzbHxpbnZzdGF8aW52c3RhcnRvZmxpbmV8aW52c3RtcHxpbnZzd2FwZmlsZXxpbnZzd2Z8aW52dGF8aW52dGFnYnNlYXJjaHxpbnZ0YWdyZWxhdGl2ZXxpbnZ0YWdzdGFja3xpbnZ0Yml8aW52dGJpZGl8aW52dGJzfGludnRlcm1iaWRpfGludnRlcnNlfGludnRleHRhdXRvfGludnRleHRtb2RlfGludnRmfGludnRnc3R8aW52dGlsZGVvcHxpbnZ0aW1lb3V0fGludnRpdGxlfGludnRvfGludnRvcHxpbnZ0cnxpbnZ0dGltZW91dHxpbnZ0dHlidWlsdGlufGludnR0eWZhc3R8aW52dHh8aW52dmJ8aW52dmlzdWFsYmVsbHxpbnZ3YXxpbnZ3YXJufGludndifGludndlaXJkaW52ZXJ0fGludndmaHxpbnZ3Znd8aW52d2lsZG1lbnV8aW52d2luZml4aGVpZ2h0fGludndpbmZpeHdpZHRofGludndpdnxpbnZ3bW51fGludndyYXB8aW52d3JhcHNjYW58aW52d3JpdGV8aW52d3JpdGVhbnl8aW52d3JpdGViYWNrdXB8aW52d3N8aXNmfGlzZm5hbWV8aXNpfGlzaWRlbnR8aXNrfGlza2V5d29yZHxpc3ByaW50fGpvaW5zcGFjZXN8anN8a2V5fGtleW1hcHxrZXltb2RlbHxrZXl3b3JkcHJnfGttfGttcHxrcHxsYW5nbWFwfGxhbmdtZW51fGxhc3RzdGF0dXN8bGF6eXJlZHJhd3xsYnJ8bGNzfGxpbmVicmVha3xsaW5lc3xsaW5lc3BhY2V8bGlzcHxsaXNwd29yZHN8bGlzdGNoYXJzfGxvYWRwbHVnaW5zfGxwbHxsc3B8bHp8bWFjYXRzdWl8bWFnaWN8bWFrZWVmfG1ha2Vwcmd8bWF0Y2hwYWlyc3xtYXRjaHRpbWV8bWF4Y29tYmluZXxtYXhmdW5jZGVwdGh8bWF4bWFwZGVwdGh8bWF4bWVtfG1heG1lbXBhdHRlcm58bWF4bWVtdG90fG1jb3xtZWZ8bWVudWl0ZW1zfG1mZHxtaHxtaXN8bWtzcGVsbG1lbXxtbHxtbHN8bW18bW1kfG1tcHxtbXR8bW9kZWxpbmV8bW9kZWxpbmVzfG1vZGlmaWFibGV8bW9kaWZpZWR8bW9yZXxtb3VzZXxtb3VzZWZ8bW91c2Vmb2N1c3xtb3VzZWhpZGV8bW91c2VtfG1vdXNlbW9kZWx8bW91c2VzfG1vdXNlc2hhcGV8bW91c2V0fG1vdXNldGltZXxtcHxtcHN8bXNtfG16cXxtenF1YW50dW18bmZ8bm9hY2R8bm9haXxub2FrbXxub2FsbG93cmV2aW5zfG5vYWx0a2V5bWFwfG5vYW50aXxub2FudGlhbGlhc3xub2FyfG5vYXJhYnxub2FyYWJpY3xub2FyYWJpY3NoYXBlfG5vYXJpfG5vYXJzaGFwZXxub2F1dG9jaGRpcnxub2F1dG9pbmRlbnR8bm9hdXRvcmVhZHxub2F1dG93cml0ZXxub2F1dG93cml0ZWFsbHxub2F3fG5vYXdhfG5vYmFja3VwfG5vYmFsbG9vbmV2YWx8bm9iZXZhbHxub2Jpbnxub2JpbmFyeXxub2Jpb3NrfG5vYmlvc2tleXxub2JrfG5vYmx8bm9ib21ifG5vYnVmbGlzdGVkfG5vY2Z8bm9jaXxub2Npbnxub2NpbmRlbnR8bm9jb21wYXRpYmxlfG5vY29uZmlybXxub2NvbnNrfG5vY29uc2tleXxub2NvcHlpbmRlbnR8bm9jcHxub2NzY29wZXRhZ3xub2NzY29wZXZlcmJvc2V8bm9jc3R8bm9jc3ZlcmJ8bm9jdWN8bm9jdWx8bm9jdXJzb3Jjb2x1bW58bm9jdXJzb3JsaW5lfG5vZGVjb3xub2RlbGNvbWJpbmV8bm9kZ3xub2RpZmZ8bm9kaWdyYXBofG5vZGlzYWJsZXxub2VhfG5vZWJ8bm9lZHxub2VkY29tcGF0aWJsZXxub2VrfG5vZW5kb2ZsaW5lfG5vZW9sfG5vZXF1YWxhbHdheXN8bm9lcnJvcmJlbGxzfG5vZXNja2V5c3xub2V0fG5vZXh8bm9leHBhbmR0YWJ8bm9leHJjfG5vZmVufG5vZmt8bm9ma21hcHxub2ZvbGRlbmFibGV8bm9nZHxub2dkZWZhdWx0fG5vZ3VpcHR5fG5vaGlkfG5vaGlkZGVufG5vaGt8bm9oa21hcHxub2hrbWFwcHxub2hrcHxub2hsc3xub2ljfG5vaWNvbnxub2lnbm9yZWNhc2V8bm9pbXxub2ltY3xub2ltY21kbGluZXxub2ltZHxub2luY3NlYXJjaHxub2luZnxub2luZmVyY2FzZXxub2luc2VydG1vZGV8bm9pc3xub2pvaW5zcGFjZXN8bm9qc3xub2xhenlyZWRyYXd8bm9sYnJ8bm9saW5lYnJlYWt8bm9saXNwfG5vbGlzdHxub2xvYWRwbHVnaW5zfG5vbHBsfG5vbHp8bm9tYXxub21hY2F0c3VpfG5vbWFnaWN8bm9taHxub21sfG5vbW9kfG5vbW9kZWxpbmV8bm9tb2RpZmlhYmxlfG5vbW9kaWZpZWR8bm9tb3JlfG5vbW91c2VmfG5vbW91c2Vmb2N1c3xub21vdXNlaGlkZXxub251fG5vbnVtYmVyfG5vb2Rldnxub29wZW5kZXZpY2V8bm9wYXN0ZXxub3BpfG5vcHJlc2VydmVpbmRlbnR8bm9wcmV2aWV3d2luZG93fG5vcHJvbXB0fG5vcHZ3fG5vcmVhZG9ubHl8bm9yZW1hcHxub3Jlc3RvcmVzY3JlZW58bm9yZXZpbnN8bm9yaXxub3JpZ2h0bGVmdHxub3JpZ2h0bGVmdGNtZHxub3JsfG5vcmxjfG5vcm98bm9yc3xub3J1fG5vcnVsZXJ8bm9zYnxub3NjfG5vc2NifG5vc2Nyb2xsYmluZHxub3Njc3xub3NlY3VyZXxub3NmdHxub3NoZWxsc2xhc2h8bm9zaGVsbHRlbXB8bm9zaGlmdHJvdW5kfG5vc2hvcnRuYW1lfG5vc2hvd2NtZHxub3Nob3dmdWxsdGFnfG5vc2hvd21hdGNofG5vc2hvd21vZGV8bm9zaXxub3NtfG5vc21hcnRjYXNlfG5vc21hcnRpbmRlbnR8bm9zbWFydHRhYnxub3NtZHxub3NufG5vc29sfG5vc3BlbGx8bm9zcGxpdGJlbG93fG5vc3BsaXRyaWdodHxub3Nwcnxub3NyfG5vc3NsfG5vc3RhfG5vc3RhcnRvZmxpbmV8bm9zdG1wfG5vc3dhcGZpbGV8bm9zd2Z8bm90YXxub3RhZ2JzZWFyY2h8bm90YWdyZWxhdGl2ZXxub3RhZ3N0YWNrfG5vdGJpfG5vdGJpZGl8bm90YnN8bm90ZXJtYmlkaXxub3RlcnNlfG5vdGV4dGF1dG98bm90ZXh0bW9kZXxub3RmfG5vdGdzdHxub3RpbGRlb3B8bm90aW1lb3V0fG5vdGl0bGV8bm90b3xub3RvcHxub3RyfG5vdHRpbWVvdXR8bm90dHlidWlsdGlufG5vdHR5ZmFzdHxub3R4fG5vdmJ8bm92aXN1YWxiZWxsfG5vd2F8bm93YXJufG5vd2J8bm93ZWlyZGludmVydHxub3dmaHxub3dmd3xub3dpbGRtZW51fG5vd2luZml4aGVpZ2h0fG5vd2luZml4d2lkdGh8bm93aXZ8bm93bW51fG5vd3JhcHxub3dyYXBzY2FufG5vd3JpdGV8bm93cml0ZWFueXxub3dyaXRlYmFja3VwfG5vd3N8bnJmb3JtYXRzfG51bWJlcndpZHRofG51d3xvZGV2fG9mdHxvZnV8b21uaWZ1bmN8b3BlbmRldmljZXxvcGVyYXRvcmZ1bmN8b3BmdW5jfG9zZmlsZXR5cGV8cGF8cGFyYXxwYXJhZ3JhcGhzfHBhc3RlfHBhc3RldG9nZ2xlfHBhdGNoZXhwcnxwYXRjaG1vZGV8cGF0aHxwZGV2fHBlbmN8cGV4fHBleHByfHBmbnxwaHxwaGVhZGVyfHBpfHBtfHBtYmNzfHBtYmZufHBvcHR8cHJlc2VydmVpbmRlbnR8cHJldmlld2hlaWdodHxwcmV2aWV3d2luZG93fHByaW50ZGV2aWNlfHByaW50ZW5jb2Rpbmd8cHJpbnRleHByfHByaW50Zm9udHxwcmludGhlYWRlcnxwcmludG1iY2hhcnNldHxwcmludG1iZm9udHxwcmludG9wdGlvbnN8cHJvbXB0fHB0fHB1bWhlaWdodHxwdmh8cHZ3fHFlfHF1b3RlZXNjYXBlfHJlYWRvbmx5fHJlbWFwfHJlcG9ydHxyZXN0b3Jlc2NyZWVufHJldmluc3xyaWdodGxlZnR8cmlnaHRsZWZ0Y21kfHJsfHJsY3xyb3xyc3xydHB8cnVmfHJ1bGVyfHJ1bGVyZm9ybWF0fHJ1bnRpbWVwYXRofHNib3xzY3xzY2J8c2NyfHNjcm9sbHxzY3JvbGxiaW5kfHNjcm9sbGp1bXB8c2Nyb2xsb2ZmfHNjcm9sbG9wdHxzY3N8c2VjdHxzZWN0aW9uc3xzZWN1cmV8c2VsfHNlbGVjdGlvbnxzZWxlY3Rtb2RlfHNlc3Npb25vcHRpb25zfHNmdHxzaGNmfHNoZWxsY21kZmxhZ3xzaGVsbHBpcGV8c2hlbGxxdW90ZXxzaGVsbHJlZGlyfHNoZWxsc2xhc2h8c2hlbGx0ZW1wfHNoZWxsdHlwZXxzaGVsbHhxdW90ZXxzaGlmdHJvdW5kfHNoaWZ0d2lkdGh8c2htfHNob3J0bWVzc3xzaG9ydG5hbWV8c2hvd2JyZWFrfHNob3djbWR8c2hvd2Z1bGx0YWd8c2hvd21hdGNofHNob3dtb2RlfHNob3d0YWJsaW5lfHNocXxzaXxzaWRlc2Nyb2xsfHNpZGVzY3JvbGxvZmZ8c2lzb3xzanxzbG18c21hcnRjYXNlfHNtYXJ0aW5kZW50fHNtYXJ0dGFifHNtY3xzbWR8c29mdHRhYnN0b3B8c29sfHNwY3xzcGVsbHxzcGVsbGNhcGNoZWNrfHNwZWxsZmlsZXxzcGVsbGxhbmd8c3BlbGxzdWdnZXN0fHNwZnxzcGx8c3BsaXRiZWxvd3xzcGxpdHJpZ2h0fHNwc3xzcnxzcnJ8c3N8c3NsfHNzb3B8c3RhbHxzdGFydG9mbGluZXxzdGF0dXNsaW5lfHN0bHxzdG1wfHN1fHN1YXxzdWZmaXhlc3xzdWZmaXhlc2FkZHxzd3xzd2FwZmlsZXxzd2Fwc3luY3xzd2J8c3dmfHN3aXRjaGJ1Znxzd3N8c3hxfHN5bnxzeW5tYXhjb2x8c3ludGF4fHRfQUJ8dF9BRnx0X0FMfHRfQ1N8dF9DVnx0X0NlfHRfQ298dF9Dc3x0X0RMfHRfRUl8dF9GMXx0X0YyfHRfRjN8dF9GNHx0X0Y1fHRfRjZ8dF9GN3x0X0Y4fHRfRjl8dF9JRXx0X0lTfHRfSzF8dF9LM3x0X0s0fHRfSzV8dF9LNnx0X0s3fHRfSzh8dF9LOXx0X0tBfHRfS0J8dF9LQ3x0X0tEfHRfS0V8dF9LRnx0X0tHfHRfS0h8dF9LSXx0X0tKfHRfS0t8dF9LTHx0X1JJfHRfUlZ8dF9TSXx0X1NifHRfU2Z8dF9XUHx0X1dTfHRfWkh8dF9aUnx0X2FsfHRfYmN8dF9jZHx0X2NlfHRfY2x8dF9jbXx0X2NzfHRfZGF8dF9kYnx0X2RsfHRfZnN8dF9rMXx0X2syfHRfazN8dF9rNHx0X2s1fHRfazZ8dF9rN3x0X2s4fHRfazl8dF9rQnx0X2tEfHRfa0l8dF9rTnx0X2tQfHRfa2J8dF9rZHx0X2tlfHRfa2h8dF9rbHx0X2tyfHRfa3N8dF9rdXx0X2xlfHRfbWJ8dF9tZHx0X21lfHRfbXJ8dF9tc3x0X25kfHRfb3B8dF9zZXx0X3NvfHRfc3J8dF90ZXx0X3RpfHRfdHN8dF91ZXx0X3VzfHRfdXR8dF92Ynx0X3ZlfHRfdml8dF92c3x0X3hzfHRhYmxpbmV8dGFicGFnZW1heHx0YWJzdG9wfHRhZ2JzZWFyY2h8dGFnbGVuZ3RofHRhZ3JlbGF0aXZlfHRhZ3N0YWNrfHRhbHx0Ynx0Yml8dGJpZGl8dGJpc3x0YnN8dGVuY3x0ZXJtfHRlcm1iaWRpfHRlcm1lbmNvZGluZ3x0ZXJzZXx0ZXh0YXV0b3x0ZXh0bW9kZXx0ZXh0d2lkdGh8dGdzdHx0aGVzYXVydXN8dGlsZGVvcHx0aW1lb3V0fHRpbWVvdXRsZW58dGl0bGV8dGl0bGVsZW58dGl0bGVvbGR8dGl0bGVzdHJpbmd8dG9vbGJhcnx0b29sYmFyaWNvbnNpemV8dG9wfHRwbXx0c2x8dHNyfHR0aW1lb3V0fHR0aW1lb3V0bGVufHR0bXx0dHl8dHR5YnVpbHRpbnx0dHlmYXN0fHR0eW18dHR5bW91c2V8dHR5c2Nyb2xsfHR0eXR5cGV8dHd8dHh8dWN8dWx8dW5kb2xldmVsc3x1cGRhdGVjb3VudHx1cGRhdGV0aW1lfHV0fHZifHZic3x2ZGlyfHZlcmJvc2VmaWxlfHZmaWxlfHZpZXdkaXJ8dmlld29wdGlvbnN8dmltaW5mb3x2aXJ0dWFsZWRpdHx2aXN1YWxiZWxsfHZvcHx3YWt8d2Fybnx3Ynx3Y3x3Y218d2R8d2VpcmRpbnZlcnR8d2ZofHdmd3x3aGljaHdyYXB8d2l8d2lnfHdpbGRjaGFyfHdpbGRjaGFybXx3aWxkaWdub3JlfHdpbGRtZW51fHdpbGRtb2RlfHdpbGRvcHRpb25zfHdpbXx3aW5hbHRrZXlzfHdpbmRvd3x3aW5maXhoZWlnaHR8d2luZml4d2lkdGh8d2luaGVpZ2h0fHdpbm1pbmhlaWdodHx3aW5taW53aWR0aHx3aW53aWR0aHx3aXZ8d2l3fHdtfHdtaHx3bW51fHdtd3x3b3B8d3JhcHx3cmFwbWFyZ2lufHdyYXBzY2FufHdyaXRlYW55fHdyaXRlYmFja3VwfHdyaXRlZGVsYXl8d3cpXGIvLG51bWJlcjovXGIoPzoweFtcZGEtZl0rfFxkKyg/OlwuXGQrKT8pXGIvaSxvcGVyYXRvcjovXHxcfHwmJnxbLSsuXT0/fFs9IV0oPzpbPX5dWyM/XT8pP3xbPD5dPT9bIz9dP3xbKlwvJT9dfFxiKD86aXMoPzpub3QpPylcYi8scHVuY3R1YXRpb246L1t7fVtcXSgpLDs6XS99fXJldHVybiB6Zn12YXIgamYsU3g7ZnVuY3Rpb24gJDYoKXtpZihTeClyZXR1cm4gamY7U3g9MSxqZj1lLGUuZGlzcGxheU5hbWU9InZpc3VhbEJhc2ljIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlc1sidmlzdWFsLWJhc2ljIl09e2NvbW1lbnQ6e3BhdHRlcm46Lyg/Olsn4oCY4oCZXXxSRU1cYikoPzpbXlxyXG5fXXxfKD86XHJcbj98XG4pPykqL2ksaW5zaWRlOntrZXl3b3JkOi9eUkVNL2l9fSxkaXJlY3RpdmU6e3BhdHRlcm46LyMoPzpDb25zdHxFbHNlfEVsc2VJZnxFbmR8RXh0ZXJuYWxDaGVja3N1bXxFeHRlcm5hbFNvdXJjZXxJZnxSZWdpb24pKD86XGJfWyBcdF0qKD86XHJcbj98XG4pfC4pKy9pLGFsaWFzOiJwcm9wZXJ0eSIsZ3JlZWR5OiEwfSxzdHJpbmc6e3BhdHRlcm46L1wkP1si4oCc4oCdXSg/Olsi4oCc4oCdXXsyfXxbXiLigJzigJ1dKSpbIuKAnOKAnV1DPy9pLGdyZWVkeTohMH0sZGF0ZTp7cGF0dGVybjovI1sgXHRdKig/OlxkKyhbLy1dKVxkK1wxXGQrKD86WyBcdF0rKD86XGQrWyBcdF0qKD86QU18UE0pfFxkKzpcZCsoPzo6XGQrKT8oPzpbIFx0XSooPzpBTXxQTSkpPykpP3xcZCtbIFx0XSooPzpBTXxQTSl8XGQrOlxkKyg/OjpcZCspPyg/OlsgXHRdKig/OkFNfFBNKSk/KVsgXHRdKiMvaSxhbGlhczoibnVtYmVyIn0sbnVtYmVyOi8oPzooPzpcYlxkKyg/OlwuXGQrKT98XC5cZCspKD86RVsrLV0/XGQrKT98JltIT11bXGRBLUZdKykoPzpbRlJEXXxVP1tJTFNdKT8vaSxib29sZWFuOi9cYig/OkZhbHNlfE5vdGhpbmd8VHJ1ZSlcYi9pLGtleXdvcmQ6L1xiKD86QWRkSGFuZGxlcnxBZGRyZXNzT2Z8QWxpYXN8QW5kKD86QWxzbyk/fEFzfEJvb2xlYW58QnlSZWZ8Qnl0ZXxCeVZhbHxDYWxsfENhc2V8Q2F0Y2h8Qyg/OkJvb2x8Qnl0ZXxDaGFyfERhdGV8RGJsfERlY3xJbnR8TG5nfE9ianxTQnl0ZXxTaG9ydHxTbmd8U3RyfFR5cGV8VUludHxVTG5nfFVTaG9ydCl8Q2hhcnxDbGFzc3xDb25zdHxDb250aW51ZXxDdXJyZW5jeXxEYXRlfERlY2ltYWx8RGVjbGFyZXxEZWZhdWx0fERlbGVnYXRlfERpbXxEaXJlY3RDYXN0fERvfERvdWJsZXxFYWNofEVsc2UoPzpJZik/fEVuZCg/OklmKT98RW51bXxFcmFzZXxFcnJvcnxFdmVudHxFeGl0fEZpbmFsbHl8Rm9yfEZyaWVuZHxGdW5jdGlvbnxHZXQoPzpUeXBlfFhNTE5hbWVzcGFjZSk/fEdsb2JhbHxHb1N1YnxHb1RvfEhhbmRsZXN8SWZ8SW1wbGVtZW50c3xJbXBvcnRzfElufEluaGVyaXRzfEludGVnZXJ8SW50ZXJmYWNlfElzfElzTm90fExldHxMaWJ8TGlrZXxMb25nfExvb3B8TWV8TW9kfE1vZHVsZXxNdXN0KD86SW5oZXJpdHxPdmVycmlkZSl8TXkoPzpCYXNlfENsYXNzKXxOYW1lc3BhY2V8TmFycm93aW5nfE5ld3xOZXh0fE5vdCg/OkluaGVyaXRhYmxlfE92ZXJyaWRhYmxlKT98T2JqZWN0fE9mfE9ufE9wZXJhdG9yfE9wdGlvbig/OmFsKT98T3IoPzpFbHNlKT98T3V0fE92ZXJsb2Fkc3xPdmVycmlkYWJsZXxPdmVycmlkZXN8UGFyYW1BcnJheXxQYXJ0aWFsfFByaXZhdGV8UHJvcGVydHl8UHJvdGVjdGVkfFB1YmxpY3xSYWlzZUV2ZW50fFJlYWRPbmx5fFJlRGltfFJlbW92ZUhhbmRsZXJ8UmVzdW1lfFJldHVybnxTQnl0ZXxTZWxlY3R8U2V0fFNoYWRvd3N8U2hhcmVkfHNob3J0fFNpbmdsZXxTdGF0aWN8U3RlcHxTdG9wfFN0cmluZ3xTdHJ1Y3R1cmV8U3VifFN5bmNMb2NrfFRoZW58VGhyb3d8VG98VHJ5fFRyeUNhc3R8VHlwZXxUeXBlT2Z8VSg/OkludGVnZXJ8TG9uZ3xTaG9ydCl8VW50aWx8VXNpbmd8VmFyaWFudHxXZW5kfFdoZW58V2hpbGV8V2lkZW5pbmd8V2l0aCg/OkV2ZW50cyk/fFdyaXRlT25seXxYb3IpXGIvaSxvcGVyYXRvcjovWytcLSovXFxePD0+JiNAJCUhXXxcYl8oPz1bIFx0XSpbXHJcbl0pLyxwdW5jdHVhdGlvbjovW3t9KCkuLDo/XS99LHQubGFuZ3VhZ2VzLnZiPXQubGFuZ3VhZ2VzWyJ2aXN1YWwtYmFzaWMiXSx0Lmxhbmd1YWdlcy52YmE9dC5sYW5ndWFnZXNbInZpc3VhbC1iYXNpYyJdfXJldHVybiBqZn12YXIgR2Ysd3g7ZnVuY3Rpb24gejYoKXtpZih3eClyZXR1cm4gR2Y7d3g9MSxHZj1lLGUuZGlzcGxheU5hbWU9IndhcnBzY3JpcHQiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLndhcnBzY3JpcHQ9e2NvbW1lbnQ6LyMuKnxcL1wvLip8XC9cKltcc1xTXSo/XCpcLy8sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxcclxuXXxcXC4pKiJ8Jyg/OlteJ1xcXHJcbl18XFwuKSonfDwnKD86W15cXCddfCcoPyE+KXxcXC4pKic+LyxncmVlZHk6ITB9LHZhcmlhYmxlOi9cJFxTKy8sbWFjcm86e3BhdHRlcm46L0BcUysvLGFsaWFzOiJwcm9wZXJ0eSJ9LGtleXdvcmQ6L1xiKD86QlJFQUt8Q0hFQ0tNQUNST3xDT05USU5VRXxDVURGfERFRklORUR8REVGSU5FRE1BQ1JPfEVWQUx8RkFJTHxGT1J8Rk9SRUFDSHxGT1JTVEVQfElGVHxJRlRFfE1TR0ZBSUx8TlJFVFVSTnxSRVRIUk9XfFJFVFVSTnxTV0lUQ0h8VFJZfFVERnxVTlRJTHxXSElMRSlcYi8sbnVtYmVyOi9bKy1dP1xiKD86TmFOfEluZmluaXR5fFxkKyg/OlwuXGQqKT8oPzpbRWVdWystXT9cZCspP3wweFtcZGEtZkEtRl0rfDBiWzAxXSspXGIvLGJvb2xlYW46L1xiKD86RnxUfGZhbHNlfHRydWUpXGIvLHB1bmN0dWF0aW9uOi88JXwlPnxbe31bXF0oKV0vLG9wZXJhdG9yOi89PXwmJj98XHxcfD98XCpcKj98Pj4+P3w8PHxbPD4hfl09P3xbLS8lXl18XCshP3xcYig/OkFORHxOT1R8T1IpXGIvfX1yZXR1cm4gR2Z9dmFyIHFmLFR4O2Z1bmN0aW9uIGo2KCl7aWYoVHgpcmV0dXJuIHFmO1R4PTEscWY9ZSxlLmRpc3BsYXlOYW1lPSJ3YXNtIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy53YXNtPXtjb21tZW50OlsvXCg7W1xzXFNdKj87XCkvLHtwYXR0ZXJuOi87Oy4qLyxncmVlZHk6ITB9XSxzdHJpbmc6e3BhdHRlcm46LyIoPzpcXFtcc1xTXXxbXiJcXF0pKiIvLGdyZWVkeTohMH0sa2V5d29yZDpbe3BhdHRlcm46L1xiKD86YWxpZ258b2Zmc2V0KT0vLGluc2lkZTp7b3BlcmF0b3I6Lz0vfX0se3BhdHRlcm46L1xiKD86KD86ZjMyfGY2NHxpMzJ8aTY0KSg/OlwuKD86YWJzfGFkZHxhbmR8Y2VpbHxjbHp8Y29uc3R8Y29udmVydF9bc3VdXC9pKD86MzJ8NjQpfGNvcHlzaWdufGN0enxkZW1vdGVcL2Y2NHxkaXYoPzpfW3N1XSk/fGVxej98ZXh0ZW5kX1tzdV1cL2kzMnxmbG9vcnxnZSg/Ol9bc3VdKT98Z3QoPzpfW3N1XSk/fGxlKD86X1tzdV0pP3xsb2FkKD86KD86OHwxNnwzMilfW3N1XSk/fGx0KD86X1tzdV0pP3xtYXh8bWlufG11bHxuZWc/fG5lYXJlc3R8b3J8cG9wY250fHByb21vdGVcL2YzMnxyZWludGVycHJldFwvW2ZpXSg/OjMyfDY0KXxyZW1fW3N1XXxyb3RbbHJdfHNobHxzaHJfW3N1XXxzcXJ0fHN0b3JlKD86OHwxNnwzMik/fHN1Ynx0cnVuYyg/Ol9bc3VdXC9mKD86MzJ8NjQpKT98d3JhcFwvaTY0fHhvcikpP3xtZW1vcnlcLig/Omdyb3d8c2l6ZSkpXGIvLGluc2lkZTp7cHVuY3R1YXRpb246L1wuL319LC9cYig/OmFueWZ1bmN8YmxvY2t8YnIoPzpfaWZ8X3RhYmxlKT98Y2FsbCg/Ol9pbmRpcmVjdCk/fGRhdGF8ZHJvcHxlbGVtfGVsc2V8ZW5kfGV4cG9ydHxmdW5jfGdldF8oPzpnbG9iYWx8bG9jYWwpfGdsb2JhbHxpZnxpbXBvcnR8bG9jYWx8bG9vcHxtZW1vcnl8bW9kdWxlfG11dHxub3B8b2Zmc2V0fHBhcmFtfHJlc3VsdHxyZXR1cm58c2VsZWN0fHNldF8oPzpnbG9iYWx8bG9jYWwpfHN0YXJ0fHRhYmxlfHRlZV9sb2NhbHx0aGVufHR5cGV8dW5yZWFjaGFibGUpXGIvXSx2YXJpYWJsZTovXCRbXHchIyQlJicqK1wtLi86PD0+P0BcXF5gfH5dKy8sbnVtYmVyOi9bKy1dP1xiKD86XGQoPzpfP1xkKSooPzpcLlxkKD86Xz9cZCkqKT8oPzpbZUVdWystXT9cZCg/Ol8/XGQpKik/fDB4W1xkYS1mQS1GXSg/Ol8/W1xkYS1mQS1GXSkqKD86XC5bXGRhLWZBLUZdKD86Xz9bXGRhLWZBLURdKSopPyg/OltwUF1bKy1dP1xkKD86Xz9cZCkqKT8pXGJ8XGJpbmZcYnxcYm5hbig/OjoweFtcZGEtZkEtRl0oPzpfP1tcZGEtZkEtRF0pKik/XGIvLHB1bmN0dWF0aW9uOi9bKCldL319cmV0dXJuIHFmfXZhciBWZixreDtmdW5jdGlvbiBHNigpe2lmKGt4KXJldHVybiBWZjtreD0xLFZmPWUsZS5kaXNwbGF5TmFtZT0id2ViSWRsIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7dmFyIHI9Lyg/OlxCLXxcYl98XGIpW0EtWmEtel1bXHctXSooPyFbXHctXSkvLnNvdXJjZSxhPSIoPzoiKy9cYig/OnVuc2lnbmVkXHMrKT9sb25nXHMrbG9uZyg/IVtcdy1dKS8uc291cmNlKyJ8IisvXGIoPzp1bnJlc3RyaWN0ZWR8dW5zaWduZWQpXHMrW2Etel0rKD8hW1x3LV0pLy5zb3VyY2UrInwiKy8oPyEoPzp1bnJlc3RyaWN0ZWR8dW5zaWduZWQpXGIpLy5zb3VyY2UrcisvKD86XHMqPCg/OltePD5dfDxbXjw+XSo+KSo+KT8vLnNvdXJjZSsiKSIrLyg/OlxzKlw/KT8vLnNvdXJjZSxpPXt9O24ubGFuZ3VhZ2VzWyJ3ZWItaWRsIl09e2NvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKnxcL1wqW1xzXFNdKj9cKlwvLyxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIlteIl0qIi8sZ3JlZWR5OiEwfSxuYW1lc3BhY2U6e3BhdHRlcm46UmVnRXhwKC8oXGJuYW1lc3BhY2VccyspLy5zb3VyY2UrciksbG9va2JlaGluZDohMH0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjovKF58W15cdy1dKSg/Oml0ZXJhYmxlfG1hcGxpa2V8c2V0bGlrZSlccyo8KD86W148Pl18PFtePD5dKj4pKj4vLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOml9LHtwYXR0ZXJuOlJlZ0V4cCgvKFxiKD86YXR0cmlidXRlfGNvbnN0fGRlbGV0ZXJ8Z2V0dGVyfG9wdGlvbmFsfHNldHRlcilccyspLy5zb3VyY2UrYSksbG9va2JlaGluZDohMCxpbnNpZGU6aX0se3BhdHRlcm46UmVnRXhwKCIoIisvXGJjYWxsYmFja1xzKy8uc291cmNlK3IrL1xzKj1ccyovLnNvdXJjZSsiKSIrYSksbG9va2JlaGluZDohMCxpbnNpZGU6aX0se3BhdHRlcm46UmVnRXhwKC8oXGJ0eXBlZGVmXGJccyopLy5zb3VyY2UrYSksbG9va2JlaGluZDohMCxpbnNpZGU6aX0se3BhdHRlcm46UmVnRXhwKC8oXGIoPzpjYWxsYmFja3xkaWN0aW9uYXJ5fGVudW18aW50ZXJmYWNlKD86XHMrbWl4aW4pPylccyspKD8hKD86aW50ZXJmYWNlfG1peGluKVxiKS8uc291cmNlK3IpLGxvb2tiZWhpbmQ6ITB9LHtwYXR0ZXJuOlJlZ0V4cCgvKDpccyopLy5zb3VyY2UrciksbG9va2JlaGluZDohMH0sUmVnRXhwKHIrLyg/PVxzKyg/OmltcGxlbWVudHN8aW5jbHVkZXMpXGIpLy5zb3VyY2UpLHtwYXR0ZXJuOlJlZ0V4cCgvKFxiKD86aW1wbGVtZW50c3xpbmNsdWRlcylccyspLy5zb3VyY2UrciksbG9va2JlaGluZDohMH0se3BhdHRlcm46UmVnRXhwKGErIig/PSIrL1xzKig/OlwuezN9XHMqKT8vLnNvdXJjZStyKy9ccypbKCksOz1dLy5zb3VyY2UrIikiKSxpbnNpZGU6aX1dLGJ1aWx0aW46L1xiKD86QXJyYXlCdWZmZXJ8QmlnSW50NjRBcnJheXxCaWdVaW50NjRBcnJheXxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRhVmlld3xGbG9hdDMyQXJyYXl8RmxvYXQ2NEFycmF5fEZyb3plbkFycmF5fEludDE2QXJyYXl8SW50MzJBcnJheXxJbnQ4QXJyYXl8T2JzZXJ2YWJsZUFycmF5fFByb21pc2V8VVNWU3RyaW5nfFVpbnQxNkFycmF5fFVpbnQzMkFycmF5fFVpbnQ4QXJyYXl8VWludDhDbGFtcGVkQXJyYXkpXGIvLGtleXdvcmQ6Wy9cYig/OmFzeW5jfGF0dHJpYnV0ZXxjYWxsYmFja3xjb25zdHxjb25zdHJ1Y3RvcnxkZWxldGVyfGRpY3Rpb25hcnl8ZW51bXxnZXR0ZXJ8aW1wbGVtZW50c3xpbmNsdWRlc3xpbmhlcml0fGludGVyZmFjZXxtaXhpbnxuYW1lc3BhY2V8bnVsbHxvcHRpb25hbHxvcnxwYXJ0aWFsfHJlYWRvbmx5fHJlcXVpcmVkfHNldHRlcnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlwZWRlZnx1bnJlc3RyaWN0ZWQpXGIvLC9cYig/OmFueXxiaWdpbnR8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpdGVyYWJsZXxsb25nfG1hcGxpa2V8b2JqZWN0fG9jdGV0fHJlY29yZHxzZXF1ZW5jZXxzZXRsaWtlfHNob3J0fHN5bWJvbHx1bmRlZmluZWR8dW5zaWduZWR8dm9pZClcYi9dLGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sbnVtYmVyOntwYXR0ZXJuOi8oXnxbXlx3LV0pLT8oPzoweFswLTlhLWZdK3woPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/fE5hTnxJbmZpbml0eSkoPyFbXHctXSkvaSxsb29rYmVoaW5kOiEwfSxvcGVyYXRvcjovXC57M318Wz06Pzw+LV0vLHB1bmN0dWF0aW9uOi9bKCl7fVtcXS4sO10vfTtmb3IodmFyIG8gaW4gbi5sYW5ndWFnZXNbIndlYi1pZGwiXSlvIT09ImNsYXNzLW5hbWUiJiYoaVtvXT1uLmxhbmd1YWdlc1sid2ViLWlkbCJdW29dKTtuLmxhbmd1YWdlcy53ZWJpZGw9bi5sYW5ndWFnZXNbIndlYi1pZGwiXX0pKHQpfXJldHVybiBWZn12YXIgSGYsQXg7ZnVuY3Rpb24gcTYoKXtpZihBeClyZXR1cm4gSGY7QXg9MSxIZj1lLGUuZGlzcGxheU5hbWU9Indpa2kiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpe3QubGFuZ3VhZ2VzLndpa2k9dC5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHsiYmxvY2stY29tbWVudCI6e3BhdHRlcm46LyhefFteXFxdKVwvXCpbXHNcU10qP1wqXC8vLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImNvbW1lbnQifSxoZWFkaW5nOntwYXR0ZXJuOi9eKD0rKVtePVxyXG5dLio/XDEvbSxpbnNpZGU6e3B1bmN0dWF0aW9uOi9ePSt8PSskLyxpbXBvcnRhbnQ6Ly4rL319LGVtcGhhc2lzOntwYXR0ZXJuOi8oJ3syLDV9KS4rP1wxLyxpbnNpZGU6eyJib2xkLWl0YWxpYyI6e3BhdHRlcm46LygnJycnJykuKz8oPz1cMSkvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6WyJib2xkIiwiaXRhbGljIl19LGJvbGQ6e3BhdHRlcm46LygnJycpW14nXSg/Oi4qP1teJ10pPyg/PVwxKS8sbG9va2JlaGluZDohMH0saXRhbGljOntwYXR0ZXJuOi8oJycpW14nXSg/Oi4qP1teJ10pPyg/PVwxKS8sbG9va2JlaGluZDohMH0scHVuY3R1YXRpb246L14nJyt8JycrJC99fSxocjp7cGF0dGVybjovXi17NCx9L20sYWxpYXM6InB1bmN0dWF0aW9uIn0sdXJsOlsvSVNCTiArKD86OTdbODldWyAtXT8pPyg/OlxkWyAtXT8pezl9W1xkeF1cYnwoPzpQTUlEfFJGQykgK1xkKy9pLC9cW1xbLis/XF1cXXxcWy4rP1xdL10sdmFyaWFibGU6Wy9fX1tBLVpdK19fLywvXHt7M30uKz9cfXszfS8sL1x7XHsuKz9cfVx9L10sc3ltYm9sOlsvXiNyZWRpcmVjdC9pbSwvfnszLDV9L10sInRhYmxlLXRhZyI6e3BhdHRlcm46LygoPzpefFt8IV0pW3whXSlbXnxcclxuXStcfCg/IVx8KS9tLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOnsidGFibGUtYmFyIjp7cGF0dGVybjovXHwkLyxhbGlhczoicHVuY3R1YXRpb24ifSxyZXN0OnQubGFuZ3VhZ2VzLm1hcmt1cC50YWcuaW5zaWRlfX0scHVuY3R1YXRpb246L14oPzpce1x8fFx8XH18XHwtfFsqIzo7IXxdKXxcfFx8fCEhL219KSx0Lmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoIndpa2kiLCJ0YWciLHtub3dpa2k6e3BhdHRlcm46Lzwobm93aWtpfHByZXxzb3VyY2UpXGJbXj5dKj5bXHNcU10qPzxcL1wxPi9pLGluc2lkZTp7dGFnOntwYXR0ZXJuOi88KD86bm93aWtpfHByZXxzb3VyY2UpXGJbXj5dKj58PFwvKD86bm93aWtpfHByZXxzb3VyY2UpPi9pLGluc2lkZTp0Lmxhbmd1YWdlcy5tYXJrdXAudGFnLmluc2lkZX19fX0pfXJldHVybiBIZn12YXIgV2YseHg7ZnVuY3Rpb24gVjYoKXtpZih4eClyZXR1cm4gV2Y7eHg9MSxXZj1lLGUuZGlzcGxheU5hbWU9IndvbGZyYW0iLGUuYWxpYXNlcz1bIm1hdGhlbWF0aWNhIiwid2wiLCJuYiJdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMud29sZnJhbT17Y29tbWVudDovXChcKig/OlwoXCooPzpbXipdfFwqKD8hXCkpKSpcKlwpfCg/IVwoXCopW1xzXFNdKSo/XCpcKS8sc3RyaW5nOntwYXR0ZXJuOi8iKD86XFwufFteIlxcXHJcbl0pKiIvLGdyZWVkeTohMH0sa2V5d29yZDovXGIoPzpBYnN8QWJzQXJnfEFjY3VyYWN5fEJsb2NrfERvfEZvcnxGdW5jdGlvbnxJZnxNYW5pcHVsYXRlfE1vZHVsZXxOZXN0fE5lc3RMaXN0fE5vbmV8UmV0dXJufFN3aXRjaHxUYWJsZXxXaGljaHxXaGlsZSlcYi8sY29udGV4dDp7cGF0dGVybjovXGJcdytgK1x3Ki8sYWxpYXM6ImNsYXNzLW5hbWUifSxibGFuazp7cGF0dGVybjovXGJcdytfXGIvLGFsaWFzOiJyZWdleCJ9LCJnbG9iYWwtdmFyaWFibGUiOntwYXR0ZXJuOi9cJFx3Ky8sYWxpYXM6InZhcmlhYmxlIn0sYm9vbGVhbjovXGIoPzpGYWxzZXxUcnVlKVxiLyxudW1iZXI6Lyg/OlxiKD89XGQpfFxCKD89XC4pKSg/OjBbYm9dKT8oPzooPzpcZHwweFtcZGEtZl0pW1xkYS1mXSooPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/aj9cYi9pLG9wZXJhdG9yOi9cL1wufDt8PVwufFxePXxcXjo9fDo9fDw8fD4+fDxcfHxcfD58Oj58XHwtPnwtPnw8LXxAQEB8QEB8QHxcL0B8PSE9fD09PXw9PXw9fFwrfC18XF58XFtcLy0rJT1cXT0/fCE9fFwqXCo/PT98XC9cLz89P3w8Wzw9Pl0/fD5bPT5dP3xbJnxefl0vLHB1bmN0dWF0aW9uOi9be31bXF07KCksLjpdL30sdC5sYW5ndWFnZXMubWF0aGVtYXRpY2E9dC5sYW5ndWFnZXMud29sZnJhbSx0Lmxhbmd1YWdlcy53bD10Lmxhbmd1YWdlcy53b2xmcmFtLHQubGFuZ3VhZ2VzLm5iPXQubGFuZ3VhZ2VzLndvbGZyYW19cmV0dXJuIFdmfXZhciBZZixSeDtmdW5jdGlvbiBINigpe2lmKFJ4KXJldHVybiBZZjtSeD0xLFlmPWUsZS5kaXNwbGF5TmFtZT0id3JlbiIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMud3Jlbj17Y29tbWVudDpbe3BhdHRlcm46L1wvXCooPzpbXiovXXxcKig/IVwvKXxcLyg/IVwqKXxcL1wqKD86W14qL118XCooPyFcLyl8XC8oPyFcKil8XC9cKig/OlteKi9dfFwqKD8hXC8pfFwvKD8hXCopKSpcKlwvKSpcKlwvKSpcKlwvLyxncmVlZHk6ITB9LHtwYXR0ZXJuOi8oXnxbXlxcOl0pXC9cLy4qLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH1dLCJ0cmlwbGUtcXVvdGVkLXN0cmluZyI6e3BhdHRlcm46LyIiIltcc1xTXSo/IiIiLyxncmVlZHk6ITAsYWxpYXM6InN0cmluZyJ9LCJzdHJpbmctbGl0ZXJhbCI6bnVsbCxoYXNoYmFuZzp7cGF0dGVybjovXiMhXC8uKy8sZ3JlZWR5OiEwLGFsaWFzOiJjb21tZW50In0sYXR0cmlidXRlOntwYXR0ZXJuOi8jIT9bIFx0XHUzMDAwXSpcdysvLGFsaWFzOiJrZXl3b3JkIn0sImNsYXNzLW5hbWUiOlt7cGF0dGVybjovKFxiY2xhc3NccyspXHcrLyxsb29rYmVoaW5kOiEwfSwvXGJbQS1aXVthLXpcZF9dKlxiL10sY29uc3RhbnQ6L1xiW0EtWl1bQS1aXGRfXSpcYi8sbnVsbDp7cGF0dGVybjovXGJudWxsXGIvLGFsaWFzOiJrZXl3b3JkIn0sa2V5d29yZDovXGIoPzphc3xicmVha3xjbGFzc3xjb25zdHJ1Y3R8Y29udGludWV8ZWxzZXxmb3J8Zm9yZWlnbnxpZnxpbXBvcnR8aW58aXN8cmV0dXJufHN0YXRpY3xzdXBlcnx0aGlzfHZhcnx3aGlsZSlcYi8sYm9vbGVhbjovXGIoPzpmYWxzZXx0cnVlKVxiLyxudW1iZXI6L1xiKD86MHhbXGRhLWZdK3xcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT8pXGIvaSxmdW5jdGlvbjovXGJbYS16X11cdyooPz1ccypbKHtdKS9pLG9wZXJhdG9yOi88PHw+PnxbPSE8Pl09P3wmJnxcfFx8fFstKyovJX5eJnw/Ol18XC57MiwzfS8scHVuY3R1YXRpb246L1tcW1xdKCl7fS4sO10vfSx0Lmxhbmd1YWdlcy53cmVuWyJzdHJpbmctbGl0ZXJhbCJdPXtwYXR0ZXJuOi8oXnxbXlxcIl0pIig/OlteXFwiJV18XFxbXHNcU118JSg/IVwoKXwlXCgoPzpbXigpXXxcKCg/OlteKCldfFwoW14pXSpcKSkqXCkpKlwpKSoiLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMCxpbnNpZGU6e2ludGVycG9sYXRpb246e3BhdHRlcm46LygoPzpefFteXFxdKSg/OlxcezJ9KSopJVwoKD86W14oKV18XCgoPzpbXigpXXxcKFteKV0qXCkpKlwpKSpcKS8sbG9va2JlaGluZDohMCxpbnNpZGU6e2V4cHJlc3Npb246e3BhdHRlcm46L14oJVwoKVtcc1xTXSsoPz1cKSQpLyxsb29rYmVoaW5kOiEwLGluc2lkZTp0Lmxhbmd1YWdlcy53cmVufSwiaW50ZXJwb2xhdGlvbi1wdW5jdHVhdGlvbiI6e3BhdHRlcm46L14lXCh8XCkkLyxhbGlhczoicHVuY3R1YXRpb24ifX19LHN0cmluZzovW1xzXFNdKy99fX1yZXR1cm4gWWZ9dmFyIEtmLF94O2Z1bmN0aW9uIFc2KCl7aWYoX3gpcmV0dXJuIEtmO194PTEsS2Y9ZSxlLmRpc3BsYXlOYW1lPSJ4ZW9yYSIsZS5hbGlhc2VzPVsieGVvcmFjdWJlIl07ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7bi5sYW5ndWFnZXMueGVvcmE9bi5sYW5ndWFnZXMuZXh0ZW5kKCJtYXJrdXAiLHtjb25zdGFudDp7cGF0dGVybjovXCQoPzpEb21haW5Db250ZW50c3xQYWdlUmVuZGVyRHVyYXRpb24pXCQvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1wkL319fSx2YXJpYWJsZTp7cGF0dGVybjovXCRAPyg/OiMrfFstKyp+PV5dKT9bXHcuXStcJC8saW5zaWRlOntwdW5jdHVhdGlvbjp7cGF0dGVybjovWyQuXS99LG9wZXJhdG9yOntwYXR0ZXJuOi8jK3xbLSsqfj1eQF0vfX19LCJmdW5jdGlvbi1pbmxpbmUiOntwYXR0ZXJuOi9cJEY6Wy1cdy5dK1w/Wy1cdy5dKyg/OiwoPzooPzpAWy0jXSpcdytcLltcdysuXVwuKikqXHwpKig/Oig/OltcdytdfFstIyoufl5dK1tcdytdfD1cUykoPzpbXiQ9XXw9K1tePV0pKj0qfCg/OkBbLSNdKlx3K1wuW1x3Ky5dXC4qKSsoPzooPzpbXHcrXXxbLSMqfl5dWy0jKi5+Xl0qW1x3K118PVxTKSg/OlteJD1dfD0rW149XSkqPSopPyk/KT9cJC8saW5zaWRlOnt2YXJpYWJsZTp7cGF0dGVybjovKD86Wyx8XSlAPyg/OiMrfFstKyp+PV5dKT9bXHcuXSsvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1ssLnxdL30sb3BlcmF0b3I6e3BhdHRlcm46LyMrfFstKyp+PV5AXS99fX0scHVuY3R1YXRpb246e3BhdHRlcm46L1wkXHc6fFskOj8uLHxdL319LGFsaWFzOiJmdW5jdGlvbiJ9LCJmdW5jdGlvbi1ibG9jayI6e3BhdHRlcm46L1wkWEY6XHtbLVx3Ll0rXD9bLVx3Ll0rKD86LCg/Oig/OkBbLSNdKlx3K1wuW1x3Ky5dXC4qKSpcfCkqKD86KD86W1x3K118Wy0jKi5+Xl0rW1x3K118PVxTKSg/OlteJD1dfD0rW149XSkqPSp8KD86QFstI10qXHcrXC5bXHcrLl1cLiopKyg/Oig/OltcdytdfFstIyp+Xl1bLSMqLn5eXSpbXHcrXXw9XFMpKD86W14kPV18PStbXj1dKSo9Kik/KT8pP1x9OlhGXCQvLGluc2lkZTp7cHVuY3R1YXRpb246e3BhdHRlcm46L1skOnt9Py4sfF0vfX0sYWxpYXM6ImZ1bmN0aW9uIn0sImRpcmVjdGl2ZS1pbmxpbmUiOntwYXR0ZXJuOi9cJFx3KD86I1xkK1wrPyk/KD86XFtbLVx3Ll0rXF0pPzpbLVwvXHcuXStcJC8saW5zaWRlOntwdW5jdHVhdGlvbjp7cGF0dGVybjovXCQoPzpcdzp8Qyg/OlxbfCNcZCkpP3xbOntbXF1dLyxpbnNpZGU6e3RhZzp7cGF0dGVybjovI1xkL319fX0sYWxpYXM6ImZ1bmN0aW9uIn0sImRpcmVjdGl2ZS1ibG9jay1vcGVuIjp7cGF0dGVybjovXCRcdys6XHt8XCRcdyg/OiNcZCtcKz8pPyg/OlxbWy1cdy5dK1xdKT86Wy1cdy5dKzpceyg/OiFbQS1aXSspPy8saW5zaWRlOntwdW5jdHVhdGlvbjp7cGF0dGVybjovXCQoPzpcdzp8Qyg/OlxbfCNcZCkpP3xbOntbXF1dLyxpbnNpZGU6e3RhZzp7cGF0dGVybjovI1xkL319fSxhdHRyaWJ1dGU6e3BhdHRlcm46LyFbQS1aXSskLyxpbnNpZGU6e3B1bmN0dWF0aW9uOntwYXR0ZXJuOi8hL319LGFsaWFzOiJrZXl3b3JkIn19LGFsaWFzOiJmdW5jdGlvbiJ9LCJkaXJlY3RpdmUtYmxvY2stc2VwYXJhdG9yIjp7cGF0dGVybjovXH06Wy1cdy5dKzpcey8saW5zaWRlOntwdW5jdHVhdGlvbjp7cGF0dGVybjovWzp7fV0vfX0sYWxpYXM6ImZ1bmN0aW9uIn0sImRpcmVjdGl2ZS1ibG9jay1jbG9zZSI6e3BhdHRlcm46L1x9OlstXHcuXStcJC8saW5zaWRlOntwdW5jdHVhdGlvbjp7cGF0dGVybjovWzp7fSRdL319LGFsaWFzOiJmdW5jdGlvbiJ9fSksbi5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJpbnNpZGUiLCJwdW5jdHVhdGlvbiIse3ZhcmlhYmxlOm4ubGFuZ3VhZ2VzLnhlb3JhWyJmdW5jdGlvbi1pbmxpbmUiXS5pbnNpZGUudmFyaWFibGV9LG4ubGFuZ3VhZ2VzLnhlb3JhWyJmdW5jdGlvbi1ibG9jayJdKSxuLmxhbmd1YWdlcy54ZW9yYWN1YmU9bi5sYW5ndWFnZXMueGVvcmF9KSh0KX1yZXR1cm4gS2Z9dmFyIFhmLEl4O2Z1bmN0aW9uIFk2KCl7aWYoSXgpcmV0dXJuIFhmO0l4PTEsWGY9ZSxlLmRpc3BsYXlOYW1lPSJ4bWxEb2MiLGUuYWxpYXNlcz1bXTtmdW5jdGlvbiBlKHQpeyhmdW5jdGlvbihuKXtmdW5jdGlvbiByKHMsbCl7bi5sYW5ndWFnZXNbc10mJm4ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZShzLCJjb21tZW50Iix7ImRvYy1jb21tZW50IjpsfSl9dmFyIGE9bi5sYW5ndWFnZXMubWFya3VwLnRhZyxpPXtwYXR0ZXJuOi9cL1wvXC8uKi8sZ3JlZWR5OiEwLGFsaWFzOiJjb21tZW50IixpbnNpZGU6e3RhZzphfX0sbz17cGF0dGVybjovJycnLiovLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCIsaW5zaWRlOnt0YWc6YX19O3IoImNzaGFycCIsaSkscigiZnNoYXJwIixpKSxyKCJ2Ym5ldCIsbyl9KSh0KX1yZXR1cm4gWGZ9dmFyIFpmLE54O2Z1bmN0aW9uIEs2KCl7aWYoTngpcmV0dXJuIFpmO054PTEsWmY9ZSxlLmRpc3BsYXlOYW1lPSJ4b2pvIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXt0Lmxhbmd1YWdlcy54b2pvPXtjb21tZW50OntwYXR0ZXJuOi8oPzonfFwvXC98UmVtXGIpLisvaSxncmVlZHk6ITB9LHN0cmluZzp7cGF0dGVybjovIig/OiIifFteIl0pKiIvLGdyZWVkeTohMH0sbnVtYmVyOlsvKD86XGJcZCsoPzpcLlxkKik/fFxCXC5cZCspKD86RVsrLV0/XGQrKT8vaSwvJltiY2hvdV1bYS16XGRdKy9pXSxkaXJlY3RpdmU6e3BhdHRlcm46LyMoPzpFbHNlfEVsc2VJZnxFbmRpZnxJZnxQcmFnbWEpXGIvaSxhbGlhczoicHJvcGVydHkifSxrZXl3b3JkOi9cYig/OkFkZEhhbmRsZXJ8QXBwfEFycmF5fEFzKD86c2lnbnMpP3xBdXRvfEJvb2xlYW58QnJlYWt8QnkoPzpSZWZ8VmFsKXxCeXRlfENhbGx8Q2FzZXxDYXRjaHxDRlN0cmluZ1JlZnxDR0Zsb2F0fENsYXNzfENvbG9yfENvbnN0fENvbnRpbnVlfENTdHJpbmd8Q3VycmVuY3l8Q3VycmVudE1ldGhvZE5hbWV8RGVjbGFyZXxEZWxlZ2F0ZXxEaW18RG8oPzp1YmxlfHduVG8pP3xFYWNofEVsc2UoPzpJZik/fEVuZHxFbnVtZXJhdGlvbnxFdmVudHxFeGNlcHRpb258RXhpdHxFeHRlbmRzfEZhbHNlfEZpbmFsbHl8Rm9yfEZ1bmN0aW9ufEdldHxHZXRUeXBlSW5mb3xHbG9iYWx8R09UT3xJZnxJbXBsZW1lbnRzfElufEluaGVyaXRzfEludCg/Ojh8MTZ8MzJ8NjR8ZWdlcnxlcmZhY2UpP3xMaWJ8TG9vcHxNZXxNb2R1bGV8TmV4dHxOaWx8T2JqZWN0fE9wdGlvbmFsfE9TVHlwZXxQYXJhbUFycmF5fFByaXZhdGV8UHJvcGVydHl8UHJvdGVjdGVkfFBTdHJpbmd8UHRyfFJhaXNlKD86RXZlbnQpP3xSZURpbXxSZW1vdmVIYW5kbGVyfFJldHVybnxTZWxlY3QoPzpvcik/fFNlbGZ8U2V0fFNoYXJlZHxTaG9ydHxTaW5nbGV8U29mdHxTdGF0aWN8U3RlcHxTdHJpbmd8U3VifFN1cGVyfFRleHR8VGhlbnxUb3xUcnVlfFRyeXxVYm91bmR8VUludCg/Ojh8MTZ8MzJ8NjR8ZWdlcik/fFVudGlsfFVzaW5nfFZhcig/OmlhbnQpP3xXZW5kfFdoaWxlfFdpbmRvd1B0cnxXU3RyaW5nKVxiL2ksb3BlcmF0b3I6LzxbPT5dP3w+PT98WytcLSpcL1xcXj1dfFxiKD86QWRkcmVzc09mfEFuZHxDdHlwZXxJc0E/fE1vZHxOZXd8Tm90fE9yfFdlYWtBZGRyZXNzT2Z8WG9yKVxiL2kscHVuY3R1YXRpb246L1suLDs6KCldL319cmV0dXJuIFpmfXZhciBRZixDeDtmdW5jdGlvbiBYNigpe2lmKEN4KXJldHVybiBRZjtDeD0xLFFmPWUsZS5kaXNwbGF5TmFtZT0ieHF1ZXJ5IixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7bi5sYW5ndWFnZXMueHF1ZXJ5PW4ubGFuZ3VhZ2VzLmV4dGVuZCgibWFya3VwIix7InhxdWVyeS1jb21tZW50Ijp7cGF0dGVybjovXCg6W1xzXFNdKj86XCkvLGdyZWVkeTohMCxhbGlhczoiY29tbWVudCJ9LHN0cmluZzp7cGF0dGVybjovKFsiJ10pKD86XDFcMXwoPyFcMSlbXHNcU10pKlwxLyxncmVlZHk6ITB9LGV4dGVuc2lvbjp7cGF0dGVybjovXCgjLis/I1wpLyxhbGlhczoic3ltYm9sIn0sdmFyaWFibGU6L1wkWy1cdzpdKy8sYXhpczp7cGF0dGVybjovKF58W14tXSkoPzphbmNlc3Rvcig/Oi1vci1zZWxmKT98YXR0cmlidXRlfGNoaWxkfGRlc2NlbmRhbnQoPzotb3Itc2VsZik/fGZvbGxvd2luZyg/Oi1zaWJsaW5nKT98cGFyZW50fHByZWNlZGluZyg/Oi1zaWJsaW5nKT98c2VsZikoPz06OikvLGxvb2tiZWhpbmQ6ITAsYWxpYXM6Im9wZXJhdG9yIn0sImtleXdvcmQtb3BlcmF0b3IiOntwYXR0ZXJuOi8oXnxbXjotXSlcYig/OmFuZHxjYXN0YWJsZSBhc3xkaXZ8ZXF8ZXhjZXB0fGdlfGd0fGlkaXZ8aW5zdGFuY2Ugb2Z8aW50ZXJzZWN0fGlzfGxlfGx0fG1vZHxuZXxvcnx1bmlvbilcYig/PSR8W146LV0pLyxsb29rYmVoaW5kOiEwLGFsaWFzOiJvcGVyYXRvciJ9LGtleXdvcmQ6e3BhdHRlcm46LyhefFteOi1dKVxiKD86YXN8YXNjZW5kaW5nfGF0fGJhc2UtdXJpfGJvdW5kYXJ5LXNwYWNlfGNhc2V8Y2FzdCBhc3xjb2xsYXRpb258Y29uc3RydWN0aW9ufGNvcHktbmFtZXNwYWNlc3xkZWNsYXJlfGRlZmF1bHR8ZGVzY2VuZGluZ3xlbHNlfGVtcHR5ICg/OmdyZWF0ZXN0fGxlYXN0KXxlbmNvZGluZ3xldmVyeXxleHRlcm5hbHxmb3J8ZnVuY3Rpb258aWZ8aW1wb3J0fGlufGluaGVyaXR8bGF4fGxldHxtYXB8bW9kdWxlfG5hbWVzcGFjZXxuby1pbmhlcml0fG5vLXByZXNlcnZlfG9wdGlvbnxvcmRlcig/OiBieXxlZHxpbmcpP3xwcmVzZXJ2ZXxyZXR1cm58c2F0aXNmaWVzfHNjaGVtYXxzb21lfHN0YWJsZXxzdHJpY3R8c3RyaXB8dGhlbnx0b3x0cmVhdCBhc3x0eXBlc3dpdGNofHVub3JkZXJlZHx2YWxpZGF0ZXx2YXJpYWJsZXx2ZXJzaW9ufHdoZXJlfHhxdWVyeSlcYig/PSR8W146LV0pLyxsb29rYmVoaW5kOiEwfSxmdW5jdGlvbjovW1x3LV0rKD86Oltcdy1dKykqKD89XHMqXCgpLywieHF1ZXJ5LWVsZW1lbnQiOntwYXR0ZXJuOi8oZWxlbWVudFxzKylbXHctXSsoPzo6W1x3LV0rKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6InRhZyJ9LCJ4cXVlcnktYXR0cmlidXRlIjp7cGF0dGVybjovKGF0dHJpYnV0ZVxzKylbXHctXSsoPzo6W1x3LV0rKSovLGxvb2tiZWhpbmQ6ITAsYWxpYXM6ImF0dHItbmFtZSJ9LGJ1aWx0aW46e3BhdHRlcm46LyhefFteOi1dKVxiKD86YXR0cmlidXRlfGNvbW1lbnR8ZG9jdW1lbnR8ZWxlbWVudHxwcm9jZXNzaW5nLWluc3RydWN0aW9ufHRleHR8eHM6KD86RU5USVRJRVN8RU5USVRZfElEfElEUkVGUz98TkNOYW1lfE5NVE9LRU5TP3xOT1RBVElPTnxOYW1lfFFOYW1lfGFueUF0b21pY1R5cGV8YW55VHlwZXxhbnlVUkl8YmFzZTY0QmluYXJ5fGJvb2xlYW58Ynl0ZXxkYXRlfGRhdGVUaW1lfGRheVRpbWVEdXJhdGlvbnxkZWNpbWFsfGRvdWJsZXxkdXJhdGlvbnxmbG9hdHxnRGF5fGdNb250aHxnTW9udGhEYXl8Z1llYXJ8Z1llYXJNb250aHxoZXhCaW5hcnl8aW50fGludGVnZXJ8bGFuZ3VhZ2V8bG9uZ3xuZWdhdGl2ZUludGVnZXJ8bm9uTmVnYXRpdmVJbnRlZ2VyfG5vblBvc2l0aXZlSW50ZWdlcnxub3JtYWxpemVkU3RyaW5nfHBvc2l0aXZlSW50ZWdlcnxzaG9ydHxzdHJpbmd8dGltZXx0b2tlbnx1bnNpZ25lZCg/OkJ5dGV8SW50fExvbmd8U2hvcnQpfHVudHlwZWQoPzpBdG9taWMpP3x5ZWFyTW9udGhEdXJhdGlvbikpXGIoPz0kfFteOi1dKS8sbG9va2JlaGluZDohMH0sbnVtYmVyOi9cYlxkKyg/OlwuXGQrKT8oPzpFWystXT9cZCspPy8sb3BlcmF0b3I6Wy9bKyo9P3xAXXxcLlwuP3w6PXwhPXw8Wz08XT98Pls9Pl0/Lyx7cGF0dGVybjovKFxzKS0oPz1ccykvLGxvb2tiZWhpbmQ6ITB9XSxwdW5jdHVhdGlvbjovW1tcXSgpe30sOzovXS99KSxuLmxhbmd1YWdlcy54cXVlcnkudGFnLnBhdHRlcm49LzxcLz8oPyFcZClbXlxzPlwvPSQ8JV0rKD86XHMrW15ccz5cLz1dKyg/Oj0oPzooInwnKSg/OlxcW1xzXFNdfFx7KD8hXHspKD86XHsoPzpce1tee31dKlx9fFtee31dKSpcfXxbXnt9XSkrXH18KD8hXDEpW15cXF0pKlwxfFteXHMnIj49XSspKT8pKlxzKlwvPz4vLG4ubGFuZ3VhZ2VzLnhxdWVyeS50YWcuaW5zaWRlWyJhdHRyLXZhbHVlIl0ucGF0dGVybj0vPSg/OigifCcpKD86XFxbXHNcU118XHsoPyFceykoPzpceyg/Olx7W157fV0qXH18W157fV0pKlx9fFtee31dKStcfXwoPyFcMSlbXlxcXSkqXDF8W15ccyciPj1dKykvLG4ubGFuZ3VhZ2VzLnhxdWVyeS50YWcuaW5zaWRlWyJhdHRyLXZhbHVlIl0uaW5zaWRlLnB1bmN0dWF0aW9uPS9ePSJ8IiQvLG4ubGFuZ3VhZ2VzLnhxdWVyeS50YWcuaW5zaWRlWyJhdHRyLXZhbHVlIl0uaW5zaWRlLmV4cHJlc3Npb249e3BhdHRlcm46L1x7KD8hXHspKD86XHsoPzpce1tee31dKlx9fFtee31dKSpcfXxbXnt9XSkrXH0vLGluc2lkZTpuLmxhbmd1YWdlcy54cXVlcnksYWxpYXM6Imxhbmd1YWdlLXhxdWVyeSJ9O3ZhciByPWZ1bmN0aW9uKGkpe3JldHVybiB0eXBlb2YgaT09InN0cmluZyI/aTp0eXBlb2YgaS5jb250ZW50PT0ic3RyaW5nIj9pLmNvbnRlbnQ6aS5jb250ZW50Lm1hcChyKS5qb2luKCIiKX0sYT1mdW5jdGlvbihpKXtmb3IodmFyIG89W10scz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgbD1pW3NdLHU9ITE7aWYodHlwZW9mIGwhPSJzdHJpbmciJiYobC50eXBlPT09InRhZyImJmwuY29udGVudFswXSYmbC5jb250ZW50WzBdLnR5cGU9PT0idGFnIj9sLmNvbnRlbnRbMF0uY29udGVudFswXS5jb250ZW50PT09IjwvIj9vLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdLnRhZ05hbWU9PT1yKGwuY29udGVudFswXS5jb250ZW50WzFdKSYmby5wb3AoKTpsLmNvbnRlbnRbbC5jb250ZW50Lmxlbmd0aC0xXS5jb250ZW50PT09Ii8+Inx8by5wdXNoKHt0YWdOYW1lOnIobC5jb250ZW50WzBdLmNvbnRlbnRbMV0pLG9wZW5lZEJyYWNlczowfSk6by5sZW5ndGg+MCYmbC50eXBlPT09InB1bmN0dWF0aW9uIiYmbC5jb250ZW50PT09InsiJiYoIWlbcysxXXx8aVtzKzFdLnR5cGUhPT0icHVuY3R1YXRpb24ifHxpW3MrMV0uY29udGVudCE9PSJ7IikmJighaVtzLTFdfHxpW3MtMV0udHlwZSE9PSJwbGFpbi10ZXh0Inx8aVtzLTFdLmNvbnRlbnQhPT0ieyIpP29bby5sZW5ndGgtMV0ub3BlbmVkQnJhY2VzKys6by5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXS5vcGVuZWRCcmFjZXM+MCYmbC50eXBlPT09InB1bmN0dWF0aW9uIiYmbC5jb250ZW50PT09In0iP29bby5sZW5ndGgtMV0ub3BlbmVkQnJhY2VzLS06bC50eXBlIT09ImNvbW1lbnQiJiYodT0hMCkpLCh1fHx0eXBlb2YgbD09InN0cmluZyIpJiZvLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdLm9wZW5lZEJyYWNlcz09PTApe3ZhciBjPXIobCk7czxpLmxlbmd0aC0xJiYodHlwZW9mIGlbcysxXT09InN0cmluZyJ8fGlbcysxXS50eXBlPT09InBsYWluLXRleHQiKSYmKGMrPXIoaVtzKzFdKSxpLnNwbGljZShzKzEsMSkpLHM+MCYmKHR5cGVvZiBpW3MtMV09PSJzdHJpbmcifHxpW3MtMV0udHlwZT09PSJwbGFpbi10ZXh0IikmJihjPXIoaVtzLTFdKStjLGkuc3BsaWNlKHMtMSwxKSxzLS0pLC9eXHMrJC8udGVzdChjKT9pW3NdPWM6aVtzXT1uZXcgbi5Ub2tlbigicGxhaW4tdGV4dCIsYyxudWxsLGMpfWwuY29udGVudCYmdHlwZW9mIGwuY29udGVudCE9InN0cmluZyImJmEobC5jb250ZW50KX19O24uaG9va3MuYWRkKCJhZnRlci10b2tlbml6ZSIsZnVuY3Rpb24oaSl7aS5sYW5ndWFnZT09PSJ4cXVlcnkiJiZhKGkudG9rZW5zKX0pfSkodCl9cmV0dXJuIFFmfXZhciBKZixPeDtmdW5jdGlvbiBaNigpe2lmKE94KXJldHVybiBKZjtPeD0xLEpmPWUsZS5kaXNwbGF5TmFtZT0ieWFuZyIsZS5hbGlhc2VzPVtdO2Z1bmN0aW9uIGUodCl7dC5sYW5ndWFnZXMueWFuZz17Y29tbWVudDovXC9cKltcc1xTXSo/XCpcL3xcL1wvLiovLHN0cmluZzp7cGF0dGVybjovIig/OlteXFwiXXxcXC4pKiJ8J1teJ10qJy8sZ3JlZWR5OiEwfSxrZXl3b3JkOntwYXR0ZXJuOi8oXnxbe307XHJcbl1bIFx0XSopW2Etel9dW1x3Li1dKi9pLGxvb2tiZWhpbmQ6ITB9LG5hbWVzcGFjZTp7cGF0dGVybjovKFxzKVthLXpfXVtcdy4tXSooPz06KS9pLGxvb2tiZWhpbmQ6ITB9LGJvb2xlYW46L1xiKD86ZmFsc2V8dHJ1ZSlcYi8sb3BlcmF0b3I6L1wrLyxwdW5jdHVhdGlvbjovW3t9OzpdL319cmV0dXJuIEpmfXZhciBlbSxMeDtmdW5jdGlvbiBRNigpe2lmKEx4KXJldHVybiBlbTtMeD0xLGVtPWUsZS5kaXNwbGF5TmFtZT0iemlnIixlLmFsaWFzZXM9W107ZnVuY3Rpb24gZSh0KXsoZnVuY3Rpb24obil7ZnVuY3Rpb24gcihjKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gY319dmFyIGE9L1xiKD86YWxpZ258YWxsb3d6ZXJvfGFuZHxhbnlmcmFtZXxhbnl0eXBlfGFzbXxhc3luY3xhd2FpdHxicmVha3xjYW5jZWx8Y2F0Y2h8Y29tcHRpbWV8Y29uc3R8Y29udGludWV8ZGVmZXJ8ZWxzZXxlbnVtfGVycmRlZmVyfGVycm9yfGV4cG9ydHxleHRlcm58Zm58Zm9yfGlmfGlubGluZXxsaW5rc2VjdGlvbnxuYWtlZGNjfG5vYWxpYXN8bm9zdXNwZW5kfG51bGx8b3J8b3JlbHNlfHBhY2tlZHxwcm9taXNlfHB1YnxyZXN1bWV8cmV0dXJufHN0ZGNhbGxjY3xzdHJ1Y3R8c3VzcGVuZHxzd2l0Y2h8dGVzdHx0aHJlYWRsb2NhbHx0cnl8dW5kZWZpbmVkfHVuaW9ufHVucmVhY2hhYmxlfHVzaW5nbmFtZXNwYWNlfHZhcnx2b2xhdGlsZXx3aGlsZSlcYi8saT0iXFxiKD8hIithLnNvdXJjZSsiKSg/IVxcZClcXHcrXFxiIixvPS9hbGlnblxzKlwoKD86W14oKV18XChbXigpXSpcKSkqXCkvLnNvdXJjZSxzPS8oPzpcP3xcYnByb21pc2UtPnwoPzpcW1teW1xdXSpcXXxcKig/IVwqKXxcKlwqKSg/OlxzKjxBTElHTj58XHMqY29uc3RcYnxccyp2b2xhdGlsZVxifFxzKmFsbG93emVyb1xiKSopLy5zb3VyY2UucmVwbGFjZSgvPEFMSUdOPi9nLHIobykpLGw9Lyg/OlxicHJvbWlzZVxifCg/OlxiZXJyb3JcLik/PElEPig/OlwuPElEPikqKD8hXHMrPElEPikpLy5zb3VyY2UucmVwbGFjZSgvPElEPi9nLHIoaSkpLHU9Iig/IVxccykoPzohP1xccyooPzoiK3MrIlxccyopKiIrbCsiKSsiO24ubGFuZ3VhZ2VzLnppZz17Y29tbWVudDpbe3BhdHRlcm46L1wvXC9bLyFdLiovLGFsaWFzOiJkb2MtY29tbWVudCJ9LC9cL3syfS4qL10sc3RyaW5nOlt7cGF0dGVybjovKF58W15cXEBdKWM/Iig/OlteIlxcXHJcbl18XFwuKSoiLyxsb29rYmVoaW5kOiEwLGdyZWVkeTohMH0se3BhdHRlcm46LyhbXHJcbl0pKFsgXHRdK2M/XFx7Mn0pLiooPzooPzpcclxuP3xcbilcMi4qKSovLGxvb2tiZWhpbmQ6ITAsZ3JlZWR5OiEwfV0sY2hhcjp7cGF0dGVybjovKF58W15cXF0pJyg/OlteJ1xcXHJcbl18W1x1RDgwMC1cdURGRkZdezJ9fFxcKD86Lnx4W2EtZkEtRlxkXXsyfXx1XHtbYS1mQS1GXGRdezEsNn1cfSkpJy8sbG9va2JlaGluZDohMCxncmVlZHk6ITB9LGJ1aWx0aW46L1xCQCg/IVxkKVx3Kyg/PVxzKlwoKS8sbGFiZWw6e3BhdHRlcm46LyhcYig/OmJyZWFrfGNvbnRpbnVlKVxzKjpccyopXHcrXGJ8XGIoPyFcZClcdytcYig/PVxzKjpccyooPzpce3x3aGlsZVxiKSkvLGxvb2tiZWhpbmQ6ITB9LCJjbGFzcy1uYW1lIjpbL1xiKD8hXGQpXHcrKD89XHMqPVxzKig/Oig/OmV4dGVybnxwYWNrZWQpXHMrKT8oPzplbnVtfHN0cnVjdHx1bmlvbilccypbKHtdKS8se3BhdHRlcm46UmVnRXhwKC8oOlxzKik8VFlQRT4oPz1ccyooPzo8QUxJR04+XHMqKT9bPTssKV0pfDxUWVBFPig/PVxzKig/OjxBTElHTj5ccyopP1x7KS8uc291cmNlLnJlcGxhY2UoLzxUWVBFPi9nLHIodSkpLnJlcGxhY2UoLzxBTElHTj4vZyxyKG8pKSksbG9va2JlaGluZDohMCxpbnNpZGU6bnVsbH0se3BhdHRlcm46UmVnRXhwKC8oXClccyopPFRZUEU+KD89XHMqKD86PEFMSUdOPlxzKik/OykvLnNvdXJjZS5yZXBsYWNlKC88VFlQRT4vZyxyKHUpKS5yZXBsYWNlKC88QUxJR04+L2cscihvKSkpLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOm51bGx9XSwiYnVpbHRpbi10eXBlIjp7cGF0dGVybjovXGIoPzphbnllcnJvcnxib29sfGNfdT8oPzppbnR8bG9uZ3xsb25nbG9uZ3xzaG9ydCl8Y19sb25nZG91YmxlfGNfdm9pZHxjb21wdGltZV8oPzpmbG9hdHxpbnQpfGYoPzoxNnwzMnw2NHwxMjgpfFtpdV0oPzo4fDE2fDMyfDY0fDEyOHxzaXplKXxub3JldHVybnx0eXBlfHZvaWQpXGIvLGFsaWFzOiJrZXl3b3JkIn0sa2V5d29yZDphLGZ1bmN0aW9uOi9cYig/IVxkKVx3Kyg/PVxzKlwoKS8sbnVtYmVyOi9cYig/OjBiWzAxXSt8MG9bMC03XSt8MHhbYS1mQS1GXGRdKyg/OlwuW2EtZkEtRlxkXSopPyg/OltwUF1bKy1dP1thLWZBLUZcZF0rKT98XGQrKD86XC5cZCopPyg/OltlRV1bKy1dP1xkKyk/KVxiLyxib29sZWFuOi9cYig/OmZhbHNlfHRydWUpXGIvLG9wZXJhdG9yOi9cLlsqP118XC57MiwzfXxbLT1dPnxcKlwqfFwrXCt8XHxcfHwoPzo8PHw+PnxbLSsqXSV8Wy0rKi8lXiZ8PD4hPV0pPT98Wz9+XS8scHVuY3R1YXRpb246L1suOiw7KCl7fVtcXV0vfSxuLmxhbmd1YWdlcy56aWdbImNsYXNzLW5hbWUiXS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2MuaW5zaWRlPT09bnVsbCYmKGMuaW5zaWRlPW4ubGFuZ3VhZ2VzLnppZyl9KX0pKHQpfXJldHVybiBlbX12YXIgdz1vNCxKNj13O3cucmVnaXN0ZXIoYjQoKSk7dy5yZWdpc3Rlcih5NCgpKTt3LnJlZ2lzdGVyKHY0KCkpO3cucmVnaXN0ZXIoRTQoKSk7dy5yZWdpc3RlcihTNCgpKTt3LnJlZ2lzdGVyKHc0KCkpO3cucmVnaXN0ZXIoVDQoKSk7dy5yZWdpc3RlcihrNCgpKTt3LnJlZ2lzdGVyKEE0KCkpO3cucmVnaXN0ZXIoeDQoKSk7dy5yZWdpc3RlcihSNCgpKTt3LnJlZ2lzdGVyKF80KCkpO3cucmVnaXN0ZXIoSTQoKSk7dy5yZWdpc3RlcihONCgpKTt3LnJlZ2lzdGVyKEM0KCkpO3cucmVnaXN0ZXIoTzQoKSk7dy5yZWdpc3RlcihMNCgpKTt3LnJlZ2lzdGVyKEQ0KCkpO3cucmVnaXN0ZXIoTTQoKSk7dy5yZWdpc3RlcihQNCgpKTt3LnJlZ2lzdGVyKEY0KCkpO3cucmVnaXN0ZXIoVTQoKSk7dy5yZWdpc3RlcihqQygpKTt3LnJlZ2lzdGVyKEdDKCkpO3cucmVnaXN0ZXIoQjQoKSk7dy5yZWdpc3RlcigkNCgpKTt3LnJlZ2lzdGVyKHo0KCkpO3cucmVnaXN0ZXIoajQoKSk7dy5yZWdpc3RlcihHNCgpKTt3LnJlZ2lzdGVyKHE0KCkpO3cucmVnaXN0ZXIoVjQoKSk7dy5yZWdpc3RlcihINCgpKTt3LnJlZ2lzdGVyKFc0KCkpO3cucmVnaXN0ZXIoWTQoKSk7dy5yZWdpc3RlcihFcigpKTt3LnJlZ2lzdGVyKEs0KCkpO3cucmVnaXN0ZXIoWDQoKSk7dy5yZWdpc3RlcihaNCgpKTt3LnJlZ2lzdGVyKFE0KCkpO3cucmVnaXN0ZXIoSjQoKSk7dy5yZWdpc3RlcihlSCgpKTt3LnJlZ2lzdGVyKHRIKCkpO3cucmVnaXN0ZXIobkgoKSk7dy5yZWdpc3RlcihySCgpKTt3LnJlZ2lzdGVyKExiKCkpO3cucmVnaXN0ZXIoYUgoKSk7dy5yZWdpc3RlcihXcygpKTt3LnJlZ2lzdGVyKGlIKCkpO3cucmVnaXN0ZXIob0goKSk7dy5yZWdpc3RlcihzSCgpKTt3LnJlZ2lzdGVyKGxIKCkpO3cucmVnaXN0ZXIodUgoKSk7dy5yZWdpc3RlcihjSCgpKTt3LnJlZ2lzdGVyKGRIKCkpO3cucmVnaXN0ZXIocEgoKSk7dy5yZWdpc3RlcihmSCgpKTt3LnJlZ2lzdGVyKG1IKCkpO3cucmVnaXN0ZXIoZ0goKSk7dy5yZWdpc3RlcihoSCgpKTt3LnJlZ2lzdGVyKGJIKCkpO3cucmVnaXN0ZXIoeUgoKSk7dy5yZWdpc3Rlcih2SCgpKTt3LnJlZ2lzdGVyKEVIKCkpO3cucmVnaXN0ZXIoU0goKSk7dy5yZWdpc3Rlcih3SCgpKTt3LnJlZ2lzdGVyKFRIKCkpO3cucmVnaXN0ZXIoa0goKSk7dy5yZWdpc3RlcihBSCgpKTt3LnJlZ2lzdGVyKHhIKCkpO3cucmVnaXN0ZXIoUkgoKSk7dy5yZWdpc3RlcihfSCgpKTt3LnJlZ2lzdGVyKElIKCkpO3cucmVnaXN0ZXIoTkgoKSk7dy5yZWdpc3RlcihDSCgpKTt3LnJlZ2lzdGVyKE9IKCkpO3cucmVnaXN0ZXIoTEgoKSk7dy5yZWdpc3RlcihESCgpKTt3LnJlZ2lzdGVyKE1IKCkpO3cucmVnaXN0ZXIoUEgoKSk7dy5yZWdpc3RlcihGSCgpKTt3LnJlZ2lzdGVyKFVIKCkpO3cucmVnaXN0ZXIoQkgoKSk7dy5yZWdpc3RlcigkSCgpKTt3LnJlZ2lzdGVyKHpIKCkpO3cucmVnaXN0ZXIoakgoKSk7dy5yZWdpc3RlcihHSCgpKTt3LnJlZ2lzdGVyKHFIKCkpO3cucmVnaXN0ZXIoVkgoKSk7dy5yZWdpc3RlcihISCgpKTt3LnJlZ2lzdGVyKFdIKCkpO3cucmVnaXN0ZXIoWUgoKSk7dy5yZWdpc3RlcihLSCgpKTt3LnJlZ2lzdGVyKFhIKCkpO3cucmVnaXN0ZXIoWkgoKSk7dy5yZWdpc3RlcihEYigpKTt3LnJlZ2lzdGVyKFFIKCkpO3cucmVnaXN0ZXIoSkgoKSk7dy5yZWdpc3RlcihlNSgpKTt3LnJlZ2lzdGVyKHQ1KCkpO3cucmVnaXN0ZXIobjUoKSk7dy5yZWdpc3RlcihyNSgpKTt3LnJlZ2lzdGVyKGE1KCkpO3cucmVnaXN0ZXIoaTUoKSk7dy5yZWdpc3RlcihvNSgpKTt3LnJlZ2lzdGVyKHM1KCkpO3cucmVnaXN0ZXIobDUoKSk7dy5yZWdpc3Rlcih1NSgpKTt3LnJlZ2lzdGVyKGM1KCkpO3cucmVnaXN0ZXIoZDUoKSk7dy5yZWdpc3RlcihwNSgpKTt3LnJlZ2lzdGVyKGY1KCkpO3cucmVnaXN0ZXIobTUoKSk7dy5yZWdpc3RlcihNYigpKTt3LnJlZ2lzdGVyKGc1KCkpO3cucmVnaXN0ZXIoS3MoKSk7dy5yZWdpc3RlcihoNSgpKTt3LnJlZ2lzdGVyKGI1KCkpO3cucmVnaXN0ZXIoeTUoKSk7dy5yZWdpc3Rlcih2NSgpKTt3LnJlZ2lzdGVyKEU1KCkpO3cucmVnaXN0ZXIoUzUoKSk7dy5yZWdpc3Rlcih3NSgpKTt3LnJlZ2lzdGVyKEZiKCkpO3cucmVnaXN0ZXIoVDUoKSk7dy5yZWdpc3RlcihrNSgpKTt3LnJlZ2lzdGVyKEE1KCkpO3cucmVnaXN0ZXIoVkMoKSk7dy5yZWdpc3Rlcih4NSgpKTt3LnJlZ2lzdGVyKFI1KCkpO3cucmVnaXN0ZXIoXzUoKSk7dy5yZWdpc3RlcihJNSgpKTt3LnJlZ2lzdGVyKE41KCkpO3cucmVnaXN0ZXIoQzUoKSk7dy5yZWdpc3RlcihPNSgpKTt3LnJlZ2lzdGVyKEw1KCkpO3cucmVnaXN0ZXIoRDUoKSk7dy5yZWdpc3RlcihNNSgpKTt3LnJlZ2lzdGVyKFA1KCkpO3cucmVnaXN0ZXIoRjUoKSk7dy5yZWdpc3RlcihVNSgpKTt3LnJlZ2lzdGVyKEI1KCkpO3cucmVnaXN0ZXIoJDUoKSk7dy5yZWdpc3Rlcih6NSgpKTt3LnJlZ2lzdGVyKHFDKCkpO3cucmVnaXN0ZXIoajUoKSk7dy5yZWdpc3RlcihHNSgpKTt3LnJlZ2lzdGVyKHE1KCkpO3cucmVnaXN0ZXIobHQoKSk7dy5yZWdpc3RlcihWNSgpKTt3LnJlZ2lzdGVyKEg1KCkpO3cucmVnaXN0ZXIoVzUoKSk7dy5yZWdpc3RlcihZNSgpKTt3LnJlZ2lzdGVyKEs1KCkpO3cucmVnaXN0ZXIoWDUoKSk7dy5yZWdpc3RlcihaNSgpKTt3LnJlZ2lzdGVyKFE1KCkpO3cucmVnaXN0ZXIoSjUoKSk7dy5yZWdpc3RlcihlVygpKTt3LnJlZ2lzdGVyKHRXKCkpO3cucmVnaXN0ZXIoblcoKSk7dy5yZWdpc3RlcihyVygpKTt3LnJlZ2lzdGVyKGFXKCkpO3cucmVnaXN0ZXIoaVcoKSk7dy5yZWdpc3RlcihvVygpKTt3LnJlZ2lzdGVyKHNXKCkpO3cucmVnaXN0ZXIobFcoKSk7dy5yZWdpc3Rlcih1VygpKTt3LnJlZ2lzdGVyKGNXKCkpO3cucmVnaXN0ZXIoZFcoKSk7dy5yZWdpc3RlcihwVygpKTt3LnJlZ2lzdGVyKGZXKCkpO3cucmVnaXN0ZXIobVcoKSk7dy5yZWdpc3RlcihnVygpKTt3LnJlZ2lzdGVyKGhXKCkpO3cucmVnaXN0ZXIoYlcoKSk7dy5yZWdpc3Rlcih5VygpKTt3LnJlZ2lzdGVyKHZXKCkpO3cucmVnaXN0ZXIoRVcoKSk7dy5yZWdpc3RlcihTVygpKTt3LnJlZ2lzdGVyKHdXKCkpO3cucmVnaXN0ZXIoWHMoKSk7dy5yZWdpc3RlcihUVygpKTt3LnJlZ2lzdGVyKGtXKCkpO3cucmVnaXN0ZXIoQVcoKSk7dy5yZWdpc3Rlcih4VygpKTt3LnJlZ2lzdGVyKFJXKCkpO3cucmVnaXN0ZXIoX1coKSk7dy5yZWdpc3RlcihJVygpKTt3LnJlZ2lzdGVyKE5XKCkpO3cucmVnaXN0ZXIoQ1coKSk7dy5yZWdpc3RlcihPVygpKTt3LnJlZ2lzdGVyKExXKCkpO3cucmVnaXN0ZXIoRFcoKSk7dy5yZWdpc3RlcihNVygpKTt3LnJlZ2lzdGVyKFBXKCkpO3cucmVnaXN0ZXIoRlcoKSk7dy5yZWdpc3RlcihVVygpKTt3LnJlZ2lzdGVyKEJXKCkpO3cucmVnaXN0ZXIoJFcoKSk7dy5yZWdpc3Rlcih6VygpKTt3LnJlZ2lzdGVyKGpXKCkpO3cucmVnaXN0ZXIoR1coKSk7dy5yZWdpc3RlcihxVygpKTt3LnJlZ2lzdGVyKFZXKCkpO3cucmVnaXN0ZXIoSFcoKSk7dy5yZWdpc3RlcihXVygpKTt3LnJlZ2lzdGVyKFlXKCkpO3cucmVnaXN0ZXIoS1coKSk7dy5yZWdpc3RlcihYVygpKTt3LnJlZ2lzdGVyKFpXKCkpO3cucmVnaXN0ZXIoUVcoKSk7dy5yZWdpc3RlcihZcygpKTt3LnJlZ2lzdGVyKEpXKCkpO3cucmVnaXN0ZXIoZTYoKSk7dy5yZWdpc3Rlcih0NigpKTt3LnJlZ2lzdGVyKG42KCkpO3cucmVnaXN0ZXIoVWIoKSk7dy5yZWdpc3RlcihyNigpKTt3LnJlZ2lzdGVyKGE2KCkpO3cucmVnaXN0ZXIoaTYoKSk7dy5yZWdpc3RlcihvNigpKTt3LnJlZ2lzdGVyKHM2KCkpO3cucmVnaXN0ZXIobDYoKSk7dy5yZWdpc3Rlcih1NigpKTt3LnJlZ2lzdGVyKGM2KCkpO3cucmVnaXN0ZXIoZDYoKSk7dy5yZWdpc3RlcihwNigpKTt3LnJlZ2lzdGVyKGY2KCkpO3cucmVnaXN0ZXIobTYoKSk7dy5yZWdpc3RlcihPYigpKTt3LnJlZ2lzdGVyKGc2KCkpO3cucmVnaXN0ZXIoaDYoKSk7dy5yZWdpc3RlcihiNigpKTt3LnJlZ2lzdGVyKHk2KCkpO3cucmVnaXN0ZXIodjYoKSk7dy5yZWdpc3RlcihFNigpKTt3LnJlZ2lzdGVyKEJiKCkpO3cucmVnaXN0ZXIoUzYoKSk7dy5yZWdpc3Rlcih3NigpKTt3LnJlZ2lzdGVyKFQ2KCkpO3cucmVnaXN0ZXIoazYoKSk7dy5yZWdpc3RlcihBNigpKTt3LnJlZ2lzdGVyKHg2KCkpO3cucmVnaXN0ZXIoUjYoKSk7dy5yZWdpc3RlcihfNigpKTt3LnJlZ2lzdGVyKEhDKCkpO3cucmVnaXN0ZXIoSTYoKSk7dy5yZWdpc3RlcihQYigpKTt3LnJlZ2lzdGVyKE42KCkpO3cucmVnaXN0ZXIoQzYoKSk7dy5yZWdpc3RlcihPNigpKTt3LnJlZ2lzdGVyKEw2KCkpO3cucmVnaXN0ZXIoRDYoKSk7dy5yZWdpc3RlcihNNigpKTt3LnJlZ2lzdGVyKFdDKCkpO3cucmVnaXN0ZXIoUDYoKSk7dy5yZWdpc3RlcihGNigpKTt3LnJlZ2lzdGVyKFU2KCkpO3cucmVnaXN0ZXIoQjYoKSk7dy5yZWdpc3RlcigkNigpKTt3LnJlZ2lzdGVyKHo2KCkpO3cucmVnaXN0ZXIoajYoKSk7dy5yZWdpc3RlcihHNigpKTt3LnJlZ2lzdGVyKHE2KCkpO3cucmVnaXN0ZXIoVjYoKSk7dy5yZWdpc3RlcihINigpKTt3LnJlZ2lzdGVyKFc2KCkpO3cucmVnaXN0ZXIoWTYoKSk7dy5yZWdpc3RlcihLNigpKTt3LnJlZ2lzdGVyKFg2KCkpO3cucmVnaXN0ZXIoWUMoKSk7dy5yZWdpc3RlcihaNigpKTt3LnJlZ2lzdGVyKFE2KCkpO2NvbnN0IGVZPU5pKEo2KTt2YXIgS0M9WGooZVksaDQpO0tDLnN1cHBvcnRlZExhbmd1YWdlcz1aajtjb25zdCB0WT17J2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSc6e2JhY2tncm91bmQ6ImhzbCgyMjAsIDEzJSwgMTglKSIsY29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSIsdGV4dFNoYWRvdzoiMCAxcHggcmdiYSgwLCAwLCAwLCAwLjMpIixmb250RmFtaWx5OiciRmlyYSBDb2RlIiwgIkZpcmEgTW9ubyIsIE1lbmxvLCBDb25zb2xhcywgIkRlamFWdSBTYW5zIE1vbm8iLCBtb25vc3BhY2UnLGRpcmVjdGlvbjoibHRyIix0ZXh0QWxpZ246ImxlZnQiLHdoaXRlU3BhY2U6InByZSIsd29yZFNwYWNpbmc6Im5vcm1hbCIsd29yZEJyZWFrOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEuNSIsTW96VGFiU2l6ZToiMiIsT1RhYlNpemU6IjIiLHRhYlNpemU6IjIiLFdlYmtpdEh5cGhlbnM6Im5vbmUiLE1vekh5cGhlbnM6Im5vbmUiLG1zSHlwaGVuczoibm9uZSIsaHlwaGVuczoibm9uZSJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSc6e2JhY2tncm91bmQ6ImhzbCgyMjAsIDEzJSwgMTglKSIsY29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSIsdGV4dFNoYWRvdzoiMCAxcHggcmdiYSgwLCAwLCAwLCAwLjMpIixmb250RmFtaWx5OiciRmlyYSBDb2RlIiwgIkZpcmEgTW9ubyIsIE1lbmxvLCBDb25zb2xhcywgIkRlamFWdSBTYW5zIE1vbm8iLCBtb25vc3BhY2UnLGRpcmVjdGlvbjoibHRyIix0ZXh0QWxpZ246ImxlZnQiLHdoaXRlU3BhY2U6InByZSIsd29yZFNwYWNpbmc6Im5vcm1hbCIsd29yZEJyZWFrOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEuNSIsTW96VGFiU2l6ZToiMiIsT1RhYlNpemU6IjIiLHRhYlNpemU6IjIiLFdlYmtpdEh5cGhlbnM6Im5vbmUiLE1vekh5cGhlbnM6Im5vbmUiLG1zSHlwaGVuczoibm9uZSIsaHlwaGVuczoibm9uZSIscGFkZGluZzoiMWVtIixtYXJnaW46IjAuNWVtIDAiLG92ZXJmbG93OiJhdXRvIixib3JkZXJSYWRpdXM6IjAuM2VtIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6LW1vei1zZWxlY3Rpb24nOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI4JSkiLGNvbG9yOiJpbmhlcml0Iix0ZXh0U2hhZG93OiJub25lIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSAqOjotbW96LXNlbGVjdGlvbic6e2JhY2tncm91bmQ6ImhzbCgyMjAsIDEzJSwgMjglKSIsY29sb3I6ImluaGVyaXQiLHRleHRTaGFkb3c6Im5vbmUifSwncHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gKjo6LW1vei1zZWxlY3Rpb24nOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI4JSkiLGNvbG9yOiJpbmhlcml0Iix0ZXh0U2hhZG93OiJub25lIn0sJ2NvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXTo6c2VsZWN0aW9uJzp7YmFja2dyb3VuZDoiaHNsKDIyMCwgMTMlLCAyOCUpIixjb2xvcjoiaW5oZXJpdCIsdGV4dFNoYWRvdzoibm9uZSJ9LCdjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gKjo6c2VsZWN0aW9uJzp7YmFja2dyb3VuZDoiaHNsKDIyMCwgMTMlLCAyOCUpIixjb2xvcjoiaW5oZXJpdCIsdGV4dFNoYWRvdzoibm9uZSJ9LCdwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSAqOjpzZWxlY3Rpb24nOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI4JSkiLGNvbG9yOiJpbmhlcml0Iix0ZXh0U2hhZG93OiJub25lIn0sJzpub3QocHJlKSA+IGNvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSc6e3BhZGRpbmc6IjAuMmVtIDAuM2VtIixib3JkZXJSYWRpdXM6IjAuM2VtIix3aGl0ZVNwYWNlOiJub3JtYWwifSxjb21tZW50Ontjb2xvcjoiaHNsKDIyMCwgMTAlLCA0MCUpIixmb250U3R5bGU6Iml0YWxpYyJ9LHByb2xvZzp7Y29sb3I6ImhzbCgyMjAsIDEwJSwgNDAlKSJ9LGNkYXRhOntjb2xvcjoiaHNsKDIyMCwgMTAlLCA0MCUpIn0sZG9jdHlwZTp7Y29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSJ9LHB1bmN0dWF0aW9uOntjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIn0sZW50aXR5Ontjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIixjdXJzb3I6ImhlbHAifSwiYXR0ci1uYW1lIjp7Y29sb3I6ImhzbCgyOSwgNTQlLCA2MSUpIn0sImNsYXNzLW5hbWUiOntjb2xvcjoiaHNsKDI5LCA1NCUsIDYxJSkifSxib29sZWFuOntjb2xvcjoiaHNsKDI5LCA1NCUsIDYxJSkifSxjb25zdGFudDp7Y29sb3I6ImhzbCgyOSwgNTQlLCA2MSUpIn0sbnVtYmVyOntjb2xvcjoiaHNsKDI5LCA1NCUsIDYxJSkifSxhdHJ1bGU6e2NvbG9yOiJoc2woMjksIDU0JSwgNjElKSJ9LGtleXdvcmQ6e2NvbG9yOiJoc2woMjg2LCA2MCUsIDY3JSkifSxwcm9wZXJ0eTp7Y29sb3I6ImhzbCgzNTUsIDY1JSwgNjUlKSJ9LHRhZzp7Y29sb3I6ImhzbCgzNTUsIDY1JSwgNjUlKSJ9LHN5bWJvbDp7Y29sb3I6ImhzbCgzNTUsIDY1JSwgNjUlKSJ9LGRlbGV0ZWQ6e2NvbG9yOiJoc2woMzU1LCA2NSUsIDY1JSkifSxpbXBvcnRhbnQ6e2NvbG9yOiJoc2woMzU1LCA2NSUsIDY1JSkifSxzZWxlY3Rvcjp7Y29sb3I6ImhzbCg5NSwgMzglLCA2MiUpIn0sc3RyaW5nOntjb2xvcjoiaHNsKDk1LCAzOCUsIDYyJSkifSxjaGFyOntjb2xvcjoiaHNsKDk1LCAzOCUsIDYyJSkifSxidWlsdGluOntjb2xvcjoiaHNsKDk1LCAzOCUsIDYyJSkifSxpbnNlcnRlZDp7Y29sb3I6ImhzbCg5NSwgMzglLCA2MiUpIn0scmVnZXg6e2NvbG9yOiJoc2woOTUsIDM4JSwgNjIlKSJ9LCJhdHRyLXZhbHVlIjp7Y29sb3I6ImhzbCg5NSwgMzglLCA2MiUpIn0sImF0dHItdmFsdWUgPiAudG9rZW4ucHVuY3R1YXRpb24iOntjb2xvcjoiaHNsKDk1LCAzOCUsIDYyJSkifSx2YXJpYWJsZTp7Y29sb3I6ImhzbCgyMDcsIDgyJSwgNjYlKSJ9LG9wZXJhdG9yOntjb2xvcjoiaHNsKDIwNywgODIlLCA2NiUpIn0sZnVuY3Rpb246e2NvbG9yOiJoc2woMjA3LCA4MiUsIDY2JSkifSx1cmw6e2NvbG9yOiJoc2woMTg3LCA0NyUsIDU1JSkifSwiYXR0ci12YWx1ZSA+IC50b2tlbi5wdW5jdHVhdGlvbi5hdHRyLWVxdWFscyI6e2NvbG9yOiJoc2woMjIwLCAxNCUsIDcxJSkifSwic3BlY2lhbC1hdHRyID4gLnRva2VuLmF0dHItdmFsdWUgPiAudG9rZW4udmFsdWUuY3NzIjp7Y29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSJ9LCIubGFuZ3VhZ2UtY3NzIC50b2tlbi5zZWxlY3RvciI6e2NvbG9yOiJoc2woMzU1LCA2NSUsIDY1JSkifSwiLmxhbmd1YWdlLWNzcyAudG9rZW4ucHJvcGVydHkiOntjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIn0sIi5sYW5ndWFnZS1jc3MgLnRva2VuLmZ1bmN0aW9uIjp7Y29sb3I6ImhzbCgxODcsIDQ3JSwgNTUlKSJ9LCIubGFuZ3VhZ2UtY3NzIC50b2tlbi51cmwgPiAudG9rZW4uZnVuY3Rpb24iOntjb2xvcjoiaHNsKDE4NywgNDclLCA1NSUpIn0sIi5sYW5ndWFnZS1jc3MgLnRva2VuLnVybCA+IC50b2tlbi5zdHJpbmcudXJsIjp7Y29sb3I6ImhzbCg5NSwgMzglLCA2MiUpIn0sIi5sYW5ndWFnZS1jc3MgLnRva2VuLmltcG9ydGFudCI6e2NvbG9yOiJoc2woMjg2LCA2MCUsIDY3JSkifSwiLmxhbmd1YWdlLWNzcyAudG9rZW4uYXRydWxlIC50b2tlbi5ydWxlIjp7Y29sb3I6ImhzbCgyODYsIDYwJSwgNjclKSJ9LCIubGFuZ3VhZ2UtamF2YXNjcmlwdCAudG9rZW4ub3BlcmF0b3IiOntjb2xvcjoiaHNsKDI4NiwgNjAlLCA2NyUpIn0sIi5sYW5ndWFnZS1qYXZhc2NyaXB0IC50b2tlbi50ZW1wbGF0ZS1zdHJpbmcgPiAudG9rZW4uaW50ZXJwb2xhdGlvbiA+IC50b2tlbi5pbnRlcnBvbGF0aW9uLXB1bmN0dWF0aW9uLnB1bmN0dWF0aW9uIjp7Y29sb3I6ImhzbCg1LCA0OCUsIDUxJSkifSwiLmxhbmd1YWdlLWpzb24gLnRva2VuLm9wZXJhdG9yIjp7Y29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSJ9LCIubGFuZ3VhZ2UtanNvbiAudG9rZW4ubnVsbC5rZXl3b3JkIjp7Y29sb3I6ImhzbCgyOSwgNTQlLCA2MSUpIn0sIi5sYW5ndWFnZS1tYXJrZG93biAudG9rZW4udXJsIjp7Y29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSJ9LCIubGFuZ3VhZ2UtbWFya2Rvd24gLnRva2VuLnVybCA+IC50b2tlbi5vcGVyYXRvciI6e2NvbG9yOiJoc2woMjIwLCAxNCUsIDcxJSkifSwiLmxhbmd1YWdlLW1hcmtkb3duIC50b2tlbi51cmwtcmVmZXJlbmNlLnVybCA+IC50b2tlbi5zdHJpbmciOntjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIn0sIi5sYW5ndWFnZS1tYXJrZG93biAudG9rZW4udXJsID4gLnRva2VuLmNvbnRlbnQiOntjb2xvcjoiaHNsKDIwNywgODIlLCA2NiUpIn0sIi5sYW5ndWFnZS1tYXJrZG93biAudG9rZW4udXJsID4gLnRva2VuLnVybCI6e2NvbG9yOiJoc2woMTg3LCA0NyUsIDU1JSkifSwiLmxhbmd1YWdlLW1hcmtkb3duIC50b2tlbi51cmwtcmVmZXJlbmNlLnVybCI6e2NvbG9yOiJoc2woMTg3LCA0NyUsIDU1JSkifSwiLmxhbmd1YWdlLW1hcmtkb3duIC50b2tlbi5ibG9ja3F1b3RlLnB1bmN0dWF0aW9uIjp7Y29sb3I6ImhzbCgyMjAsIDEwJSwgNDAlKSIsZm9udFN0eWxlOiJpdGFsaWMifSwiLmxhbmd1YWdlLW1hcmtkb3duIC50b2tlbi5oci5wdW5jdHVhdGlvbiI6e2NvbG9yOiJoc2woMjIwLCAxMCUsIDQwJSkiLGZvbnRTdHlsZToiaXRhbGljIn0sIi5sYW5ndWFnZS1tYXJrZG93biAudG9rZW4uY29kZS1zbmlwcGV0Ijp7Y29sb3I6ImhzbCg5NSwgMzglLCA2MiUpIn0sIi5sYW5ndWFnZS1tYXJrZG93biAudG9rZW4uYm9sZCAudG9rZW4uY29udGVudCI6e2NvbG9yOiJoc2woMjksIDU0JSwgNjElKSJ9LCIubGFuZ3VhZ2UtbWFya2Rvd24gLnRva2VuLml0YWxpYyAudG9rZW4uY29udGVudCI6e2NvbG9yOiJoc2woMjg2LCA2MCUsIDY3JSkifSwiLmxhbmd1YWdlLW1hcmtkb3duIC50b2tlbi5zdHJpa2UgLnRva2VuLmNvbnRlbnQiOntjb2xvcjoiaHNsKDM1NSwgNjUlLCA2NSUpIn0sIi5sYW5ndWFnZS1tYXJrZG93biAudG9rZW4uc3RyaWtlIC50b2tlbi5wdW5jdHVhdGlvbiI6e2NvbG9yOiJoc2woMzU1LCA2NSUsIDY1JSkifSwiLmxhbmd1YWdlLW1hcmtkb3duIC50b2tlbi5saXN0LnB1bmN0dWF0aW9uIjp7Y29sb3I6ImhzbCgzNTUsIDY1JSwgNjUlKSJ9LCIubGFuZ3VhZ2UtbWFya2Rvd24gLnRva2VuLnRpdGxlLmltcG9ydGFudCA+IC50b2tlbi5wdW5jdHVhdGlvbiI6e2NvbG9yOiJoc2woMzU1LCA2NSUsIDY1JSkifSxib2xkOntmb250V2VpZ2h0OiJib2xkIn0saXRhbGljOntmb250U3R5bGU6Iml0YWxpYyJ9LG5hbWVzcGFjZTp7T3BhY2l0eToiMC44In0sInRva2VuLnRhYjpub3QoOmVtcHR5KTpiZWZvcmUiOntjb2xvcjoiaHNsYSgyMjAsIDE0JSwgNzElLCAwLjE1KSIsdGV4dFNoYWRvdzoibm9uZSJ9LCJ0b2tlbi5jcjpiZWZvcmUiOntjb2xvcjoiaHNsYSgyMjAsIDE0JSwgNzElLCAwLjE1KSIsdGV4dFNoYWRvdzoibm9uZSJ9LCJ0b2tlbi5sZjpiZWZvcmUiOntjb2xvcjoiaHNsYSgyMjAsIDE0JSwgNzElLCAwLjE1KSIsdGV4dFNoYWRvdzoibm9uZSJ9LCJ0b2tlbi5zcGFjZTpiZWZvcmUiOntjb2xvcjoiaHNsYSgyMjAsIDE0JSwgNzElLCAwLjE1KSIsdGV4dFNoYWRvdzoibm9uZSJ9LCJkaXYuY29kZS10b29sYmFyID4gLnRvb2xiYXIudG9vbGJhciA+IC50b29sYmFyLWl0ZW0iOnttYXJnaW5SaWdodDoiMC40ZW0ifSwiZGl2LmNvZGUtdG9vbGJhciA+IC50b29sYmFyLnRvb2xiYXIgPiAudG9vbGJhci1pdGVtID4gYnV0dG9uIjp7YmFja2dyb3VuZDoiaHNsKDIyMCwgMTMlLCAyNiUpIixjb2xvcjoiaHNsKDIyMCwgOSUsIDU1JSkiLHBhZGRpbmc6IjAuMWVtIDAuNGVtIixib3JkZXJSYWRpdXM6IjAuM2VtIn0sImRpdi5jb2RlLXRvb2xiYXIgPiAudG9vbGJhci50b29sYmFyID4gLnRvb2xiYXItaXRlbSA+IGEiOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI2JSkiLGNvbG9yOiJoc2woMjIwLCA5JSwgNTUlKSIscGFkZGluZzoiMC4xZW0gMC40ZW0iLGJvcmRlclJhZGl1czoiMC4zZW0ifSwiZGl2LmNvZGUtdG9vbGJhciA+IC50b29sYmFyLnRvb2xiYXIgPiAudG9vbGJhci1pdGVtID4gc3BhbiI6e2JhY2tncm91bmQ6ImhzbCgyMjAsIDEzJSwgMjYlKSIsY29sb3I6ImhzbCgyMjAsIDklLCA1NSUpIixwYWRkaW5nOiIwLjFlbSAwLjRlbSIsYm9yZGVyUmFkaXVzOiIwLjNlbSJ9LCJkaXYuY29kZS10b29sYmFyID4gLnRvb2xiYXIudG9vbGJhciA+IC50b29sYmFyLWl0ZW0gPiBidXR0b246aG92ZXIiOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI4JSkiLGNvbG9yOiJoc2woMjIwLCAxNCUsIDcxJSkifSwiZGl2LmNvZGUtdG9vbGJhciA+IC50b29sYmFyLnRvb2xiYXIgPiAudG9vbGJhci1pdGVtID4gYnV0dG9uOmZvY3VzIjp7YmFja2dyb3VuZDoiaHNsKDIyMCwgMTMlLCAyOCUpIixjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIn0sImRpdi5jb2RlLXRvb2xiYXIgPiAudG9vbGJhci50b29sYmFyID4gLnRvb2xiYXItaXRlbSA+IGE6aG92ZXIiOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI4JSkiLGNvbG9yOiJoc2woMjIwLCAxNCUsIDcxJSkifSwiZGl2LmNvZGUtdG9vbGJhciA+IC50b29sYmFyLnRvb2xiYXIgPiAudG9vbGJhci1pdGVtID4gYTpmb2N1cyI6e2JhY2tncm91bmQ6ImhzbCgyMjAsIDEzJSwgMjglKSIsY29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSJ9LCJkaXYuY29kZS10b29sYmFyID4gLnRvb2xiYXIudG9vbGJhciA+IC50b29sYmFyLWl0ZW0gPiBzcGFuOmhvdmVyIjp7YmFja2dyb3VuZDoiaHNsKDIyMCwgMTMlLCAyOCUpIixjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIn0sImRpdi5jb2RlLXRvb2xiYXIgPiAudG9vbGJhci50b29sYmFyID4gLnRvb2xiYXItaXRlbSA+IHNwYW46Zm9jdXMiOntiYWNrZ3JvdW5kOiJoc2woMjIwLCAxMyUsIDI4JSkiLGNvbG9yOiJoc2woMjIwLCAxNCUsIDcxJSkifSwiLmxpbmUtaGlnaGxpZ2h0LmxpbmUtaGlnaGxpZ2h0Ijp7YmFja2dyb3VuZDoiaHNsYSgyMjAsIDEwMCUsIDgwJSwgMC4wNCkifSwiLmxpbmUtaGlnaGxpZ2h0LmxpbmUtaGlnaGxpZ2h0OmJlZm9yZSI6e2JhY2tncm91bmQ6ImhzbCgyMjAsIDEzJSwgMjYlKSIsY29sb3I6ImhzbCgyMjAsIDE0JSwgNzElKSIscGFkZGluZzoiMC4xZW0gMC42ZW0iLGJvcmRlclJhZGl1czoiMC4zZW0iLGJveFNoYWRvdzoiMCAycHggMCAwIHJnYmEoMCwgMCwgMCwgMC4yKSJ9LCIubGluZS1oaWdobGlnaHQubGluZS1oaWdobGlnaHRbZGF0YS1lbmRdOmFmdGVyIjp7YmFja2dyb3VuZDoiaHNsKDIyMCwgMTMlLCAyNiUpIixjb2xvcjoiaHNsKDIyMCwgMTQlLCA3MSUpIixwYWRkaW5nOiIwLjFlbSAwLjZlbSIsYm9yZGVyUmFkaXVzOiIwLjNlbSIsYm94U2hhZG93OiIwIDJweCAwIDAgcmdiYSgwLCAwLCAwLCAwLjIpIn0sInByZVtpZF0ubGlua2FibGUtbGluZS1udW1iZXJzLmxpbmthYmxlLWxpbmUtbnVtYmVycyBzcGFuLmxpbmUtbnVtYmVycy1yb3dzID4gc3Bhbjpob3ZlcjpiZWZvcmUiOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMjIwLCAxMDAlLCA4MCUsIDAuMDQpIn0sIi5saW5lLW51bWJlcnMubGluZS1udW1iZXJzIC5saW5lLW51bWJlcnMtcm93cyI6e2JvcmRlclJpZ2h0Q29sb3I6ImhzbGEoMjIwLCAxNCUsIDcxJSwgMC4xNSkifSwiLmNvbW1hbmQtbGluZSAuY29tbWFuZC1saW5lLXByb21wdCI6e2JvcmRlclJpZ2h0Q29sb3I6ImhzbGEoMjIwLCAxNCUsIDcxJSwgMC4xNSkifSwiLmxpbmUtbnVtYmVycyAubGluZS1udW1iZXJzLXJvd3MgPiBzcGFuOmJlZm9yZSI6e2NvbG9yOiJoc2woMjIwLCAxNCUsIDQ1JSkifSwiLmNvbW1hbmQtbGluZSAuY29tbWFuZC1saW5lLXByb21wdCA+IHNwYW46YmVmb3JlIjp7Y29sb3I6ImhzbCgyMjAsIDE0JSwgNDUlKSJ9LCIucmFpbmJvdy1icmFjZXMgLnRva2VuLnRva2VuLnB1bmN0dWF0aW9uLmJyYWNlLWxldmVsLTEiOntjb2xvcjoiaHNsKDM1NSwgNjUlLCA2NSUpIn0sIi5yYWluYm93LWJyYWNlcyAudG9rZW4udG9rZW4ucHVuY3R1YXRpb24uYnJhY2UtbGV2ZWwtNSI6e2NvbG9yOiJoc2woMzU1LCA2NSUsIDY1JSkifSwiLnJhaW5ib3ctYnJhY2VzIC50b2tlbi50b2tlbi5wdW5jdHVhdGlvbi5icmFjZS1sZXZlbC05Ijp7Y29sb3I6ImhzbCgzNTUsIDY1JSwgNjUlKSJ9LCIucmFpbmJvdy1icmFjZXMgLnRva2VuLnRva2VuLnB1bmN0dWF0aW9uLmJyYWNlLWxldmVsLTIiOntjb2xvcjoiaHNsKDk1LCAzOCUsIDYyJSkifSwiLnJhaW5ib3ctYnJhY2VzIC50b2tlbi50b2tlbi5wdW5jdHVhdGlvbi5icmFjZS1sZXZlbC02Ijp7Y29sb3I6ImhzbCg5NSwgMzglLCA2MiUpIn0sIi5yYWluYm93LWJyYWNlcyAudG9rZW4udG9rZW4ucHVuY3R1YXRpb24uYnJhY2UtbGV2ZWwtMTAiOntjb2xvcjoiaHNsKDk1LCAzOCUsIDYyJSkifSwiLnJhaW5ib3ctYnJhY2VzIC50b2tlbi50b2tlbi5wdW5jdHVhdGlvbi5icmFjZS1sZXZlbC0zIjp7Y29sb3I6ImhzbCgyMDcsIDgyJSwgNjYlKSJ9LCIucmFpbmJvdy1icmFjZXMgLnRva2VuLnRva2VuLnB1bmN0dWF0aW9uLmJyYWNlLWxldmVsLTciOntjb2xvcjoiaHNsKDIwNywgODIlLCA2NiUpIn0sIi5yYWluYm93LWJyYWNlcyAudG9rZW4udG9rZW4ucHVuY3R1YXRpb24uYnJhY2UtbGV2ZWwtMTEiOntjb2xvcjoiaHNsKDIwNywgODIlLCA2NiUpIn0sIi5yYWluYm93LWJyYWNlcyAudG9rZW4udG9rZW4ucHVuY3R1YXRpb24uYnJhY2UtbGV2ZWwtNCI6e2NvbG9yOiJoc2woMjg2LCA2MCUsIDY3JSkifSwiLnJhaW5ib3ctYnJhY2VzIC50b2tlbi50b2tlbi5wdW5jdHVhdGlvbi5icmFjZS1sZXZlbC04Ijp7Y29sb3I6ImhzbCgyODYsIDYwJSwgNjclKSJ9LCIucmFpbmJvdy1icmFjZXMgLnRva2VuLnRva2VuLnB1bmN0dWF0aW9uLmJyYWNlLWxldmVsLTEyIjp7Y29sb3I6ImhzbCgyODYsIDYwJSwgNjclKSJ9LCJwcmUuZGlmZi1oaWdobGlnaHQgPiBjb2RlIC50b2tlbi50b2tlbi5kZWxldGVkOm5vdCgucHJlZml4KSI6e2JhY2tncm91bmRDb2xvcjoiaHNsYSgzNTMsIDEwMCUsIDY2JSwgMC4xNSkifSwicHJlID4gY29kZS5kaWZmLWhpZ2hsaWdodCAudG9rZW4udG9rZW4uZGVsZXRlZDpub3QoLnByZWZpeCkiOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMzUzLCAxMDAlLCA2NiUsIDAuMTUpIn0sInByZS5kaWZmLWhpZ2hsaWdodCA+IGNvZGUgLnRva2VuLnRva2VuLmRlbGV0ZWQ6bm90KC5wcmVmaXgpOjotbW96LXNlbGVjdGlvbiI6e2JhY2tncm91bmRDb2xvcjoiaHNsYSgzNTMsIDk1JSwgNjYlLCAwLjI1KSJ9LCJwcmUuZGlmZi1oaWdobGlnaHQgPiBjb2RlIC50b2tlbi50b2tlbi5kZWxldGVkOm5vdCgucHJlZml4KSAqOjotbW96LXNlbGVjdGlvbiI6e2JhY2tncm91bmRDb2xvcjoiaHNsYSgzNTMsIDk1JSwgNjYlLCAwLjI1KSJ9LCJwcmUgPiBjb2RlLmRpZmYtaGlnaGxpZ2h0IC50b2tlbi50b2tlbi5kZWxldGVkOm5vdCgucHJlZml4KTo6LW1vei1zZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMzUzLCA5NSUsIDY2JSwgMC4yNSkifSwicHJlID4gY29kZS5kaWZmLWhpZ2hsaWdodCAudG9rZW4udG9rZW4uZGVsZXRlZDpub3QoLnByZWZpeCkgKjo6LW1vei1zZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMzUzLCA5NSUsIDY2JSwgMC4yNSkifSwicHJlLmRpZmYtaGlnaGxpZ2h0ID4gY29kZSAudG9rZW4udG9rZW4uZGVsZXRlZDpub3QoLnByZWZpeCk6OnNlbGVjdGlvbiI6e2JhY2tncm91bmRDb2xvcjoiaHNsYSgzNTMsIDk1JSwgNjYlLCAwLjI1KSJ9LCJwcmUuZGlmZi1oaWdobGlnaHQgPiBjb2RlIC50b2tlbi50b2tlbi5kZWxldGVkOm5vdCgucHJlZml4KSAqOjpzZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMzUzLCA5NSUsIDY2JSwgMC4yNSkifSwicHJlID4gY29kZS5kaWZmLWhpZ2hsaWdodCAudG9rZW4udG9rZW4uZGVsZXRlZDpub3QoLnByZWZpeCk6OnNlbGVjdGlvbiI6e2JhY2tncm91bmRDb2xvcjoiaHNsYSgzNTMsIDk1JSwgNjYlLCAwLjI1KSJ9LCJwcmUgPiBjb2RlLmRpZmYtaGlnaGxpZ2h0IC50b2tlbi50b2tlbi5kZWxldGVkOm5vdCgucHJlZml4KSAqOjpzZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMzUzLCA5NSUsIDY2JSwgMC4yNSkifSwicHJlLmRpZmYtaGlnaGxpZ2h0ID4gY29kZSAudG9rZW4udG9rZW4uaW5zZXJ0ZWQ6bm90KC5wcmVmaXgpIjp7YmFja2dyb3VuZENvbG9yOiJoc2xhKDEzNywgMTAwJSwgNTUlLCAwLjE1KSJ9LCJwcmUgPiBjb2RlLmRpZmYtaGlnaGxpZ2h0IC50b2tlbi50b2tlbi5pbnNlcnRlZDpub3QoLnByZWZpeCkiOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMTM3LCAxMDAlLCA1NSUsIDAuMTUpIn0sInByZS5kaWZmLWhpZ2hsaWdodCA+IGNvZGUgLnRva2VuLnRva2VuLmluc2VydGVkOm5vdCgucHJlZml4KTo6LW1vei1zZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMTM1LCA3MyUsIDU1JSwgMC4yNSkifSwicHJlLmRpZmYtaGlnaGxpZ2h0ID4gY29kZSAudG9rZW4udG9rZW4uaW5zZXJ0ZWQ6bm90KC5wcmVmaXgpICo6Oi1tb3otc2VsZWN0aW9uIjp7YmFja2dyb3VuZENvbG9yOiJoc2xhKDEzNSwgNzMlLCA1NSUsIDAuMjUpIn0sInByZSA+IGNvZGUuZGlmZi1oaWdobGlnaHQgLnRva2VuLnRva2VuLmluc2VydGVkOm5vdCgucHJlZml4KTo6LW1vei1zZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMTM1LCA3MyUsIDU1JSwgMC4yNSkifSwicHJlID4gY29kZS5kaWZmLWhpZ2hsaWdodCAudG9rZW4udG9rZW4uaW5zZXJ0ZWQ6bm90KC5wcmVmaXgpICo6Oi1tb3otc2VsZWN0aW9uIjp7YmFja2dyb3VuZENvbG9yOiJoc2xhKDEzNSwgNzMlLCA1NSUsIDAuMjUpIn0sInByZS5kaWZmLWhpZ2hsaWdodCA+IGNvZGUgLnRva2VuLnRva2VuLmluc2VydGVkOm5vdCgucHJlZml4KTo6c2VsZWN0aW9uIjp7YmFja2dyb3VuZENvbG9yOiJoc2xhKDEzNSwgNzMlLCA1NSUsIDAuMjUpIn0sInByZS5kaWZmLWhpZ2hsaWdodCA+IGNvZGUgLnRva2VuLnRva2VuLmluc2VydGVkOm5vdCgucHJlZml4KSAqOjpzZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMTM1LCA3MyUsIDU1JSwgMC4yNSkifSwicHJlID4gY29kZS5kaWZmLWhpZ2hsaWdodCAudG9rZW4udG9rZW4uaW5zZXJ0ZWQ6bm90KC5wcmVmaXgpOjpzZWxlY3Rpb24iOntiYWNrZ3JvdW5kQ29sb3I6ImhzbGEoMTM1LCA3MyUsIDU1JSwgMC4yNSkifSwicHJlID4gY29kZS5kaWZmLWhpZ2hsaWdodCAudG9rZW4udG9rZW4uaW5zZXJ0ZWQ6bm90KC5wcmVmaXgpICo6OnNlbGVjdGlvbiI6e2JhY2tncm91bmRDb2xvcjoiaHNsYSgxMzUsIDczJSwgNTUlLCAwLjI1KSJ9LCIucHJpc20tcHJldmlld2VyLnByaXNtLXByZXZpZXdlcjpiZWZvcmUiOntib3JkZXJDb2xvcjoiaHNsKDIyNCwgMTMlLCAxNyUpIn0sIi5wcmlzbS1wcmV2aWV3ZXItZ3JhZGllbnQucHJpc20tcHJldmlld2VyLWdyYWRpZW50IGRpdiI6e2JvcmRlckNvbG9yOiJoc2woMjI0LCAxMyUsIDE3JSkiLGJvcmRlclJhZGl1czoiMC4zZW0ifSwiLnByaXNtLXByZXZpZXdlci1jb2xvci5wcmlzbS1wcmV2aWV3ZXItY29sb3I6YmVmb3JlIjp7Ym9yZGVyUmFkaXVzOiIwLjNlbSJ9LCIucHJpc20tcHJldmlld2VyLWVhc2luZy5wcmlzbS1wcmV2aWV3ZXItZWFzaW5nOmJlZm9yZSI6e2JvcmRlclJhZGl1czoiMC4zZW0ifSwiLnByaXNtLXByZXZpZXdlci5wcmlzbS1wcmV2aWV3ZXI6YWZ0ZXIiOntib3JkZXJUb3BDb2xvcjoiaHNsKDIyNCwgMTMlLCAxNyUpIn0sIi5wcmlzbS1wcmV2aWV3ZXItZmxpcHBlZC5wcmlzbS1wcmV2aWV3ZXItZmxpcHBlZC5hZnRlciI6e2JvcmRlckJvdHRvbUNvbG9yOiJoc2woMjI0LCAxMyUsIDE3JSkifSwiLnByaXNtLXByZXZpZXdlci1hbmdsZS5wcmlzbS1wcmV2aWV3ZXItYW5nbGU6YmVmb3JlIjp7YmFja2dyb3VuZDoiaHNsKDIxOSwgMTMlLCAyMiUpIn0sIi5wcmlzbS1wcmV2aWV3ZXItdGltZS5wcmlzbS1wcmV2aWV3ZXItdGltZTpiZWZvcmUiOntiYWNrZ3JvdW5kOiJoc2woMjE5LCAxMyUsIDIyJSkifSwiLnByaXNtLXByZXZpZXdlci1lYXNpbmcucHJpc20tcHJldmlld2VyLWVhc2luZyI6e2JhY2tncm91bmQ6ImhzbCgyMTksIDEzJSwgMjIlKSJ9LCIucHJpc20tcHJldmlld2VyLWFuZ2xlLnByaXNtLXByZXZpZXdlci1hbmdsZSBjaXJjbGUiOntzdHJva2U6ImhzbCgyMjAsIDE0JSwgNzElKSIsc3Ryb2tlT3BhY2l0eToiMSJ9LCIucHJpc20tcHJldmlld2VyLXRpbWUucHJpc20tcHJldmlld2VyLXRpbWUgY2lyY2xlIjp7c3Ryb2tlOiJoc2woMjIwLCAxNCUsIDcxJSkiLHN0cm9rZU9wYWNpdHk6IjEifSwiLnByaXNtLXByZXZpZXdlci1lYXNpbmcucHJpc20tcHJldmlld2VyLWVhc2luZyBjaXJjbGUiOntzdHJva2U6ImhzbCgyMjAsIDE0JSwgNzElKSIsZmlsbDoidHJhbnNwYXJlbnQifSwiLnByaXNtLXByZXZpZXdlci1lYXNpbmcucHJpc20tcHJldmlld2VyLWVhc2luZyBwYXRoIjp7c3Ryb2tlOiJoc2woMjIwLCAxNCUsIDcxJSkifSwiLnByaXNtLXByZXZpZXdlci1lYXNpbmcucHJpc20tcHJldmlld2VyLWVhc2luZyBsaW5lIjp7c3Ryb2tlOiJoc2woMjIwLCAxNCUsIDcxJSkifX07ZnVuY3Rpb24gblkoe25hbWU6ZX0pe3JldHVybiBrLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBweC0yIHB5LTAuNSByb3VuZGVkLWZ1bGwgYmctYW1iZXItNTAwLzEwIHRleHQtYW1iZXItNDAwIHRleHQteHMgZm9udC1tb25vIGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIixjaGlsZHJlbjpbay5qc3goJHMse2NsYXNzTmFtZToidy0yLjUgaC0yLjUifSksZV19KX1mdW5jdGlvbiByWSh7bWVzc2FnZTplfSl7dmFyIHIsYTtjb25zdCB0PWUucm9sZT09PSJ1c2VyIixuPShhPShyPWUubW9kZWwpPT1udWxsP3ZvaWQgMDpyLnNwbGl0KCIvIikucG9wKCkpPT1udWxsP3ZvaWQgMDphLnNwbGl0KCItIikuc2xpY2UoMCwzKS5qb2luKCItIik7cmV0dXJuIGsuanN4cyhOdC5kaXYse2luaXRpYWw6e29wYWNpdHk6MCx5Ojh9LGFuaW1hdGU6e29wYWNpdHk6MSx5OjB9LHRyYW5zaXRpb246e2R1cmF0aW9uOi4yfSxjbGFzc05hbWU6WWUoImZsZXggZ2FwLTMiLHQ/Imp1c3RpZnktZW5kIjoianVzdGlmeS1zdGFydCIpLGNoaWxkcmVuOlshdCYmay5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleC1zaHJpbmstMCB3LTcgaC03IHJvdW5kZWQtbGcgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1jbGF3LTQwMCB0by1jbGF3LTYwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LXdoaXRlIHRleHQtc20gbXQtMC41IixjaGlsZHJlbjoi8J+mniJ9KSxrLmpzeHMoImRpdiIse2NsYXNzTmFtZTpZZSgibWF4LXctWzgwJV0gZmxleCBmbGV4LWNvbCBnYXAtMS41Iix0PyJpdGVtcy1lbmQiOiJpdGVtcy1zdGFydCIpLGNoaWxkcmVuOlshdCYmZS50b29sQ2FsbHMmJmUudG9vbENhbGxzLmxlbmd0aD4wJiZrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtd3JhcCBnYXAtMSBtYi0xIixjaGlsZHJlbjplLnRvb2xDYWxscy5tYXAoaT0+ay5qc3goblkse25hbWU6aS5uYW1lfSxpLmlkKSl9KSxrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOlllKCJyb3VuZGVkLTJ4bCBweC00IHB5LTMgdGV4dC1zbSIsdD8iYmctY2xhdy02MDAgdGV4dC13aGl0ZSByb3VuZGVkLXRyLXNtIjoiYmctc3VyZmFjZS04MDAgdGV4dC1zbGF0ZS0yMDAgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTcwMC81MCByb3VuZGVkLXRsLXNtIiksY2hpbGRyZW46dD9rLmpzeCgicCIse2NsYXNzTmFtZToid2hpdGVzcGFjZS1wcmUtd3JhcCIsY2hpbGRyZW46ZS5jb250ZW50fSk6ay5qc3goImRpdiIse2NsYXNzTmFtZToicHJvc2Utb3BlbmNsYXciLGNoaWxkcmVuOmsuanN4KFRqLHtjb21wb25lbnRzOntjb2RlKHtjbGFzc05hbWU6aSxjaGlsZHJlbjpvLC4uLnN9KXtjb25zdCBsPS9sYW5ndWFnZS0oXHcrKS8uZXhlYyhpPz8iIik7cmV0dXJuIWw/ay5qc3goImNvZGUiLHtjbGFzc05hbWU6ImJnLXN1cmZhY2UtNzAwIHRleHQtY2xhdy0zMDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIHRleHQteHMgZm9udC1tb25vIiwuLi5zLGNoaWxkcmVuOm99KTprLmpzeHMoImRpdiIse2NsYXNzTmFtZToibXktMyByb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNzAwIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweC0zIHB5LTEuNSBiZy1zdXJmYWNlLTkwMCBib3JkZXItYiBib3JkZXItc3VyZmFjZS03MDAiLGNoaWxkcmVuOltrLmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTQwMCBmb250LW1vbm8iLGNoaWxkcmVuOmxbMV19KSxrLmpzeChSaSx7Y2xhc3NOYW1lOiJ3LTMgaC0zIHRleHQtc2xhdGUtNTAwIn0pXX0pLGsuanN4KEtDLHtzdHlsZTp0WSxsYW5ndWFnZTpsWzFdLFByZVRhZzoiZGl2IixjdXN0b21TdHlsZTp7bWFyZ2luOjAsYm9yZGVyUmFkaXVzOjAsYmFja2dyb3VuZDoiIzBjMTExNyJ9LGNvZGVUYWdQcm9wczp7c3R5bGU6e2ZvbnRGYW1pbHk6IkpldEJyYWlucyBNb25vLCBtb25vc3BhY2UiLGZvbnRTaXplOiIwLjhyZW0ifX0sY2hpbGRyZW46U3RyaW5nKG8pLnJlcGxhY2UoL1xuJC8sIiIpfSldfSl9fSxjaGlsZHJlbjplLmNvbnRlbnR9KX0pfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTEiLGNoaWxkcmVuOltrLmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTYwMCIsY2hpbGRyZW46dGIobmV3IERhdGUoZS50aW1lc3RhbXApLHthZGRTdWZmaXg6ITB9KX0pLG4mJmsuanN4cygic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTYwMCBmb250LW1vbm8iLGNoaWxkcmVuOlsiwrcgIixuXX0pXX0pXX0pLHQmJmsuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtc2hyaW5rLTAgdy03IGgtNyByb3VuZGVkLWxnIGJnLXN1cmZhY2UtNzAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtc2xhdGUtNDAwIHRleHQteHMgbXQtMC41IGJvcmRlciBib3JkZXItc3VyZmFjZS02MDAiLGNoaWxkcmVuOiJVIn0pXX0pfWZ1bmN0aW9uIGFZKCl7cmV0dXJuIGsuanN4cyhOdC5kaXYse2luaXRpYWw6e29wYWNpdHk6MCx5Ojh9LGFuaW1hdGU6e29wYWNpdHk6MSx5OjB9LGV4aXQ6e29wYWNpdHk6MH0sY2xhc3NOYW1lOiJmbGV4IGdhcC0zIGp1c3RpZnktc3RhcnQiLGNoaWxkcmVuOltrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LXNocmluay0wIHctNyBoLTcgcm91bmRlZC1sZyBiZy1ncmFkaWVudC10by1iciBmcm9tLWNsYXctNDAwIHRvLWNsYXctNjAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtd2hpdGUgdGV4dC1zbSIsY2hpbGRyZW46IvCfpp4ifSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImJnLXN1cmZhY2UtODAwIGJvcmRlciBib3JkZXItc3VyZmFjZS03MDAvNTAgcm91bmRlZC0yeGwgcm91bmRlZC10bC1zbSBweC00IHB5LTMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiLGNoaWxkcmVuOltrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGdhcC0xIixjaGlsZHJlbjpbMCwxLDJdLm1hcChlPT5rLmpzeChOdC5kaXYse2NsYXNzTmFtZToidy0xLjUgaC0xLjUgcm91bmRlZC1mdWxsIGJnLWNsYXctNDAwIixhbmltYXRlOnt5OlswLC00LDBdfSx0cmFuc2l0aW9uOntkdXJhdGlvbjouOCxyZXBlYXQ6MS8wLGRlbGF5OmUqLjE1fX0sZSkpfSksay5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS01MDAiLGNoaWxkcmVuOiJUaGlua2luZy4uLiJ9KV19KV19KX1jb25zdCBpWT1be2xhYmVsOiJFeHBsYWluIGEgY29uY2VwdCIsaWNvbjpoRix0ZXh0OiJFeHBsYWluIGhvdyBDbG91ZGZsYXJlIFdvcmtlcnMgQUkgd29ya3MifSx7bGFiZWw6IldyaXRlIGNvZGUiLGljb246UmksdGV4dDoiV3JpdGUgYSBUeXBlU2NyaXB0IGZ1bmN0aW9uIHRvIGZldGNoIGFuZCBwYXJzZSBKU09OIGZyb20gYW4gQVBJIn0se2xhYmVsOiJBdXRvbm9tb3VzIHRhc2siLGljb246JHMsdGV4dDoiU2VhcmNoIHRoZSB3ZWIgZm9yIHRoZSBsYXRlc3QgQUkgbmV3cyBhbmQgc3VtbWFyaXplIHRoZSB0b3AgMyBzdG9yaWVzIn1dO2Z1bmN0aW9uIG9ZKCl7Y29uc3R7YWN0aXZlU2Vzc2lvbjplLGFjdGl2ZVNlc3Npb25JZDp0LGlzVGhpbmtpbmc6bixzZXRJc1RoaW5raW5nOnIsYWRkTWVzc2FnZTphLGFkZFNlc3Npb246aSxzZXRTaWRlYmFyT3BlbjpvLHNpZGViYXJPcGVuOnN9PSRpKCksW2wsdV09UC51c2VTdGF0ZSgiIiksW2MsZF09UC51c2VTdGF0ZSgiYXV0byIpLHA9UC51c2VSZWYobnVsbCksZj1QLnVzZVJlZihudWxsKSx5PShlPT1udWxsP3ZvaWQgMDplLm1lc3NhZ2VzKT8/W107UC51c2VFZmZlY3QoKCk9Pnt2YXIgaDsoaD1wLmN1cnJlbnQpPT1udWxsfHxoLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIn0pfSxbeSxuXSksUC51c2VFZmZlY3QoKCk9PntmLmN1cnJlbnQmJihmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0PSJhdXRvIixmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0PU1hdGgubWluKGYuY3VycmVudC5zY3JvbGxIZWlnaHQsMTYwKSsicHgiKX0sW2xdKTtjb25zdCBiPWFzeW5jIGg9Pntjb25zdCBtPShoPz9sKS50cmltKCk7aWYoIW18fG4pcmV0dXJuO3UoIiIpO2xldCBnPXQ7aWYoIWcpe2NvbnN0e3Nlc3Npb246VH09YXdhaXQgbnQuc2Vzc2lvbnMuY3JlYXRlKG0uc2xpY2UoMCw0MCkpO2koey4uLlQsbWVzc2FnZXM6W119KSxnPVQuaWR9Y29uc3QgRT17aWQ6Y3J5cHRvLnJhbmRvbVVVSUQoKSxyb2xlOiJ1c2VyIixjb250ZW50Om0sdGltZXN0YW1wOkRhdGUubm93KCl9O2EoZyxFKSxyKCEwKTt0cnl7Y29uc3QgVD1hd2FpdCBudC5jaGF0KGcsbSxjKTthKGcsVC5tZXNzYWdlKX1jYXRjaChUKXthKGcse2lkOmNyeXB0by5yYW5kb21VVUlEKCkscm9sZToiYXNzaXN0YW50Iixjb250ZW50OmBTb3JyeSwgSSByYW4gaW50byBhbiBlcnJvcjogJHtTdHJpbmcoVCl9LiBQbGVhc2UgdHJ5IGFnYWluLmAsdGltZXN0YW1wOkRhdGUubm93KCl9KX1maW5hbGx5e3IoITEpfX0sQT1oPT57aC5rZXk9PT0iRW50ZXIiJiYhaC5zaGlmdEtleSYmKGgucHJldmVudERlZmF1bHQoKSxiKCkpfTtyZXR1cm4gay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC1jb2wgaC1mdWxsIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHB4LTQgcHktMyBib3JkZXItYiBib3JkZXItc3VyZmFjZS03MDAvNTAgYmctc3VyZmFjZS05NTAvODAgYmFja2Ryb3AtYmx1ci1zbSIsY2hpbGRyZW46WyFzJiZrLmpzeCgiYnV0dG9uIix7b25DbGljazooKT0+byghMCksY2xhc3NOYW1lOiJwLTEuNSB0ZXh0LXNsYXRlLTUwMCBob3Zlcjp0ZXh0LXNsYXRlLTMwMCBob3ZlcjpiZy1zdXJmYWNlLTcwMCByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIixjaGlsZHJlbjprLmpzeChmRix7Y2xhc3NOYW1lOiJ3LTQgaC00In0pfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBtaW4tdy0wIixjaGlsZHJlbjpbay5qc3goImgyIix7Y2xhc3NOYW1lOiJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSB0cnVuY2F0ZSIsY2hpbGRyZW46KGU9PW51bGw/dm9pZCAwOmUubmFtZSk/PyJPcGVuQ2xhdyBBc3Npc3RhbnQifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS01MDAiLGNoaWxkcmVuOnkubGVuZ3RoPjA/YCR7eS5sZW5ndGh9IG1lc3NhZ2VzYDoiQXV0b25vbW91cyBBSSDCtyBHbG9iYWwgZWRnZSJ9KV19KSxrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBiZy1zdXJmYWNlLTgwMCByb3VuZGVkLXhsIHAtMSIsY2hpbGRyZW46WyJhdXRvIiwiZ2VuZXJhbCIsImNvZGluZyJdLm1hcChoPT5rLmpzeCgiYnV0dG9uIix7b25DbGljazooKT0+ZChoKSxjbGFzc05hbWU6WWUoInB4LTIuNSBweS0xIHJvdW5kZWQtbGcgdGV4dC14cyBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWFsbCIsYz09PWg/ImJnLWNsYXctNjAwIHRleHQtd2hpdGUiOiJ0ZXh0LXNsYXRlLTUwMCBob3Zlcjp0ZXh0LXNsYXRlLTMwMCIpLGNoaWxkcmVuOmg9PT0iYXV0byI/IkF1dG8iOmg9PT0iY29kaW5nIj8i4oyoIENvZGUiOiLinKYgR2VuZXJhbCJ9LGgpKX0pXX0pLGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHAtNCBzcGFjZS15LTQiLGNoaWxkcmVuOlt5Lmxlbmd0aD09PTA/ay5qc3hzKE50LmRpdix7aW5pdGlhbDp7b3BhY2l0eTowLHk6MjB9LGFuaW1hdGU6e29wYWNpdHk6MSx5OjB9LHRyYW5zaXRpb246e2RlbGF5Oi4xfSxjbGFzc05hbWU6ImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGgtZnVsbCB0ZXh0LWNlbnRlciBweC04IixjaGlsZHJlbjpbay5qc3goImRpdiIse2NsYXNzTmFtZToidy0xNiBoLTE2IHJvdW5kZWQtMnhsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tY2xhdy00MDAgdG8tY2xhdy03MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC00eGwgbWItNCBnbG93LWJsdWUiLGNoaWxkcmVuOiLwn6aeIn0pLGsuanN4KCJoMiIse2NsYXNzTmFtZToidGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0xIixjaGlsZHJlbjoiT3BlbkNsYXcifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNDAwIHRleHQtc20gbWItMiIsY2hpbGRyZW46IkF1dG9ub21vdXMgQUkgYXNzaXN0YW50IHJ1bm5pbmcgYXQgQ2xvdWRmbGFyZSdzIGVkZ2UifSksay5qc3hzKCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LXhzIG1iLTgiLGNoaWxkcmVuOlsiUG93ZXJlZCBieSAiLGsuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LWNsYXctNDAwIixjaGlsZHJlbjoiTGxhbWEgNCBTY291dCAxN0IifSksIiDCtyAiLGsuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LXZpb2xldC00MDAiLGNoaWxkcmVuOiJMbGFtYSAzLjEgOEIifSksIiDCtyBXb3JrZXJzIEFJIl19KSxrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJncmlkIGdhcC0yIHctZnVsbCBtYXgtdy1zbSIsY2hpbGRyZW46aVkubWFwKCh7bGFiZWw6aCxpY29uOm0sdGV4dDpnfSk9PmsuanN4cygiYnV0dG9uIix7b25DbGljazooKT0+YihnKSxjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHAtMyBiZy1zdXJmYWNlLTgwMCBob3ZlcjpiZy1zdXJmYWNlLTcwMCBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNzAwIGhvdmVyOmJvcmRlci1jbGF3LTUwMC8zMCByb3VuZGVkLXhsIHRleHQtbGVmdCB0cmFuc2l0aW9uLWFsbCBncm91cCIsY2hpbGRyZW46W2suanN4KCJkaXYiLHtjbGFzc05hbWU6InctNyBoLTcgcm91bmRlZC1sZyBiZy1jbGF3LTUwMC8xMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIGdyb3VwLWhvdmVyOmJnLWNsYXctNTAwLzIwIHRyYW5zaXRpb24tY29sb3JzIixjaGlsZHJlbjprLmpzeChtLHtjbGFzc05hbWU6InctMy41IGgtMy41IHRleHQtY2xhdy00MDAifSl9KSxrLmpzeHMoImRpdiIse2NoaWxkcmVuOltrLmpzeCgicCIse2NsYXNzTmFtZToidGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXNsYXRlLTMwMCIsY2hpbGRyZW46aH0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtc2xhdGUtNTAwIHRydW5jYXRlIixjaGlsZHJlbjpnfSldfSldfSxoKSl9KV19KTprLmpzeHMoay5GcmFnbWVudCx7Y2hpbGRyZW46W3kubWFwKGg9PmsuanN4KHJZLHttZXNzYWdlOmh9LGguaWQpKSxrLmpzeChscyx7Y2hpbGRyZW46biYmay5qc3goYVkse30pfSldfSksay5qc3goImRpdiIse3JlZjpwfSldfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InAtNCBib3JkZXItdCBib3JkZXItc3VyZmFjZS03MDAvNTAgYmctc3VyZmFjZS05NTAvODAgYmFja2Ryb3AtYmx1ci1zbSIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJyZWxhdGl2ZSBmbGV4IGl0ZW1zLWVuZCBnYXAtMiBiZy1zdXJmYWNlLTgwMCBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNzAwIGhvdmVyOmJvcmRlci1zdXJmYWNlLTYwMCBmb2N1cy13aXRoaW46Ym9yZGVyLWNsYXctNTAwLzUwIHJvdW5kZWQtMnhsIHB4LTQgcHktMyB0cmFuc2l0aW9uLWNvbG9ycyIsY2hpbGRyZW46W2suanN4KCJ0ZXh0YXJlYSIse3JlZjpmLHZhbHVlOmwsb25DaGFuZ2U6aD0+dShoLnRhcmdldC52YWx1ZSksb25LZXlEb3duOkEscGxhY2Vob2xkZXI6IkFzayBhbnl0aGluZywgb3IgZGVzY3JpYmUgYSB0YXNrIGZvciBPcGVuQ2xhdyB0byBleGVjdXRlIGF1dG9ub21vdXNseS4uLiIscm93czoxLGRpc2FibGVkOm4sY2xhc3NOYW1lOiJmbGV4LTEgYmctdHJhbnNwYXJlbnQgdGV4dC13aGl0ZSB0ZXh0LXNtIHBsYWNlaG9sZGVyLXNsYXRlLTUwMCByZXNpemUtbm9uZSBvdXRsaW5lLW5vbmUgbGVhZGluZy1yZWxheGVkIG1pbi1oLVsyMHB4XSJ9KSxrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZmxleC1zaHJpbmstMCIsY2hpbGRyZW46W2suanN4cygic3BhbiIse2NsYXNzTmFtZToiaGlkZGVuIHNtOmZsZXggaXRlbXMtY2VudGVyIGdhcC0wLjUgdGV4dC1zbGF0ZS02MDAgdGV4dC14cyIsY2hpbGRyZW46W2suanN4KHVGLHtjbGFzc05hbWU6InctMyBoLTMifSksIiBzZW5kIl19KSxrLmpzeCgiYnV0dG9uIix7b25DbGljazooKT0+YigpLGRpc2FibGVkOiFsLnRyaW0oKXx8bixjbGFzc05hbWU6WWUoInAtMiByb3VuZGVkLXhsIHRyYW5zaXRpb24tYWxsIixsLnRyaW0oKSYmIW4/ImJnLWNsYXctNjAwIHRleHQtd2hpdGUgaG92ZXI6YmctY2xhdy01MDAgZ2xvdy1ibHVlLXNtIjoidGV4dC1zbGF0ZS02MDAgY3Vyc29yLW5vdC1hbGxvd2VkIiksY2hpbGRyZW46ay5qc3gobUYse2NsYXNzTmFtZToidy00IGgtNCJ9KX0pXX0pXX0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtc2xhdGUtNjAwIG10LTIiLGNoaWxkcmVuOiJPcGVuQ2xhdyBydW5zIG9uIENsb3VkZmxhcmUncyBnbG9iYWwgZWRnZSDCtyBZb3VyIGRhdGEgc3RheXMgcHJpdmF0ZSJ9KV19KV19KX1mdW5jdGlvbiBzWSgpe2NvbnN0e21lbW9yaWVzOmUsc2V0TWVtb3JpZXM6dCxyZW1vdmVNZW1vcnk6bn09JGkoKSxbcixhXT1QLnVzZVN0YXRlKCIiKSxbaSxvXT1QLnVzZVN0YXRlKCExKSxbcyxsXT1QLnVzZVN0YXRlKCIiKSxbdSxjXT1QLnVzZVN0YXRlKCIiKSxbZCxwXT1QLnVzZVN0YXRlKCIiKSxbZix5XT1QLnVzZVN0YXRlKCEwKTtQLnVzZUVmZmVjdCgoKT0+e250Lm1lbW9yeS5saXN0KCkudGhlbigoe21lbW9yaWVzOm19KT0+e3QobSkseSghMSl9KX0sW3RdKTtjb25zdCBiPWUuZmlsdGVyKG09PiFyfHxtLmtleS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHIudG9Mb3dlckNhc2UoKSl8fG0udmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyLnRvTG93ZXJDYXNlKCkpfHxtLnRhZ3Muc29tZShnPT5nLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoci50b0xvd2VyQ2FzZSgpKSkpLEE9YXN5bmMoKT0+e2lmKCFzLnRyaW0oKXx8IXUudHJpbSgpKXJldHVybjtjb25zdCBtPWQuc3BsaXQoIiwiKS5tYXAoRT0+RS50cmltKCkpLmZpbHRlcihCb29sZWFuKTthd2FpdCBudC5tZW1vcnkuc2F2ZShzLnRyaW0oKSx1LnRyaW0oKSxtKTtjb25zdHttZW1vcmllczpnfT1hd2FpdCBudC5tZW1vcnkubGlzdCgpO3QoZyksbCgiIiksYygiIikscCgiIiksbyghMSl9LGg9YXN5bmMgbT0+e2F3YWl0IG50Lm1lbW9yeS5kZWxldGUobSksbihtKX07cmV0dXJuIGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtY29sIGgtZnVsbCIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwLTQgYm9yZGVyLWIgYm9yZGVyLXN1cmZhY2UtNzAwLzUwIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIixjaGlsZHJlbjpbay5qc3gob3Ise2NsYXNzTmFtZToidy00IGgtNCB0ZXh0LWNsYXctNDAwIn0pLGsuanN4KCJoMiIse2NsYXNzTmFtZToidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiLGNoaWxkcmVuOiJQZXJzaXN0ZW50IE1lbW9yeSJ9KSxrLmpzeCgic3BhbiIse2NsYXNzTmFtZToicHgtMS41IHB5LTAuNSBiZy1jbGF3LTUwMC8xMCB0ZXh0LWNsYXctNDAwIHRleHQteHMgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItY2xhdy01MDAvMjAiLGNoaWxkcmVuOmUubGVuZ3RofSldfSksay5qc3hzKCJidXR0b24iLHtvbkNsaWNrOigpPT5vKCFpKSxjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEuNSBiZy1jbGF3LTYwMCBob3ZlcjpiZy1jbGF3LTUwMCB0ZXh0LXdoaXRlIHRleHQteHMgZm9udC1tZWRpdW0gcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyIsY2hpbGRyZW46W2suanN4KHdOLHtjbGFzc05hbWU6InctMyBoLTMifSksIlJlbWVtYmVyIl19KV19KSxrLmpzeHMoImRpdiIse2NsYXNzTmFtZToicmVsYXRpdmUiLGNoaWxkcmVuOltrLmpzeChUTix7Y2xhc3NOYW1lOiJhYnNvbHV0ZSBsZWZ0LTMgdG9wLTEvMiAtdHJhbnNsYXRlLXktMS8yIHctMy41IGgtMy41IHRleHQtc2xhdGUtNTAwIn0pLGsuanN4KCJpbnB1dCIse3ZhbHVlOnIsb25DaGFuZ2U6bT0+YShtLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6IlNlYXJjaCBtZW1vcmllcy4uLiIsY2xhc3NOYW1lOiJ3LWZ1bGwgYmctc3VyZmFjZS04MDAgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTcwMCByb3VuZGVkLXhsIHBsLTggcHItMyBweS0yIHRleHQteHMgdGV4dC13aGl0ZSBwbGFjZWhvbGRlci1zbGF0ZS01MDAgb3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1jbGF3LTUwMC81MCB0cmFuc2l0aW9uLWNvbG9ycyJ9KSxyJiZrLmpzeCgiYnV0dG9uIix7b25DbGljazooKT0+YSgiIiksY2xhc3NOYW1lOiJhYnNvbHV0ZSByaWdodC0zIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiIsY2hpbGRyZW46ay5qc3godkYse2NsYXNzTmFtZToidy0zIGgtMyB0ZXh0LXNsYXRlLTUwMCJ9KX0pXX0pXX0pLGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHAtNCBzcGFjZS15LTMiLGNoaWxkcmVuOltrLmpzeChscyx7Y2hpbGRyZW46aSYmay5qc3hzKE50LmRpdix7aW5pdGlhbDp7b3BhY2l0eTowLHk6LTEwfSxhbmltYXRlOntvcGFjaXR5OjEseTowfSxleGl0OntvcGFjaXR5OjAseTotMTB9LGNsYXNzTmFtZToicC0zIGJnLXN1cmZhY2UtODAwIGJvcmRlciBib3JkZXItY2xhdy01MDAvMzAgcm91bmRlZC14bCBzcGFjZS15LTIiLGNoaWxkcmVuOltrLmpzeCgiaW5wdXQiLHt2YWx1ZTpzLG9uQ2hhbmdlOm09PmwobS50YXJnZXQudmFsdWUpLHBsYWNlaG9sZGVyOiJLZXkgKGUuZy4gJ3VzZXJfbmFtZScpIixjbGFzc05hbWU6InctZnVsbCBiZy1zdXJmYWNlLTkwMCBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNzAwIHJvdW5kZWQtbGcgcHgtMyBweS0yIHRleHQteHMgdGV4dC13aGl0ZSBwbGFjZWhvbGRlci1zbGF0ZS01MDAgb3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1jbGF3LTUwMC81MCJ9KSxrLmpzeCgidGV4dGFyZWEiLHt2YWx1ZTp1LG9uQ2hhbmdlOm09PmMobS50YXJnZXQudmFsdWUpLHBsYWNlaG9sZGVyOiJWYWx1ZSB0byByZW1lbWJlci4uLiIscm93czoyLGNsYXNzTmFtZToidy1mdWxsIGJnLXN1cmZhY2UtOTAwIGJvcmRlciBib3JkZXItc3VyZmFjZS03MDAgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC14cyB0ZXh0LXdoaXRlIHBsYWNlaG9sZGVyLXNsYXRlLTUwMCBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLWNsYXctNTAwLzUwIHJlc2l6ZS1ub25lIn0pLGsuanN4KCJpbnB1dCIse3ZhbHVlOmQsb25DaGFuZ2U6bT0+cChtLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6IlRhZ3MgKGNvbW1hLXNlcGFyYXRlZCwgb3B0aW9uYWwpIixjbGFzc05hbWU6InctZnVsbCBiZy1zdXJmYWNlLTkwMCBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNzAwIHJvdW5kZWQtbGcgcHgtMyBweS0yIHRleHQteHMgdGV4dC13aGl0ZSBwbGFjZWhvbGRlci1zbGF0ZS01MDAgb3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1jbGF3LTUwMC81MCJ9KSxrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBnYXAtMiIsY2hpbGRyZW46W2suanN4KCJidXR0b24iLHtvbkNsaWNrOkEsY2xhc3NOYW1lOiJmbGV4LTEgcHktMS41IGJnLWNsYXctNjAwIGhvdmVyOmJnLWNsYXctNTAwIHRleHQtd2hpdGUgdGV4dC14cyByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIixjaGlsZHJlbjoiU2F2ZSB0byBNZW1vcnkifSksay5qc3goImJ1dHRvbiIse29uQ2xpY2s6KCk9Pm8oITEpLGNsYXNzTmFtZToicHktMS41IHB4LTMgYmctc3VyZmFjZS03MDAgdGV4dC1zbGF0ZS0zMDAgdGV4dC14cyByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLXN1cmZhY2UtNjAwIixjaGlsZHJlbjoiQ2FuY2VsIn0pXX0pXX0pfSksZj9rLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0xMiIsY2hpbGRyZW46ay5qc3goImRpdiIse2NsYXNzTmFtZToidy02IGgtNiBib3JkZXItMiBib3JkZXItY2xhdy01MDAgYm9yZGVyLXQtdHJhbnNwYXJlbnQgcm91bmRlZC1mdWxsIGFuaW1hdGUtc3BpbiJ9KX0pOmIubGVuZ3RoPT09MD9rLmpzeHMoImRpdiIse2NsYXNzTmFtZToidGV4dC1jZW50ZXIgcHktMTIiLGNoaWxkcmVuOltrLmpzeChvcix7Y2xhc3NOYW1lOiJ3LTEwIGgtMTAgdGV4dC1zbGF0ZS03MDAgbXgtYXV0byBtYi0zIn0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LXNtIixjaGlsZHJlbjpyPyJObyBtZW1vcmllcyBtYXRjaCB5b3VyIHNlYXJjaCI6Ik5vIG1lbW9yaWVzIHN0b3JlZCB5ZXQifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNjAwIHRleHQteHMgbXQtMSIsY2hpbGRyZW46IXImJiJPcGVuQ2xhdyB3aWxsIHJlbWVtYmVyIHRoaW5ncyBhcyB5b3UgY2hhdCwgb3IgYWRkIHRoZW0gbWFudWFsbHkuIn0pXX0pOmIubWFwKG09PmsuanN4KE50LmRpdix7bGF5b3V0OiEwLGluaXRpYWw6e29wYWNpdHk6MCx5OjR9LGFuaW1hdGU6e29wYWNpdHk6MSx5OjB9LGV4aXQ6e29wYWNpdHk6MCx4Oi0yMH0sY2xhc3NOYW1lOiJncm91cCBwLTMgYmctc3VyZmFjZS04MDAgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTcwMC81MCBob3Zlcjpib3JkZXItc3VyZmFjZS02MDAgcm91bmRlZC14bCB0cmFuc2l0aW9uLWNvbG9ycyIsY2hpbGRyZW46ay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIGdhcC0yIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSBtaW4tdy0wIixjaGlsZHJlbjpbay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWNsYXctNDAwIGZvbnQtbW9ubyBtYi0xIixjaGlsZHJlbjptLmtleX0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtc2xhdGUtMzAwIGxlYWRpbmctcmVsYXhlZCIsY2hpbGRyZW46bS52YWx1ZX0pLG0udGFncy5sZW5ndGg+MCYmay5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleCBmbGV4LXdyYXAgZ2FwLTEgbXQtMiIsY2hpbGRyZW46bS50YWdzLm1hcChnPT5rLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBweC0xLjUgcHktMC41IGJnLXN1cmZhY2UtNzAwIHRleHQtc2xhdGUtNDAwIHRleHQteHMgcm91bmRlZC1mdWxsIixjaGlsZHJlbjpbay5qc3goZ0Yse2NsYXNzTmFtZToidy0yIGgtMiJ9KSxnXX0sZykpfSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS02MDAgbXQtMS41IixjaGlsZHJlbjp0YihuZXcgRGF0ZShtLnVwZGF0ZWRBdCkse2FkZFN1ZmZpeDohMH0pfSldfSksay5qc3goImJ1dHRvbiIse29uQ2xpY2s6KCk9PmgobS5rZXkpLGNsYXNzTmFtZToib3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHAtMS41IHRleHQtc2xhdGUtNTAwIGhvdmVyOnRleHQtcmVkLTQwMCBob3ZlcjpiZy1yZWQtNDAwLzEwIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1hbGwiLGNoaWxkcmVuOmsuanN4KGtOLHtjbGFzc05hbWU6InctMy41IGgtMy41In0pfSldfSl9LG0ua2V5KSldfSldfSl9Y29uc3QgbFk9e3JlbWVtYmVyOm9yLHJlY2FsbDpvcixsaXN0X21lbW9yaWVzOm9yLGZvcmdldDpvcix3ZWJfc2VhcmNoOmdFLGZldGNoX3VybDpnRSxjYWxjdWxhdGU6aUYsYW5hbHl6ZV9jb2RlOlJpLGdlbmVyYXRlX2NvZGU6Umksc3VtbWFyaXplOmNGLHRyYW5zbGF0ZTpkRixjdXJyZW50X3RpbWU6bEZ9LHVZPXtyZW1lbWJlcjoiYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCBib3JkZXItZW1lcmFsZC01MDAvMjAiLHJlY2FsbDoiYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCBib3JkZXItZW1lcmFsZC01MDAvMjAiLGxpc3RfbWVtb3JpZXM6ImJnLWVtZXJhbGQtNTAwLzEwIHRleHQtZW1lcmFsZC00MDAgYm9yZGVyLWVtZXJhbGQtNTAwLzIwIixmb3JnZXQ6ImJnLXJlZC01MDAvMTAgdGV4dC1yZWQtNDAwIGJvcmRlci1yZWQtNTAwLzIwIix3ZWJfc2VhcmNoOiJiZy1ibHVlLTUwMC8xMCB0ZXh0LWJsdWUtNDAwIGJvcmRlci1ibHVlLTUwMC8yMCIsZmV0Y2hfdXJsOiJiZy1ibHVlLTUwMC8xMCB0ZXh0LWJsdWUtNDAwIGJvcmRlci1ibHVlLTUwMC8yMCIsY2FsY3VsYXRlOiJiZy1hbWJlci01MDAvMTAgdGV4dC1hbWJlci00MDAgYm9yZGVyLWFtYmVyLTUwMC8yMCIsYW5hbHl6ZV9jb2RlOiJiZy12aW9sZXQtNTAwLzEwIHRleHQtdmlvbGV0LTQwMCBib3JkZXItdmlvbGV0LTUwMC8yMCIsZ2VuZXJhdGVfY29kZToiYmctdmlvbGV0LTUwMC8xMCB0ZXh0LXZpb2xldC00MDAgYm9yZGVyLXZpb2xldC01MDAvMjAiLHN1bW1hcml6ZToiYmctcGluay01MDAvMTAgdGV4dC1waW5rLTQwMCBib3JkZXItcGluay01MDAvMjAiLHRyYW5zbGF0ZToiYmctaW5kaWdvLTUwMC8xMCB0ZXh0LWluZGlnby00MDAgYm9yZGVyLWluZGlnby01MDAvMjAiLGN1cnJlbnRfdGltZToiYmctb3JhbmdlLTUwMC8xMCB0ZXh0LW9yYW5nZS00MDAgYm9yZGVyLW9yYW5nZS01MDAvMjAifTtmdW5jdGlvbiBjWSgpe2NvbnN0e3NraWxsczplLHNldFNraWxsczp0fT0kaSgpO1AudXNlRWZmZWN0KCgpPT57ZS5sZW5ndGg9PT0wJiZudC5za2lsbHMubGlzdCgpLnRoZW4oKHtza2lsbHM6cn0pPT50KHIpKX0sW2UubGVuZ3RoLHRdKTtjb25zdCBuPVt7aWQ6Im1lbW9yeSIsbGFiZWw6Ik1lbW9yeSIsa2V5czpbInJlbWVtYmVyIiwicmVjYWxsIiwibGlzdF9tZW1vcmllcyIsImZvcmdldCJdfSx7aWQ6IndlYiIsbGFiZWw6IldlYiIsa2V5czpbIndlYl9zZWFyY2giLCJmZXRjaF91cmwiXX0se2lkOiJjb2RlIixsYWJlbDoiQ29kZSIsa2V5czpbImFuYWx5emVfY29kZSIsImdlbmVyYXRlX2NvZGUiXX0se2lkOiJ1dGlscyIsbGFiZWw6IlV0aWxpdGllcyIsa2V5czpbImNhbGN1bGF0ZSIsInN1bW1hcml6ZSIsInRyYW5zbGF0ZSIsImN1cnJlbnRfdGltZSJdfV07cmV0dXJuIGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtY29sIGgtZnVsbCIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwLTQgYm9yZGVyLWIgYm9yZGVyLXN1cmZhY2UtNzAwLzUwIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTEiLGNoaWxkcmVuOltrLmpzeChBTix7Y2xhc3NOYW1lOiJ3LTQgaC00IHRleHQtY2xhdy00MDAifSksay5qc3goImgyIix7Y2xhc3NOYW1lOiJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSIsY2hpbGRyZW46IkF2YWlsYWJsZSBTa2lsbHMifSksay5qc3goInNwYW4iLHtjbGFzc05hbWU6InB4LTEuNSBweS0wLjUgYmctY2xhdy01MDAvMTAgdGV4dC1jbGF3LTQwMCB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLWNsYXctNTAwLzIwIixjaGlsZHJlbjplLmxlbmd0aH0pXX0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtc2xhdGUtNTAwIixjaGlsZHJlbjoiT3BlbkNsYXcgdXNlcyB0aGVzZSB0b29scyBhdXRvbm9tb3VzbHkgdG8gY29tcGxldGUgeW91ciB0YXNrcyJ9KV19KSxrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleC0xIG92ZXJmbG93LXktYXV0byBwLTQgc3BhY2UteS01IixjaGlsZHJlbjpbbi5tYXAoKHtpZDpyLGxhYmVsOmEsa2V5czppfSk9Pntjb25zdCBvPWUuZmlsdGVyKHM9PmkuaW5jbHVkZXMocy5uYW1lKSk7cmV0dXJuIG8ubGVuZ3RoPT09MD9udWxsOmsuanN4cygiZGl2Iix7Y2hpbGRyZW46W2suanN4KCJoMyIse2NsYXNzTmFtZToidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtc2xhdGUtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciBtYi0yIixjaGlsZHJlbjphfSksay5qc3goImRpdiIse2NsYXNzTmFtZToic3BhY2UteS0yIixjaGlsZHJlbjpvLm1hcCgocyxsKT0+e2NvbnN0IHU9bFlbcy5uYW1lXT8/JHMsYz11WVtzLm5hbWVdPz8iYmctc2xhdGUtNTAwLzEwIHRleHQtc2xhdGUtNDAwIGJvcmRlci1zbGF0ZS01MDAvMjAiLGQ9T2JqZWN0LmtleXMocy5wYXJhbWV0ZXJzKTtyZXR1cm4gay5qc3goTnQuZGl2LHtpbml0aWFsOntvcGFjaXR5OjAseTo0fSxhbmltYXRlOntvcGFjaXR5OjEseTowfSx0cmFuc2l0aW9uOntkZWxheTpsKi4wNH0sY2xhc3NOYW1lOiJwLTMgYmctc3VyZmFjZS04MDAgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTcwMC81MCByb3VuZGVkLXhsIixjaGlsZHJlbjprLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1zdGFydCBnYXAtMyIsY2hpbGRyZW46W2suanN4KCJkaXYiLHtjbGFzc05hbWU6WWUoInctNyBoLTcgcm91bmRlZC1sZyBib3JkZXIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCIsYyksY2hpbGRyZW46ay5qc3godSx7Y2xhc3NOYW1lOiJ3LTMuNSBoLTMuNSJ9KX0pLGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4LTEgbWluLXctMCIsY2hpbGRyZW46W2suanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTAuNSIsY2hpbGRyZW46ay5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIGZvbnQtbW9ubyIsY2hpbGRyZW46cy5uYW1lfSl9KSxrLmpzeCgicCIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTQwMCBsZWFkaW5nLXJlbGF4ZWQiLGNoaWxkcmVuOnMuZGVzY3JpcHRpb259KSxkLmxlbmd0aD4wJiZrLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtd3JhcCBnYXAtMSBtdC0xLjUiLGNoaWxkcmVuOmQubWFwKHA9PmsuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJweC0xLjUgcHktMC41IGJnLXN1cmZhY2UtNzAwIHRleHQtc2xhdGUtNTAwIHRleHQteHMgcm91bmRlZCBmb250LW1vbm8iLGNoaWxkcmVuOnB9LHApKX0pXX0pXX0pfSxzLm5hbWUpfSl9KV19LHIpfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InAtMyBiZy1ncmFkaWVudC10by1iciBmcm9tLWNsYXctNTAwLzUgdG8tY2xhdy03MDAvNSBib3JkZXIgYm9yZGVyLWNsYXctNTAwLzIwIHJvdW5kZWQteGwiLGNoaWxkcmVuOltrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMSIsY2hpbGRyZW46W2suanN4KFROLHtjbGFzc05hbWU6InctMy41IGgtMy41IHRleHQtY2xhdy00MDAifSksay5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWNsYXctNDAwIixjaGlsZHJlbjoiQ2xhd0h1YiBNYXJrZXRwbGFjZSJ9KV19KSxrLmpzeCgicCIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTUwMCIsY2hpbGRyZW46IjMsMDAwKyBjb21tdW5pdHkgc2tpbGxzIGF2YWlsYWJsZS4gQ3VzdG9tIHNraWxsIHN1cHBvcnQgY29taW5nIHNvb24uIn0pXX0pXX0pXX0pfWZ1bmN0aW9uIGRZKCl7Y29uc3RbZSx0XT1QLnVzZVN0YXRlKHt9KSxbbixyXT1QLnVzZVN0YXRlKG51bGwpLFthLGldPVAudXNlU3RhdGUoITApO1AudXNlRWZmZWN0KCgpPT57UHJvbWlzZS5hbGwoW250Lm1vZGVscy5saXN0KCksbnQuaGVhbHRoKCldKS50aGVuKChbe21vZGVsczpzfSxsXSk9Pnt0KHMpLHIobCksaSghMSl9KS5jYXRjaCgoKT0+aSghMSkpfSxbXSk7Y29uc3Qgbz1PYmplY3QuZW50cmllcyhlKTtyZXR1cm4gay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC1jb2wgaC1mdWxsIixjaGlsZHJlbjpbay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InAtNCBib3JkZXItYiBib3JkZXItc3VyZmFjZS03MDAvNTAiLGNoaWxkcmVuOltrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMSIsY2hpbGRyZW46W2suanN4KGNnLHtjbGFzc05hbWU6InctNCBoLTQgdGV4dC1jbGF3LTQwMCJ9KSxrLmpzeCgiaDIiLHtjbGFzc05hbWU6InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIixjaGlsZHJlbjoiQUkgTW9kZWxzIn0pXX0pLGsuanN4KCJwIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtc2xhdGUtNTAwIixjaGlsZHJlbjoiUnVubmluZyBvbiBDbG91ZGZsYXJlIFdvcmtlcnMgQUkgwrcgR2xvYmFsIGVkZ2UgaW5mZXJlbmNlIn0pLG4mJmsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtdC0zIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTMgcHktMiBiZy1lbWVyYWxkLTUwMC81IGJvcmRlciBib3JkZXItZW1lcmFsZC01MDAvMjAgcm91bmRlZC14bCIsY2hpbGRyZW46W2suanN4KGFGLHtjbGFzc05hbWU6InctMy41IGgtMy41IHRleHQtZW1lcmFsZC00MDAifSksay5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiLGNoaWxkcmVuOlsiV29ya2VyIG9ubGluZSDCtyB2IixuLnZlcnNpb25dfSldfSldfSksay5qc3goImRpdiIse2NsYXNzTmFtZToiZmxleC0xIG92ZXJmbG93LXktYXV0byBwLTQgc3BhY2UteS00IixjaGlsZHJlbjphP2suanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTEyIixjaGlsZHJlbjprLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ3LTYgaC02IGJvcmRlci0yIGJvcmRlci1jbGF3LTUwMCBib3JkZXItdC10cmFuc3BhcmVudCByb3VuZGVkLWZ1bGwgYW5pbWF0ZS1zcGluIn0pfSk6by5sZW5ndGg9PT0wP2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LWNlbnRlciBweS0xMiIsY2hpbGRyZW46W2suanN4KGNnLHtjbGFzc05hbWU6InctMTAgaC0xMCB0ZXh0LXNsYXRlLTcwMCBteC1hdXRvIG1iLTMifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNTAwIHRleHQtc20iLGNoaWxkcmVuOiJDb3VsZCBub3QgbG9hZCBtb2RlbHMifSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNjAwIHRleHQteHMiLGNoaWxkcmVuOiJDaGVjayB0aGF0IHRoZSBXb3JrZXIgaXMgZGVwbG95ZWQifSldfSk6ay5qc3hzKGsuRnJhZ21lbnQse2NoaWxkcmVuOltvLm1hcCgoW3MsbF0sdSk9PmsuanN4KE50LmRpdix7aW5pdGlhbDp7b3BhY2l0eTowLHk6OH0sYW5pbWF0ZTp7b3BhY2l0eToxLHk6MH0sdHJhbnNpdGlvbjp7ZGVsYXk6dSouMX0sY2xhc3NOYW1lOlllKCJwLTQgcm91bmRlZC0yeGwgYm9yZGVyIixzPT09ImdlbmVyYWwiPyJiZy1ncmFkaWVudC10by1iciBmcm9tLWNsYXctNTAwLzUgdG8tY2xhdy03MDAvNSBib3JkZXItY2xhdy01MDAvMjAiOiJiZy1ncmFkaWVudC10by1iciBmcm9tLXZpb2xldC01MDAvNSB0by12aW9sZXQtNzAwLzUgYm9yZGVyLXZpb2xldC01MDAvMjAiKSxjaGlsZHJlbjprLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1zdGFydCBnYXAtMyIsY2hpbGRyZW46W2suanN4KCJkaXYiLHtjbGFzc05hbWU6WWUoInctOSBoLTkgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIixzPT09ImdlbmVyYWwiPyJiZy1jbGF3LTUwMC8xMCI6ImJnLXZpb2xldC01MDAvMTAiKSxjaGlsZHJlbjpzPT09ImdlbmVyYWwiP2suanN4KCRzLHtjbGFzc05hbWU6WWUoInctNCBoLTQiLHM9PT0iZ2VuZXJhbCI/InRleHQtY2xhdy00MDAiOiJ0ZXh0LXZpb2xldC00MDAiKX0pOmsuanN4KFJpLHtjbGFzc05hbWU6InctNCBoLTQgdGV4dC12aW9sZXQtNDAwIn0pfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXgtMSIsY2hpbGRyZW46W2suanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0wLjUiLGNoaWxkcmVuOltrLmpzeCgiaDMiLHtjbGFzc05hbWU6InRleHQtc20gZm9udC1ib2xkIHRleHQtd2hpdGUiLGNoaWxkcmVuOmwubmFtZX0pLGsuanN4KCJzcGFuIix7Y2xhc3NOYW1lOlllKCJweC0yIHB5LTAuNSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgcm91bmRlZC1mdWxsIixzPT09ImdlbmVyYWwiPyJiZy1jbGF3LTUwMC8xMCB0ZXh0LWNsYXctNDAwIjoiYmctdmlvbGV0LTUwMC8xMCB0ZXh0LXZpb2xldC00MDAiKSxjaGlsZHJlbjpzfSldfSksay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS00MDAgbWItMyIsY2hpbGRyZW46bC5kZXNjcmlwdGlvbn0pLGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzcGFjZS15LTIiLGNoaWxkcmVuOltrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMiLGNoaWxkcmVuOltrLmpzeCgic3BhbiIse2NsYXNzTmFtZToidGV4dC1zbGF0ZS01MDAiLGNoaWxkcmVuOiJDb250ZXh0IHdpbmRvdyJ9KSxrLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InRleHQtc2xhdGUtMzAwIGZvbnQtbW9ubyIsY2hpbGRyZW46WyhsLmNvbnRleHRXaW5kb3cvMWUzKS50b0ZpeGVkKDApLCJrIHRva2VucyJdfSldfSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIixjaGlsZHJlbjpbay5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNTAwIixjaGlsZHJlbjoiTW9kZWwgSUQifSksay5qc3goInNwYW4iLHtjbGFzc05hbWU6InRleHQtc2xhdGUtNDAwIGZvbnQtbW9ubyB0ZXh0LXhzIHRydW5jYXRlIG1heC13LVsxNjBweF0iLHRpdGxlOmwuaWQsY2hpbGRyZW46bC5pZC5zcGxpdCgiLyIpLnNsaWNlKC0xKVswXX0pXX0pXX0pLGsuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtdC0zIixjaGlsZHJlbjpbay5qc3goInAiLHtjbGFzc05hbWU6InRleHQteHMgdGV4dC1zbGF0ZS01MDAgbWItMS41IixjaGlsZHJlbjoiQ2FwYWJpbGl0aWVzIn0pLGsuanN4KCJkaXYiLHtjbGFzc05hbWU6ImZsZXggZmxleC13cmFwIGdhcC0xIixjaGlsZHJlbjpsLmNhcGFiaWxpdGllcy5tYXAoYz0+ay5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcHgtMiBweS0wLjUgYmctc3VyZmFjZS04MDAgdGV4dC1zbGF0ZS00MDAgdGV4dC14cyByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTcwMCIsY2hpbGRyZW46W2suanN4KG9GLHtjbGFzc05hbWU6InctMi41IGgtMi41IHRleHQtZW1lcmFsZC00MDAifSksY119LGMpKX0pXX0pXX0pXX0pfSxzKSksay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InAtNCBiZy1zdXJmYWNlLTgwMCBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNzAwLzUwIHJvdW5kZWQtMnhsIHNwYWNlLXktMiIsY2hpbGRyZW46W2suanN4KCJoNCIse2NsYXNzTmFtZToidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtc2xhdGUtMzAwIixjaGlsZHJlbjoiQWJvdXQgV29ya2VycyBBSSJ9KSxrLmpzeCgicCIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTUwMCBsZWFkaW5nLXJlbGF4ZWQiLGNoaWxkcmVuOiJZb3VyIEFJIHJ1bnMgb24gQ2xvdWRmbGFyZSdzIGdsb2JhbCBuZXR3b3JrIOKAlCBubyBHUFUgc2VydmVycyB0byBtYW5hZ2UsIG5vIGNvbGQgc3RhcnRzLCBhbmQgaW5mZXJlbmNlIGluIHRoZSBkYXRhIGNlbnRlciBjbG9zZXN0IHRvIHlvdS4gUHJpdmF0ZSwgZmFzdCwgYW5kIGFsd2F5cyBhdmFpbGFibGUuIn0pLGsuanN4KCJkaXYiLHtjbGFzc05hbWU6ImdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTIgcHQtMSIsY2hpbGRyZW46W1siMzAwKyIsIkVkZ2UgY2l0aWVzIl0sWyI8NTBtcyIsIkF2ZyBsYXRlbmN5Il0sWyIxMDAlIiwiUHJpdmF0ZSJdXS5tYXAoKFtzLGxdKT0+ay5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InRleHQtY2VudGVyIHAtMiBiZy1zdXJmYWNlLTcwMC81MCByb3VuZGVkLWxnIixjaGlsZHJlbjpbay5qc3goInAiLHtjbGFzc05hbWU6InRleHQtc20gZm9udC1ib2xkIHRleHQtY2xhdy00MDAiLGNoaWxkcmVuOnN9KSxrLmpzeCgicCIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LXNsYXRlLTUwMCIsY2hpbGRyZW46bH0pXX0sbCkpfSldfSldfSl9KV19KX1mdW5jdGlvbiBwWSgpe2NvbnN0e2FjdGl2ZVBhbmVsOmUsc2lkZWJhck9wZW46dCxzZXRTZXNzaW9uczpuLHNldENvbm5lY3Rpb25TdGF0dXM6cixzZXRTa2lsbHM6YX09JGkoKTtQLnVzZUVmZmVjdCgoKT0+eyhhc3luYygpPT57dHJ5e3IoImNvbm5lY3RpbmciKTtjb25zdFt7c2Vzc2lvbnM6c30se3NraWxsczpsfV09YXdhaXQgUHJvbWlzZS5hbGwoW250LnNlc3Npb25zLmxpc3QoKSxudC5za2lsbHMubGlzdCgpXSk7bihzLm1hcCh1PT4oey4uLnUsbWVzc2FnZXM6W119KSkpLGEobCkscigiY29ubmVjdGVkIil9Y2F0Y2h7cigiZXJyb3IiKX19KSgpfSxbbixyLGFdKTtjb25zdCBpPSgpPT57c3dpdGNoKGUpe2Nhc2UibWVtb3J5IjpyZXR1cm4gay5qc3goc1kse30pO2Nhc2Uic2tpbGxzIjpyZXR1cm4gay5qc3goY1kse30pO2Nhc2UibW9kZWxzIjpyZXR1cm4gay5qc3goZFkse30pO2RlZmF1bHQ6cmV0dXJuIGsuanN4KG9ZLHt9KX19O3JldHVybiBrLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZmxleCBoLXNjcmVlbiBvdmVyZmxvdy1oaWRkZW4gYmctc3VyZmFjZS05NTAgYmctbWVzaCIsY2hpbGRyZW46W2suanN4KCQyLHt9KSxrLmpzeChOdC5tYWluLHtsYXlvdXQ6ITAsY2xhc3NOYW1lOiJmbGV4LTEgZmxleCBmbGV4LWNvbCBtaW4tdy0wIGgtZnVsbCBvdmVyZmxvdy1oaWRkZW4iLGNoaWxkcmVuOmkoKX0pXX0pfXRtLmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKSkucmVuZGVyKGsuanN4KFl0LlN0cmljdE1vZGUse2NoaWxkcmVuOmsuanN4KHBZLHt9KX0pKTsK"
  },
  {
    "filepath": "/_worker.js",
    "type": "application/javascript+module",
    "hash": "eef1c96aa9ad50c577a70c1e0297b39d2390008d57921192142eaf81c396adff",
    "size": 258,
    "content": "CmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvblJlcXVlc3QoY29udGV4dCkgewogIGNvbnN0IGFpID0gY29udGV4dC5lbnYuQUk7CiAgcmV0dXJuIG5ldyBSZXNwb25zZShKU09OLnN0cmluZ2lmeSh7CiAgICBzdGF0dXM6ICJvayIsCiAgICBoYXNfYWk6ICEhYWksCiAgICBhaV90eXBlOiBhaSA/IHR5cGVvZiBhaSA6ICJ1bmRlZmluZWQiCiAgfSksIHsKICAgIGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9CiAgfSk7Cn0K"
  }
]